diff options
author | Tom Willemse | 2013-08-25 23:21:39 +0200 |
---|---|---|
committer | Tom Willemse | 2013-08-25 23:21:39 +0200 |
commit | 96bfb88a5e348c7bfad56d34eebaa891b68e2773 (patch) | |
tree | 52a7c9ab13f3e2c6e658980cf547a095e7e1b1a2 | |
parent | 71adee48209840198f90a6b9da33b73830ebbfeb (diff) | |
download | hypo-96bfb88a5e348c7bfad56d34eebaa891b68e2773.tar.gz hypo-96bfb88a5e348c7bfad56d34eebaa891b68e2773.zip |
Update README, add index page
-rw-r--r-- | README.org | 34 | ||||
-rwxr-xr-x | hypo.hy | 6 | ||||
-rw-r--r-- | templates/index.html | 159 |
3 files changed, 198 insertions, 1 deletions
@@ -1,3 +1,5 @@ +#+STARTUP: showall + Quickly share bits of code, screenshots or whatnot with some friends. Easily delete them too. @@ -41,6 +43,32 @@ Easily delete them too. If Hypo doens't know what kind of file you're uploading it will default to treating it as a text file. +** Viewing + + All files can be viewed (from, for example, your web browser) in + three different ways. The regularly, raw and as download. + + The regular way shows a web page with the file either syntax + highlighted using ~pygments~ or (in case it is an image) with the + image shown on the page. This is viewed by using the URL printed + after upload has completed. For example: + + : http://yourserver.example.com/abcdef1 + + The raw view is just the file, saving this file is the same as + downloading it. This is viewed by prefixing the last part of the + URL with ~raw/~. For example: + + : http://yourserver.example.com/raw/abcdef1 + + The download view is the same as the raw view except that the + ~Content-Disposition~ header has been set to ~attachment~. This causes + a download dialog to show up instead of your browser trying to + render it. This ir viewed by prefixing the last part of the URL + with ~dl/~. For example: + + : http://yourserver.example.com/dl/abcdef1 + ** Deleting After you have uploaded a file you can delete it again by using @@ -53,6 +81,12 @@ Easily delete them too. server, so anyone can delete (also post) files. Of course they would first have to know the URL to send the delete to. +* Clients + + Hypo tries to stay simple to work with, at least on the + client-side. However, some clients may make things easier. + Currently there is only the (incomplete) [[http://code.ryuslash.org/hypo-emacs/][Emacs client]]. + * License Hypo is free software: you can redistribute it and/or modify it @@ -28,7 +28,8 @@ (sys.exit 1))) (def render (web.template.render "templates/")) -(def urls (, (+ "/" *prefix* "raw/(.*)") "raw" +(def urls (, (+ "/" *prefix*) "index" + (+ "/" *prefix* "raw/(.*)") "raw" (+ "/" *prefix* "dl/(.*)") "download" (+ "/" *prefix* "([a-f0-9]{7})$") "html" (+ "/" *prefix* "(.*)") "upload")) @@ -137,6 +138,9 @@ If no lexer is found fallback onto the text lexer." (setv web.ctx.status (str "201 Created")) (+ web.ctx.home "/" *prefix* (get h 0) "\n")))]]) +(defclass index [] + [[GET (lambda [self] (render.index))]]) + (defun hypo-start [argv] (let ((sys.argv (cdr sys.argv)) (app (web.application urls (globals)))) diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..8b5bc73 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,159 @@ +$# Hypo -- Quickly share stuff +$# Copyright (C) 2013 Tom Willemse +$# +$# Hypo is free software: you can redistribute it and/or modify it +$# under the terms of the GNU Affero General Public License as +$# published by the Free Software Foundation, either version 3 of the +$# License, or (at your option) any later version. +$# +$# Hypo is distributed in the hope that it will be useful, but WITHOUT +$# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +$# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General +$# Public License for more details. +$# +$# You should have received a copy of the GNU Affero General Public +$# License along with Hypo. If not, see <http://www.gnu.org/licenses/>. +<!DOCTYPE html> +<html> + <head> + <title>Hypo</title> + <link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.2/css/bootstrap.min.css" + type="text/css" rel="stylesheet" /> + <meta name="robots" content="noindex, nofollow"> + </head> + <body> + <div class="navbar navbar-static-top navbar-inverse"> + <div class="navbar-inner"> + <a class="brand">Hypo</a> + </div> + </div> + + <div class="container"> + <h1>Hypo</h1> + + <p> + This is hypo. Hypo is supposed to be an easy way to share/store + code snippets and other files. + </p> + + <div id="outline-container-sec-1-1" class="outline-3"> + <h2 id="sec-1">Usage</h2> + <div class="outline-text-2" id="text-1"> + <p> + Once setup it will not show much of anything, first you'll + have to upload something. + </p> + </div> + + <div id="outline-container-sec-1-1" class="outline-3"> + <h3 id="sec-1-1">Uploading</h3> + <div class="outline-text-3" id="text-1-1"> + <p> + Uploading is done with the <code>PUT</code> HTTP method. + An example with curl: + </p> + + <pre class="example"># curl --upload-file README.org http://yourserver.example.com/ 2>/dev/null +http://yourserver.example.com/abcdef1</pre> + + <p> + After uploading a file to the server it will respond + with the url of your newly uploaded file. If you browse + to this URL using your favorite browser you will find a + page showing the file. For text files it will try to + provide some syntax highlighting, for certain types of + images (currently <code>jpg</code>, <code>png</code> + and <code>gif</code>) it will show the image. + </p> + + <p> + If Hypo doens't know what kind of file you're uploading + it will default to treating it as a text file. + </p> + </div> + </div> + <div id="outline-container-sec-1-2" class="outline-3"> + <h3 id="sec-1-2">Viewing</h3> + <div class="outline-text-3" id="text-1-2"> + <p> + All files can be viewed (from, for example, your web + browser) in three different ways. The regularly, raw and + as download. + </p> + + <p> + The regular way shows a web page with the file either + syntax highlighted using <code>pygments</code> or (in + case it is an image) with the image shown on the page. + This is viewed by using the URL printed after upload has + completed. For example: + </p> + + <pre class="example">http://yourserver.example.com/abcdef1</pre> + + <p> + The raw view is just the file, saving this file is the + same as downloading it. This is viewed by prefixing the + last part of the URL with <code>raw/</code>. For + example: + </p> + + <pre class="example">http://yourserver.example.com/raw/abcdef1</pre> + + <p> + The download view is the same as the raw view except + that the <code>Content-Disposition</code> header has + been set to <code>attachment</code>. This causes a + download dialog to show up instead of your browser + trying to render it. This ir viewed by prefixing the + last part of the URL with <code>dl/</code>. For example: + </p> + + <pre class="example">http://yourserver.example.com/dl/abcdef1</pre> + </div> + </div> + <div id="outline-container-sec-1-3" class="outline-3"> + <h3 id="sec-1-3">Deleting</h3> + <div class="outline-text-3" id="text-1-3"> + <p> + After you have uploaded a file you can delete it again + by using the <code>DELETE</code> HTTP method. An example + with curl: + </p> + + <pre class="example"># curl -XDELETE http://yourserver.example.com/abcdef1 +None</pre> + + <p> + There is currently no way to authenticate yourself with + the server, so anyone can delete (also post) files. Of + course they would first have to know the URL to send the + delete to. + </p> + </div> + </div> + </div> + <div id="outline-container-sec-2" class="outline-2"> + <h2 id="sec-2">Clients</h2> + <div class="outline-text-2" id="text-2"> + <p> + Hypo tries to stay simple to work with, at least on the + client-side. However, some clients may make things easier. + Currently there is only the + (incomplete) <a href="http://code.ryuslash.org/hypo-emacs/">Emacs + client</a>. + </p> + </div> + </div> + + <footer> + This site is powered + by <a href="http://projects.ryuslash.org/hypo">Hypo</a>. Hypo + is available under + the <a href="https://www.gnu.org/licenses/agpl-3.0.html">GNU + Affero General Public License</a>. You can download its source + code <a href="http://code.ryuslash.org/cgit.cgi/hypo/">here</a>. + </footer> + </div> + </body> +</html> |