Org-ehtml
export Org-mode files as editable web pages
DESCRIPTION Org-ehtml allows for interactively viewing and editing Org-mode files through a web browser. The Emacs web server [1] serves Org-mode files as editable HTML exported with a special ox-ehtml backend which extends the standard Org-mode HTML export.
[1] https://github.com/eschulte/emacs-web-server
REQUIREMENTS Emacs 24.3 or later and the Emacs web server [1].
USAGE
Install from melpa [2] or source.
Optionally run the tests suite.
(require 'test-org-ehtml) (ert "org-ehtml")
Configure Org-ehtml to serve a directory of Org-mode files on your machine (e.g., "~/public_org"), and set all fields to be editable.
;; NOTE: the org-ehtml-docroot value should be fully expanded (setq org-ehtml-docroot (expand-file-name "~/public_org")) (setq org-ehtml-everything-editable t)
Start up the web server.
(require 'org-ehtml) (ws-start org-ehtml-handler 8888)
Point your browser to [3] select a page, and move your mouse over the page. Editable portions of the page will be highlighted, click on these to edit.
EXTENSIONS
Integration with Version Control
(require 'vc)
(add-hook
'org-ehtml-after-save-hook
(lambda (request)
(let ((file (buffer-file-name (current-buffer))))
(vc-checkin (list file)
(vc-backend file) "edit through org-ehtml"))))
Authentication
NOTE: This uses HTTP BASIC authentication which is only secure
when used over a secure (HTTPS) connection.
Use the `ws-with-authentication' function to protect org-ehtml
functionality with credentials. For example, the following
requires all edits require a user supplies the username "admin"
and the password "password".
(setf (cdr (assoc '(:POST . ".*") org-ehtml-handler))
(ws-with-authentication 'org-ehtml-edit-handler
'(("admin" . "password"))))
Agenda View
Org-ehtml supports viewing the Agenda buffer. It can be enabled
by setting org-ehtml-allow-agenda to a non-nil value. The
agenda can be viewed by adding /agenda/CMD to the url with CMD
being one of the following.
day, week, fortnight, month, year:
Show org-agenda-list in that range. For example [4] will show
the agenda for the specified day. An additional argument can
be provided to set the start date.
[4] http://localhost:8888/agenda/day/2013-11-11
any natural number:
Show org-agenda-list for that many days. Similar to using
day, week, etc.
todo:
Show org-todo-list.
tags:
Show org-tags-view. It requires an additional argument
(separated by a /) specifying the tag. Using todo as first
argument will limit the search to TODO entries. For example
[5] will show all headlines tagged :work: and [6] will only
show headlines tagged :work: and marked TODO.
[5] http://localhost:8888/agenda/tags/work
[6] http://localhost:8888/agenda/tags/todo/work
STYLE
Override CSS by making a file in your home directory called
~/.ox-ehtml-override.css and enter in your CSS in there. A
good theme is: https://github.com/oxalorg/sakura/