git clone 'git://'

         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.


REQUIREMENTS Emacs 24.3 or later and the Emacs web server [1].

USAGE 1. Install from melpa [2] or source.


2. Optionally run the tests suite.

   (require 'test-org-ehtml)
   (ert "org-ehtml")

3. Configure Org-ehtml to serve a directory of Org-mode files on
   your machine (e.g., "~/public_org"), and set all fields to be

   ;; 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)

4. Start up the web server.

   (require 'org-ehtml)
   (ws-start org-ehtml-handler 8888)

5. 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.

   [3]  http://localhost:8888


Integration with Version Control

  (require 'vc)

   (lambda (request)
     (let ((file (buffer-file-name (current-buffer))))
       (vc-checkin (list file)
                   (vc-backend file) nil "edit through org-ehtml"))))


  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.

    Show org-todo-list.

    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