Update README, add index page
This commit is contained in:
parent
71adee4820
commit
96bfb88a5e
3 changed files with 198 additions and 1 deletions
34
README.org
34
README.org
|
@ -1,3 +1,5 @@
|
||||||
|
#+STARTUP: showall
|
||||||
|
|
||||||
Quickly share bits of code, screenshots or whatnot with some friends.
|
Quickly share bits of code, screenshots or whatnot with some friends.
|
||||||
Easily delete them too.
|
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
|
If Hypo doens't know what kind of file you're uploading it will
|
||||||
default to treating it as a text file.
|
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
|
** Deleting
|
||||||
|
|
||||||
After you have uploaded a file you can delete it again by using
|
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
|
server, so anyone can delete (also post) files. Of course they
|
||||||
would first have to know the URL to send the delete to.
|
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
|
* License
|
||||||
|
|
||||||
Hypo is free software: you can redistribute it and/or modify it
|
Hypo is free software: you can redistribute it and/or modify it
|
||||||
|
|
6
hypo.hy
6
hypo.hy
|
@ -28,7 +28,8 @@
|
||||||
(sys.exit 1)))
|
(sys.exit 1)))
|
||||||
|
|
||||||
(def render (web.template.render "templates/"))
|
(def render (web.template.render "templates/"))
|
||||||
(def urls (, (+ "/" *prefix* "raw/(.*)") "raw"
|
(def urls (, (+ "/" *prefix*) "index"
|
||||||
|
(+ "/" *prefix* "raw/(.*)") "raw"
|
||||||
(+ "/" *prefix* "dl/(.*)") "download"
|
(+ "/" *prefix* "dl/(.*)") "download"
|
||||||
(+ "/" *prefix* "([a-f0-9]{7})$") "html"
|
(+ "/" *prefix* "([a-f0-9]{7})$") "html"
|
||||||
(+ "/" *prefix* "(.*)") "upload"))
|
(+ "/" *prefix* "(.*)") "upload"))
|
||||||
|
@ -137,6 +138,9 @@ If no lexer is found fallback onto the text lexer."
|
||||||
(setv web.ctx.status (str "201 Created"))
|
(setv web.ctx.status (str "201 Created"))
|
||||||
(+ web.ctx.home "/" *prefix* (get h 0) "\n")))]])
|
(+ web.ctx.home "/" *prefix* (get h 0) "\n")))]])
|
||||||
|
|
||||||
|
(defclass index []
|
||||||
|
[[GET (lambda [self] (render.index))]])
|
||||||
|
|
||||||
(defun hypo-start [argv]
|
(defun hypo-start [argv]
|
||||||
(let ((sys.argv (cdr sys.argv))
|
(let ((sys.argv (cdr sys.argv))
|
||||||
(app (web.application urls (globals))))
|
(app (web.application urls (globals))))
|
||||||
|
|
159
templates/index.html
Normal file
159
templates/index.html
Normal file
|
@ -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>
|
Loading…
Reference in a new issue