hypo/README.org
Tom Willemse 9b3ffb3617 Explicitly mention dependency version numbers
It's happened a few times that updated dependencies break some
functionality, so this should remind people of what to use.
2014-07-25 22:29:08 +02:00

107 lines
4 KiB
Org Mode

#+STARTUP: showall
#+OPTIONS: toc:nil
Quickly share bits of code, screenshots and whatnot with some friends.
Easily delete them too.
* Setup
Hypo is written in [[http://hylang.org][hy]]. Which is a Lisp and Python thrown together.
This doesn't matter much, it should function as a regular python
module.
** Requirements
Hypo has the following requirements:
- [[http://hylang.org][hy]] 0.10.0 :: The language.
- [[http://webpy.org][web.py]] 0.37 :: The Python web framework.
- [[https://github.com/FriendCode/gittle][gittle]] 0.2.2 :: Pythonic Git for Humans
- [[https://bitbucket.org/babab/pycommand][pycommand]] 0.1.0 :: Command line arguments parser
- [[http://pygments.org/][Pygments]] 1.6 :: Python syntax highlighter
Besides these it also requires everything needed to run web.py
applications using your favorite webserver.
* Usage
Once setup it will show most of this file if you browse to the ~/~ of
your installation, then you'll have to upload something.
** Uploading
Uploading is done with the ~PUT~ HTTP method. An example with curl:
: # curl --upload-file README.org http://yourserver.example.com/ 2>/dev/null
: http://yourserver.example.com/abcdef1
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 ~jpg~, ~png~ and ~gif~) it will show the
image.
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 is 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
the ~DELETE~ HTTP method. An example with curl:
: # curl -XDELETE http://yourserver.example.com/abcdef1
: Successfully removed abcdef1
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.
* 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]] and a simple [[http://code.ryuslash.org/hypo-cli/about/][CLI client]].
* License
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/]].
See [[http://code.ryuslash.org/cgit.cgi/hypo/tree/COPYING][COPYING]] for more information.