Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jakebox/preview-org-html-mode

Emacs minor mode for an (optionally) live preview of Org exports to HTML using Xwidgets.
https://github.com/jakebox/preview-org-html-mode

emacs html org-mode

Last synced: 16 days ago
JSON representation

Emacs minor mode for an (optionally) live preview of Org exports to HTML using Xwidgets.

Awesome Lists containing this project

README

        

#+TITLE: preview-org-html-mode
#+AUTHOR: jakebox
#+OPTIONS: num:nil toc:nil

*PREVIEW-ORG-HTML-MODE HAS BECOME [[https://github.com/jakebox/org-preview-html][ORG-PREVIEW-HTML]] AND IS ON MELPA. ALL FURTHER DEVELOPMENT CAN BE FOUND THERE. THANK YOU!*

This minor mode provides an easy preview of your org-exported HTML files using either the =eww= or =xwidget WebKit= browser. By default, when =preview-org-html-mode= is enabled a save will trigger a refresh of the preview. Refresh frequency can be configured using ~preview-org-html-refresh-configuration~ (see [[#usage][Usage]]).

* Usage
Open an Org file and execute ~M-x preview-org-html-mode~. A preview window opens next to the Org file. If you want to manage this window separate (aka, make it a frame) use the function ~preview-org-html-pop-window-to-frame~.
** Commands
+ ~preview-org-html-mode~ - enables minor mode and opens preview.
+ ~preview-org-html-refresh~ - manually refresh preview (only needed in ~manual~ mode).
+ ~preview-org-html-pop-window-to-frame~ - pops out the current window in to a frame.

* Variables/Configuration
** Refresh Configuration
+ ~preview-org-html-refresh-configuration~ - configure how often the HTML preview will be refreshed
* If ='manual=, update manually by running ~preview-org-html-refresh~.
* If ='save=, update on save (default).
* If ='export=, update on manual export (using ~org-html-export-to-html~).
* If ='timer=, update preview on timer.
- Configure with ~preview-org-html-timer-interval~, default ~2~ seconds.
* If ~instant~, update ASAP
- Still WIP, it is suggested to use ~timer~ mode with a short interval.
** Viewer
+ ~preview-org-html-viewer~ - which Emacs browser ~preview-org-html-mode~ will use (default ~eww~)
* If ='eww=, use eww browser (default).
* If ='xwidget=, use xwidget browser.
- *Requires Emacs to be built with xwidget support*

* Demo
This demo is using the =xwidget= browser. The author suggests utilizing the =xwidget= browser, though =eww= is set as default for the comfort of past users.
[[preview-org-html-mode-demo.gif]]

* Limitations
It should be noted that as of now =preview-org-html-mode= supports previewing only one buffer at a time. Any suggestions on how previewing multiple buffers would work are welcome. It would be fairly trivial to implement preview support without any nice automatic switching/saving features; however, I would rather implement a smooth, pleasant experience rather than a janky one.

* Todos
+ Improve ~instant~ mode