Skip to content

sunny/edith

Repository files navigation

Edith

A quick small wiki, perfect for pasting quick texts or code and sharing it between friends.

Don’t worry about saving, it saves at every key stroke. Think of it as a magic zero-UI Web notepad.

Try it out at https://edit.sunfox.org/any-page-name.

Usage

  • /any-page-name: type what you want, it’s saved automagically!
  • /any-page-name.txt: raw text version.
  • /any-page-name.html: HTML version through the Markdown syntax.
  • /any-page-name.remark: Slideshow version using Remark.
  • /any-page-name.graphviz: Graph version of the dot syntax using Viz, see WebGraphViz for examples.

Keyboard shortcut cltr-e switches from edit mode to HTML mode.

Favicon

Animated screenshot of the Favicon changing as the page updates

The favicon changes as the page updates and is also an indicator that the page is currently saving or not.

REST

Edith is also a RESTful API. So go ahead and try to PUT or DELETE on these URLs.

Install it yourself

Clone it locally:

$ git clone https://github.com/sunny/edith.git
$ cd edith

Using Docker

Build the image:

$ docker build . -t edith

Run it:

$ docker run --rm -p 8888:80 edith

Now you can access Edith from http://localhost:8888/

Using a local web server

Make the data directory writable:

$ chmod a+w data

Run it with a web server that interprents PHP and points all 404s to index.php:

  • PHP’s built-in server for development:

    $ php -S localhost:8888 index.php
  • Apache:

    You can use the example htaccess.

    $ cp htaccess.example .htaccess
  • nginx:

    Add the following directive to your nginx configuration:

    try_files $uri $uri/ @rewrites;
    location @rewrites {
      rewrite ^ /index.php last;
    }
    

Further use

Configuration

Copy config.example.php to config.php and read the examples to use your own configuration file.

Read-only pages

To make pages read-only, make them non-writable on disk:

$ chmod -w data/foo.txt

They will then be shown using the HTML representation through Markdown instead.

To deactivate the creation of new pages, make the data directory itself non-writable.

URLs

You may use any file name you like as long as it doesn’t end like a representation (.txt or .html).

If you prefer /page.js/txt URLs instead of /page.js.txt, the config file has a setting for you.

Contributing

You are welcome to contribute by adding issues and forking the code on GitHub.

Licence

Edith is released under the MIT License.