eschulte / org-ehtml

Export Org-mode files as editable web pages
GNU General Public License v3.0
165 stars 20 forks source link
                          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

  1. Install from melpa [2] or source.

    [2] http://melpa.org/

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

  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

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/