summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Peter <marius.peter@tutanota.com>2022-03-03 21:35:42 +0100
committerMarius Peter <marius.peter@tutanota.com>2022-03-03 21:35:42 +0100
commitd45e77c65c2dfca154814595aad01e1d77aa968d (patch)
tree5eee16d8d86605a835c9eeffd99f1a97ad6af7bf
parent726f791d59517f4238d6f7856d9f98ab1c8bb060 (diff)
Reorganize org-publish-project-alist.
-rw-r--r--publish-mlnp.org201
1 files 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 "<link rel='stylesheet' type='text/css' href='http://wiki.mlnp.fr/resources/mlnp.css'>"
- :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 "<link rel='stylesheet' type='text/css' href='http://blog.mlnp.fr/resources/mlnp.css'>"
- :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.
+ <<mlnp.fr>>
+ <<wiki.mlnp.fr>>
+ <<blog.mlnp.fr>>
("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 "<link rel='stylesheet' type='text/css' href='http://wiki.mlnp.fr/resources/mlnp.css'>"
+ :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 "<link rel='stylesheet' type='text/css' href='http://blog.mlnp.fr/resources/mlnp.css'>"
+ :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-publish-location>>
- <<org-publish-components>>
-
+ <<org-publish-component>>
<<org-publish-project-alist>>
(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:
Copyright 2019--2026 Marius PETER