diff options
author | nathansmith <nathansmith@posteo.com> | 2025-05-23 07:43:34 -0600 |
---|---|---|
committer | nathansmith <nathansmith@posteo.com> | 2025-05-23 07:43:34 -0600 |
commit | 4e749697600bab526b1cf51bcca493f6d31d2e34 (patch) | |
tree | 10a0274c96667d1482dd7f07d768feaf518d6187 /testTheThing/shittyweb-html.el | |
parent | d194694f31002068868a378d121ed0e2db01c378 (diff) |
Almost done with this stupidness
Diffstat (limited to 'testTheThing/shittyweb-html.el')
-rw-r--r-- | testTheThing/shittyweb-html.el | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/testTheThing/shittyweb-html.el b/testTheThing/shittyweb-html.el deleted file mode 100644 index 0dc06b2..0000000 --- a/testTheThing/shittyweb-html.el +++ /dev/null @@ -1,146 +0,0 @@ -(require 'ox-html) - -;; https://gileschamberlin.com/2020/02/25/writing-a-new-org-mode-exporter-back-end -;; https://github.com/grc/jujutsu-website/blob/master/elisp/org-jujutsu-site.el -;; https://orgmode.org/worg/dev/org-export-reference.html - -(defvar shittyweb-html-background-color "#dcd1ba") -(defvar shittyweb-html-table-background-color "#bebebe") -(defvar shittyweb-html-table-border 1) -(defvar shittyweb-html-table-width "65%") -(defvar shittyweb-html-code-background-color "white") -(defvar shittyweb-html-code-border 1) - -(org-export-define-derived-backend 'shittyweb-html 'html - :translate-alist '((template . shittyweb-html-template) - (src-block . shittyweb-html-src-block)) - :options-alist '((:background-image "BACKGROUND_IMAGE" nil nil) - (:shittyweb-header "SHITTYWEB_HEADER" nil nil))) - -(defun shittyweb-html-template (contents info) - "Return complete document string after HTML conversion. -CONTENTS is the transcoded contents string. INFO is a plist -holding export options." - (concat - (when (and (not (org-html-html5-p info)) (org-html-xhtml-p info)) - (let* ((xml-declaration (plist-get info :html-xml-declaration)) - (decl (or (and (stringp xml-declaration) xml-declaration) - (cdr (assoc (plist-get info :html-extension) - xml-declaration)) - (cdr (assoc "html" xml-declaration)) - ""))) - (when (not (or (not decl) (string= "" decl))) - (format "%s\n" - (format decl - (or (and org-html-coding-system - (coding-system-get org-html-coding-system :mime-charset)) - "iso-8859-1")))))) - (org-html-doctype info) - "\n" - (concat "<html" - (cond ((org-html-xhtml-p info) - (format - " xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"%s\" xml:lang=\"%s\"" - (plist-get info :language) (plist-get info :language))) - ((org-html-html5-p info) - (format " lang=\"%s\"" (plist-get info :language)))) - ">\n") - "<head>\n" - (org-html--build-meta-info info) - (org-html--build-head info) - (org-html--build-mathjax-config info) - "</head>\n" - ;; Body with background - (let ((background (plist-get info :background-image))) - (if background - (format "<body bgcolor=\"%s\" background=\"%s\">\n" - shittyweb-html-background-color - background) - (format "<body bgcolor=\"%s\">" - shittyweb-html-background-color))) - ;; I dont use link-up so byebye it goes. - ;; Also I give it a directory instead of file. - (let ((link-home (org-trim (plist-get info :html-link-home)))) - (unless (string= link-home "") - (format (plist-get info :html-home/up-format) link-home link-home))) - ;; Preamble. - (org-html--build-pre/postamble 'preamble info) - "\n<center>\n" - ;; Shittyweb header. Its outside the weird table thing. - (let ((shittyweb-header (plist-get info :shittyweb-header))) - (if shittyweb-header - shittyweb-header)) - ;; Document contents. - (let ((div (assq 'content (plist-get info :html-divs)))) - (format "<table border=\"%d\" width=\"%s\" bgcolor=\"%s\" id=\ -\"%s\" class=\"%s\"><tr><td>\n" - shittyweb-html-table-border - shittyweb-html-table-width - shittyweb-html-table-background-color - (nth 2 div) - (plist-get info :html-content-class))) - ;; Document title. - (when (plist-get info :with-title) - (let ((title (and (plist-get info :with-title) - (plist-get info :title))) - (subtitle (plist-get info :subtitle)) - (html5-fancy (org-html--html5-fancy-p info))) - (when title - (format - (if html5-fancy - "<header>\n<h1 class=\"title\">%s</h1>\n%s</header>" - "<h1 class=\"title\">%s%s</h1>\n") - (org-export-data title info) - (if subtitle - (format - (if html5-fancy - "<p class=\"subtitle\" role=\"doc-subtitle\">%s</p>\n" - (concat "\n" (org-html-close-tag "br" nil info) "\n" - "<span class=\"subtitle\">%s</span>\n")) - (org-export-data subtitle info)) - ""))))) - contents - "</td></tr></table>\n" - ;; Postamble. - (org-html--build-pre/postamble 'postamble info) - ;; Possibly use the Klipse library live code blocks. - (when (plist-get info :html-klipsify-src) - (concat "<script>" (plist-get info :html-klipse-selection-script) - "</script><script src=\"" - org-html-klipse-js - "\"></script><link rel=\"stylesheet\" type=\"text/css\" href=\"" - org-html-klipse-css "\"/>")) - ;; Closing document. - "</center>\n</body>\n</html>")) - -;; I don't like the way it handles src blocks. I just want <code>. -(defun shittyweb-html-src-block (src-block _contents info) - (let* ((code (org-html-format-code src-block info)) - (code-lines (string-split (string-trim code) "\n"))) - (defun join-code-lines (lines) ;; Change \n to <br /> - (concat (car lines) - (if (cdr lines) - (concat "<br />\n" (join-code-lines (cdr lines))) - ""))) - (format "<table bgcolor=\"%s\" border=\"%d\"><tr><td>\n\ -<code>\n%s\n</code>\n</td></tr></table>" - shittyweb-html-code-background-color - shittyweb-html-code-border - (join-code-lines code-lines)))) - -(defun shittyweb-publish-to-html (plist filename pub-dir) - "Publish an org file to HTML. - -FILENAME is the filename of the Org file to be published. PLIST -is the property list for the given project. PUB-DIR is the -publishing directory. - -Return output file name." - (org-publish-org-to 'shittyweb-html filename - (concat (when (> (length org-html-extension) 0) ".") - (or (plist-get plist :html-extension) - org-html-extension - "html")) - plist pub-dir)) - -(provide 'shittyweb-html) |