* PlumHTML
org-export backend for sane HTML. Basically some changes and
extensions to [[https://github.com/balddotcat/ox-slimhtml ][ox-slimhtml ]].
Used to publish words I write.
** Installation
You want to [[https://github.com/C-xC-c/ox-plumhtml.git ][clone ]] [[https://git.flanchan.moe/c-xc-c/ox-plumhtml.git ][the ]] [[public@plum.moe:ox-plumhtml ][repo ]], cd to it then do ~M-x
package-install-file~ on ~ox-plumhtml.el~
** Header IDs
In org-mode you can do something like
#+begin_example
,#+plumhtml_header_ids:
,* Header 1
.....
some content...
.....
,* Header 2
[[Header 1 ][Link to header 1 ]]
#+end_example
And the link will jump back to =Header 1= when you click it.
This is implemented in ox-plumhtml conditionally by setting the
variable ~ox-plumhtml-export-header-ids~ , or putting
~#+plumhtml_header_ids: t~ in your org file.
Exported contents look like this when set to nil:
#+begin_src html
<!DOCTYPE html >
<html lang="en" >
<head >
</head >
<body ><h1 >Header 1</h1 ><p >.....
some content...
.....
</p >
<h1 >Header 2</h1 ><p ><a href="Header 1" >Link to header 1</a >
</p >
</div ></body >
</html >
#+end_src
And this when non-nil:
#+begin_src html
<!DOCTYPE html >
<html lang="en" >
<head >
</head >
<body ><h1 id="orgffb8f9b" >Header 1</h1 ><p >.....
some content...
.....
</p >
<h1 id="org89773e7" >Header 2</h1 ><p ><a href="#orgffb8f9b" >Link to header 1</a >
</p >
</div ></body >
</html >
#+end_src
It adds some noise to the outputted file but it's worth it IMO.
** Functions
*** ~ox-plumhtml-export-as-html~
Makes a temporary buffer with the exported HTML.
*** ~ox-plumhtml-export-to-html~
Like ~ox-plumhtml-export-as-html~ but dumps the exported HTML to a
file like =example.org= -> =example.html=
*** ~ox-plumhtml-publish-to-html~
Same as ~ox-plumhtml-export-as-html~ but for ~org-publish~
** Tests
I stole them from =ox-slimhtml= lole
#+BEGIN_EXAMPLE
emacs -batch \
-l ert \
-l ox-plumhtml-tests.el \
-f ert-run-tests-batch-and-exit
#+END_EXAMPLE