Brief foray into ox-slimhtml
Intro
When I began creating this website I was overwhelmed by the complexity of ox-html.el which is responsible for exporting org files to HTML.
I came across ox-slimhtml.el which is simpler and easier to understand the mechanics of what is happening upon export.1
Code
For posterity here’s how my org-publish-project-alist was shaping up under the ox-slimhtml exporter:
<link href='/styles.css' rel='stylesheet' type='text/css'>
:base-extension "org"
:publishing-function ox-slimhtml-publish-to-html
:html-doctype "html5"
:html-head-extra "
<<html-header>>
"
:author "Akira Kyle"
:email "akira@akirakyle.com"
:recursive t
:base-extension "svg\\|pdf"
:publishing-function org-publish-attachment
:recursive t
("pages"
:base-directory "~/Documents/website/pages/"
:publishing-directory "~/Documents/www/"
<<publish-common-html-props>>
)
("blog"
:base-directory "~/Documents/website/blog/"
:publishing-directory "~/Documents/www/blog/"
<<publish-common-html-props>>
:auto-sitemap t
:sitemap-filename "blog.org"
:sitemap-title "Akira Kyle's Blog"
)
("pages-resources"
:base-directory "~/Documents/website/pages/"
:publishing-directory "~/Documents/www/"
<<publish-common-resource-props>>
)
("blog-resources"
:base-directory "~/Documents/website/blog/"
:publishing-directory "~/Documents/www/blog/"
<<publish-common-resource-props>>
)
("website"
:components ("pages" "pages-resources" "blog" "blog-resources"))
(setq org-html-htmlize-output-type 'css)
(setq org-publish-project-alist `(
<<org-publish-components>>
))
(org-publish "website" t)
Conclusions
I abandoned this as it didn’t have the ability to do syntax highlighting of code blocks through htmlize.el which I wanted.
I may end up returting to ox-slimhtml as the starting point for my own custom org HTML exporter some day when I feel I need even more custom control.
In any case looking over the source of ox-slimhtml is a gentler intro to understanding the source of ox-html and so I was glad to know of it’s existence.
Footnotes:
compare ox-html.el at 3842 lines of code vs ox-slimhtml.el at only 592 lines of code