From d45e77c65c2dfca154814595aad01e1d77aa968d Mon Sep 17 00:00:00 2001 From: Marius Peter Date: Thu, 3 Mar 2022 21:35:42 +0100 Subject: Reorganize org-publish-project-alist. --- publish-mlnp.org | 201 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 108 insertions(+), 93 deletions(-) diff --git a/publish-mlnp.org b/publish-mlnp.org index 6c2dc1f..6a12191 100644 --- a/publish-mlnp.org +++ b/publish-mlnp.org @@ -70,15 +70,21 @@ Two possible publishing locations are considered: ** Components -#+NAME: org-publish-components +We outline three components: the main site, the wiki, and the blog. + +#+NAME: org-publish-component #+begin_src elisp - (setq org-publish-components + (setq org-publish-component (read-answer "Which `org-publish-project-alist' component should be built? " - '(("content" - ?c "build content (html) website components") + '(("mlnp.fr" + ?m "build the main website") + ("wiki.mlnp.fr" + ?w "build the wiki") + ("blog.mlnp.fr" + ?b "build the blog") ("all" - ?a "build all website components")))) + ?a "build all websites")))) #+end_src @@ -129,91 +135,13 @@ Both the wiki and the blog call for css and font resources hosted on =mlnp.fr/resources/= folder. #+NAME: org-publish-project-alist -#+BEGIN_SRC elisp +#+BEGIN_SRC elisp :noweb yes (require 'ox-publish) (setq org-publish-project-alist - `( - ;; Main site. - ("mlnp.fr" - :components ("mlnp-main-pages" - "mlnp-resources" - "resources-pages" ; Only hosted on the main website. - "mlnp-fonts")) - ("mlnp-main-pages" - :base-directory "./" - :base-extension "org" - :publishing-directory ,(concat org-publish-location "mlnp.fr/") - :recursive nil ; Main site pages are all in top-level org directory. - :publishing-function org-html-publish-to-html) - ("mlnp-resources" - :base-directory "resources/" - :base-extension "css\\|js" - :publishing-directory ,(concat org-publish-location "mlnp.fr/resources/") - :publishing-function org-publish-attachment) - ("resources-pages" - :base-directory "resources/" - :base-extension "org" - :publishing-directory ,(concat org-publish-location "mlnp.fr/resources/") - :publishing-function org-html-publish-to-html) - ("mlnp-fonts" - :base-directory "resources/fonts/" - :base-extension "ttf\\|otf" - :publishing-directory ,(concat org-publish-location "mlnp.fr/resources/fonts/") - :publishing-function org-publish-attachment) - - ;; Personal wiki. - ("wiki.mlnp.fr" - :components ("wiki-main-pages" - "wiki-resources" - "wiki-fonts")) - ("wiki-main-pages" - :base-directory "wiki/" - :base-extension "org" - :publishing-directory ,(concat org-publish-location "wiki.mlnp.fr/") - :recursive t - :html-head "" - :auto-sitemap t - :sitemap-filename "index.org" - :sitemap-title "Wiki" - :publishing-function org-html-publish-to-html) - ("wiki-resources" - :base-directory "resources/" - :base-extension "css\\|js" - :publishing-directory ,(concat org-publish-location "wiki.mlnp.fr/resources/") - :publishing-function org-publish-attachment) - ("wiki-fonts" - :base-directory "resources/fonts/" - :base-extension "ttf\\|otf" - :publishing-directory ,(concat org-publish-location "wiki.mlnp.fr/resources/fonts/") - :publishing-function org-publish-attachment) - - ;; Personal blog. - ("blog.mlnp.fr" - :components ("blog-main-pages" - "blog-resources" - "blog-fonts")) - ("blog-main-pages" - :base-directory "blog/" - :base-extension "org" - :publishing-directory ,(concat org-publish-location "blog.mlnp.fr/") - :recursive t - :html-head "" - :auto-sitemap t - :sitemap-filename "index.org" - :sitemap-title "Blog" - :sitemap-sort-files anti-chronologically - :publishing-function org-html-publish-to-html) - ("blog-resources" - :base-directory "resources/" - :base-extension "css\\|js" - :publishing-directory ,(concat org-publish-location "blog.mlnp.fr/resources/") - :publishing-function org-publish-attachment) - ("blog-fonts" - :base-directory "resources/fonts/" - :base-extension "ttf\\|otf" - :publishing-directory ,(concat org-publish-location "blog.mlnp.fr/resources/fonts/") - :publishing-function org-publish-attachment) - + `( ;; This line left blank to avoid noweb honoring `( prefix. + <> + <> + <> ("all" :components ("mlnp.fr" "wiki.mlnp.fr" @@ -223,14 +151,99 @@ Both the wiki and the blog call for css and font resources hosted on ** =mlnp.fr= +#+NAME: mlnp.fr +#+BEGIN_SRC emacs-lisp + ("mlnp.fr" + :components ("mlnp-main-pages" + "mlnp-resources" + "resources-pages" ; Only hosted on the main website. + "mlnp-fonts")) + ("mlnp-main-pages" + :base-directory "./" + :base-extension "org" + :publishing-directory ,(concat org-publish-location "mlnp.fr/") + :recursive nil ; Main site pages are all in top-level org directory. + :publishing-function org-html-publish-to-html) + ("mlnp-resources" + :base-directory "resources/" + :base-extension "css\\|js" + :publishing-directory ,(concat org-publish-location "mlnp.fr/resources/") + :publishing-function org-publish-attachment) + ("resources-pages" + :base-directory "resources/" + :base-extension "org" + :publishing-directory ,(concat org-publish-location "mlnp.fr/resources/") + :publishing-function org-html-publish-to-html) + ("mlnp-fonts" + :base-directory "resources/fonts/" + :base-extension "ttf\\|otf" + :publishing-directory ,(concat org-publish-location "mlnp.fr/resources/fonts/") + :publishing-function org-publish-attachment) +#+END_SRC + ** =wiki.mlnp.fr= +#+NAME: wiki.mlnp.fr +#+BEGIN_SRC emacs-lisp + ("wiki.mlnp.fr" + :components ("wiki-main-pages" + "wiki-resources" + "wiki-fonts")) + ("wiki-main-pages" + :base-directory "wiki/" + :base-extension "org" + :publishing-directory ,(concat org-publish-location "wiki.mlnp.fr/") + :recursive t + :html-head "" + :auto-sitemap t + :sitemap-title "Sitemap for [[http://wiki.mlnp.fr][wiki.mlnp.fr]]" + :publishing-function org-html-publish-to-html) + ("wiki-resources" + :base-directory "resources/" + :base-extension "css\\|js" + :publishing-directory ,(concat org-publish-location "wiki.mlnp.fr/resources/") + :publishing-function org-publish-attachment) + ("wiki-fonts" + :base-directory "resources/fonts/" + :base-extension "ttf\\|otf" + :publishing-directory ,(concat org-publish-location "wiki.mlnp.fr/resources/fonts/") + :publishing-function org-publish-attachment) +#+END_SRC + ** =blog.mlnp.fr= +#+NAME: blog.mlnp.fr +#+BEGIN_SRC emacs-lisp + ("blog.mlnp.fr" + :components ("blog-main-pages" + "blog-resources" + "blog-fonts")) + ("blog-main-pages" + :base-directory "blog/" + :base-extension "org" + :publishing-directory ,(concat org-publish-location "blog.mlnp.fr/") + :recursive t + :html-head "" + :auto-sitemap t + :sitemap-title "Sitemap for [[http://blog.mlnp.fr][blog.mlnp.fr]]" + :sitemap-sort-files anti-chronologically + :publishing-function org-html-publish-to-html) + ("blog-resources" + :base-directory "resources/" + :base-extension "css\\|js" + :publishing-directory ,(concat org-publish-location "blog.mlnp.fr/resources/") + :publishing-function org-publish-attachment) + ("blog-fonts" + :base-directory "resources/fonts/" + :base-extension "ttf\\|otf" + :publishing-directory ,(concat org-publish-location "blog.mlnp.fr/resources/fonts/") + :publishing-function org-publish-attachment) +#+END_SRC + -* TODO Main publishing logic +* Main publishing logic :main: This is the main publishing logic. Execute the following source block to build the entire website. @@ -238,17 +251,19 @@ to build the entire website. #+NAME: main #+BEGIN_SRC elisp :noweb no-export <> - <> - + <> <> (org-babel-tangle-file "resources/css.org") - (org-publish-remove-all-timestamps) - (org-publish org-publish-components) + + (org-publish org-publish-component) + (format "Successfully built %s!" org-publish-component) #+END_SRC #+RESULTS: main +: Successfully built wiki.mlnp.fr component! + Link to the locally built homepages: -- cgit v1.2.3