aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2013-08-25 23:21:39 +0200
committerGravatar Tom Willemse2013-08-25 23:21:39 +0200
commit96bfb88a5e348c7bfad56d34eebaa891b68e2773 (patch)
tree52a7c9ab13f3e2c6e658980cf547a095e7e1b1a2
parent71adee48209840198f90a6b9da33b73830ebbfeb (diff)
downloadhypo-96bfb88a5e348c7bfad56d34eebaa891b68e2773.tar.gz
hypo-96bfb88a5e348c7bfad56d34eebaa891b68e2773.zip
Update README, add index page
-rw-r--r--README.org34
-rwxr-xr-xhypo.hy6
-rw-r--r--templates/index.html159
3 files changed, 198 insertions, 1 deletions
diff --git a/README.org b/README.org
index 320f81a..af0c863 100644
--- a/README.org
+++ b/README.org
@@ -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
diff --git a/hypo.hy b/hypo.hy
index a749984..b694596 100755
--- a/hypo.hy
+++ b/hypo.hy
@@ -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&gt;/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>