6adb82b7d7
Former-commit-id: db3a0d5d035ee1e4ca2a918268d2422994826f06 [formerly c8c26fe5a5f17530f760e580d3120733b9f05aec] [formerly 787c25f6e9f7b298d598e4002f8e7d5f3f82d68f [formerly a6486364d6a1f512c2067825c05ee5d5dc7c12cd [formerly |
||
---|---|---|
install | ||
letsencrypt | ||
static | ||
templates | ||
.gitattributes | ||
.gitignore | ||
db.go | ||
encryption.go | ||
LICENSE | ||
main.go | ||
makeBinaries.py | ||
Makefile | ||
ratelimiter.go | ||
README.md | ||
RELEASE.md | ||
routes.go | ||
utils.go | ||
websockets.go |
cowyo.com
This is a self-contained notepad webserver that makes sharing easy and fast. The most important feature here is simplicity. There are many other features as well including versioning, page locking, self-destructing messages, encryption, math support, and listifying. Read on to learn more about the features.
Features
Simplicity. The philosophy here is to just type. To jot a note, simply load the page at /
and just start typing. No need to press edit, the browser will already be focused on the text. No need to press save - it will automatically save when you stop writing. The URL at /
will redirect to an easy-to-remember name that you can use to reload the page at anytime, anywhere. But, you can also use any URL you want, e.g. /AnythingYouWant
. All pages can be rendered into HTML by adding /view
. For example, the page /AnythingYouWant
is rendered at /AnythingYouWant/view
. You can write in HTML or Markdown for page rendering. To quickly link to /view
pages, just use [[AnythingYouWant]]
.
Listifying. If you are writing a list and you want to tick off things really easily, just add /list
. For example, after editing /grocery
, goto /grocery/list
. In this page, whatever you click on will be struck through and moved to the end. This is helpful if you write a grocery list and then want to easily delete things from it.
Page locking. Pages can be locked by providing a password to prevent further editing. The whole version tree will still be available. Note: This is not available for list mode.
Automatic versioning. All previous versions of all notes are stored and can be accessed by adding ?version=X
onto /view
or /edit
. If you are on the /view
or /edit
pages the menu below will show the most substantial changes in the history. Note, only the current version can be edited (no branching allowed, yet).
Self-destructing messages. You can write a message that will delete itself when a user loads it (in any view). Useful for transmitting sensitive information. To use, simply add a line somewhere that says only "self-destruct
".
Security. HTTPS support is provided and everything is sanitized to prevent XSS attacks. Though all URLs are publicly accessible, you are free to obfuscate your website by using an obscure/random address (read: the site is still publicly accessible, just hard to find!). In addition to TLS support, you can PGP-encrypt your messages using a passphrase (Note: This will delete the version tree).
Syntax highlighting. There is CodeMirror support for many languages. Just use an extension (e.g. .py, .md, .txt, .js, ...) for your document and then you'll be able to edit/view your code in a simple and easy way.
![Coding syntax is provided if you use an extension](NEED GIF)
CLI tools. Want to upload/download from the command line? Its super easy. Upload/download files using curl
with a simple command:
$ echo "Hello, world!" > hi.txt
$ curl -L --upload-file hi.txt cowyo.com
File uploaded to http://cowyo.com/hi.txt
$ curl -L cowyo.com/test.txt
Hello, world!
or just skip the file-creation step and let cowyo
figure out a name for you:
$ echo "Wow, so easy" | curl -L --upload-file "-" cowyo.com
File uploaded to http://cowyo.com/CautiousCommonLoon
$ curl -L cowyo.com/CautiousCommonLoon
Wow, so easy
Content Delivery. Want use a script on your own domain? Just use the extension /raw
with optional versioning (e.g. /raw?version=1
). cowyo
will serve these files with a wildcard Access-Control-Allow-Origin so they will work anywhere. Check out a live example on this JSFiddle.
Keyboard Shortcuts. Quickly transition between Edit/View/List by using Ctl+Shift+E
to Edit, Ctl+Shift+Z
to View, and Ctl+Shift+L
to Listify.
Admin controls. The Admin can view/delete all the documents by setting the -a YourAdminKey
when starting the program. Then the admin has access to the /ls/YourAdminKey
to view and delete any of the pages.
Math support. Math is supported with Katex using $\frac{1}{2}$
for inline equations and $$\frac{1}{2}$$
for regular equations.
Install
If you haven't done so, first install Go.
$ git clone https://github.com/schollz/cowyo.git
$ cd cowyo
$ go get ./...
$ go build
$ ./cowyo
--------------------------
cowyo (version Y) is up and running on http://SOMEADDRESS:8003
Admin key: VRSgtuVpkrwtWrfphsooOYeErzdbVHHqecMcqcbkLFNFNPwakH
--------------------------
Now open your browser to http://SOMEADDRESS:8003
to see your cowyo! For more information type ./cowyo --help
.
Contact
If you'd like help or you find a bug, please submit an issue. Any other comments, questions or anything at all, just tweet me @zack_118
Contributors
Thanks to tscholl2 and sjsafranek.
Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY
File uploading from transfer.sh (licensed by MIT).