From e9d682e5452f03fdcb64f484bdf04110d4f20340 Mon Sep 17 00:00:00 2001 From: JSDurand Date: Sun, 5 Sep 2021 15:25:25 +0800 Subject: org: Exclude javascript and add date/time info * org-conf.el (org-html-head-include-scripts): Don't include that snippet here. (durand-org-publish-html-advice, org-html-publish-to-html): Advice the publishing function to include a date/time information in each post. --- org-conf.el | 81 +++++++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 66 insertions(+), 15 deletions(-) diff --git a/org-conf.el b/org-conf.el index bf1d50d..b39bbae 100644 --- a/org-conf.el +++ b/org-conf.el @@ -546,7 +546,7 @@ If DESC is non-`nil', then it is the description of the new link." ;;; publishing settings -;;;;; Custom preamble for the sidebar +;;;; Custom preamble for the sidebar (defvar durand-org-publish-sidebar nil "The sidebar that provides the navigation of the website.") @@ -563,7 +563,7 @@ If DESC is non-`nil', then it is the description of the new link." "Return the sidebar." durand-org-publish-sidebar) -;;;;;; Add a custom head +;;;;; Add a custom head (defvar durand-org-publish-css-file nil "A custom css-file for publishing.") @@ -579,7 +579,11 @@ href=\"website.css\"/>") "") -;;;;; Projects settings +;;;; Don't include JavaScript in the HTML + +(setq org-html-head-include-scripts nil) + +;;;; Projects settings (setq org-publish-project-alist (list @@ -700,9 +704,9 @@ href='https://jsdurand.xyz/favicon.ico'/>") :html-home/up-format "" :html-preamble #'durand-org-publish-insert-sidebar))) -;;;;; Sitemap function +;;;; Sitemap function -;;;;;; A hack to insert some string in the sitemap file. +;;;;; A hack to insert some string in the sitemap file. (defvar durand-sitemap-custom-string-alist nil "An association list that relates the title of the sitemap and the string to insert.") @@ -721,7 +725,7 @@ life." "My Mathematics-related articles are put here." "math-atom.xml"))) -;;;;;; Custom sitemap function +;;;;; Custom sitemap function (defun durand-org-publish-sitemap (title rep) "Return the sitemap as a string. @@ -746,7 +750,7 @@ project. Use such functions as `org-list-to-org' or :isep "|---|")) (caddr (assoc title durand-sitemap-custom-string-alist #'string=)))) -;;;;;; Custom sitemap format +;;;;; Custom sitemap format ;; NOTE: I use a table to style the entries. @@ -770,12 +774,12 @@ PROJECT is the current project." entry (org-publish-find-title entry project))) -;;;;; Post-processing +;;;; Post-processing ;; I post-process the sitemaps in order to generate a section ;; of "latest updates" on the index page. -;;;;;; fix: plist-get not working +;;;;; fix: plist-get not working ;; For some reason the built-in `plist-get' does not work... (defun durand-org-publish-plist-get (prop plist) @@ -788,7 +792,7 @@ PROJECT is the current project." ((setq plist (cddr plist))))) res)) -;;;;;; Helper for converting the format from `parse-time-string' +;;;;; Helper for converting the format from `parse-time-string' (defun durand-org-publish-convert-time (spec) "Convert SPEC to a valid time value. @@ -807,7 +811,7 @@ are present." (or hour 0)) (cdddr spec))))) -;;;;;; Post process to generate the index page +;;;;; Post process to generate the index page (defvar durand-org-index-entries-max-num 10 "The maximal number of entries to show on the index page.") @@ -1018,9 +1022,56 @@ The feeds are generated by the function `durand-org-generate-atom-feed'." (reverse temp))) (reverse temp))))))) -;;;;; Atom feed +;;;;; add date/time info + +;; I want to show the date of the article below the title, so that it +;; is clearer when the article is written. The default display at the +;; bottom of the page is too hidden. -;;;;;; Fixed pre-amble, template, and post-amble. +(defun durand-org-publish-html-advice (html-file-name) + "Advice `org-html-publish-html' to add a date/time info below the \ +title." + (with-temp-buffer + (insert-file-contents html-file-name) + (goto-char (point-min)) + (cond + ((search-forward "h1 class=\"title\"" nil t) + ;; if it does not have a title, we do not add a time info. + (search-forward "" nil) + ;; if it already has a time info, don't generate again + (cond ((save-excursion + (forward-char 1) + (looking-at-p "