From bc03b083ef2f5685cb954115bffb289438dad5f3 Mon Sep 17 00:00:00 2001 From: Lucien Cartier-Tilet Date: Fri, 10 Mar 2023 15:25:19 +0100 Subject: [PATCH] [Emacs] Greatly simplify org conlang project It's now a much simpler process to publish since I use Vuepress. --- org/config/emacs.org | 114 +++++++++---------------------------------- 1 file changed, 23 insertions(+), 91 deletions(-) diff --git a/org/config/emacs.org b/org/config/emacs.org index 41e5288..c19de18 100644 --- a/org/config/emacs.org +++ b/org/config/emacs.org @@ -5433,17 +5433,14 @@ Another great features of Org-mode is the Org projects that allow the user to easily publish a bunch of org files to a remote location. Here is the current declaration of my projects, which will be detailed later: #+NAME: org-publish-projects -#+BEGIN_SRC emacs-lisp :noweb yes +#+BEGIN_SRC emacs-lisp :noweb yes :noweb-prefix no <> <> (setq org-publish-project-alist - `( - <> + `(<> <> <> - <> - <> - <> + <> <>)) #+END_SRC @@ -5526,113 +5523,48 @@ by individuals or by groups of individuals, unlike natural languages which evolve and appear naturally from other languages. #+end_info -My conlanging website is made out of three projects. As for the -previous project, let’s declare the common values for these. +My conlanging website is made of only one project, exporting my org +files to GitHub-flavored Markdown. As for the previous project, let’s +declare a common value. #+NAME: org-proj-lang-setup #+BEGIN_SRC emacs-lisp -(defvar phundrak//projects-conlanging-target - "/rsync:Tilo:~/www/phundrak.com/conlang" - "Points to where exported files for langue.phundrak.com should be put.") -(defvar phundrak//projects-conlanging-source - "~/Documents/conlanging/content/" - "Points to where the sources for langue.phundrak.com are.") -(defvar phundrak//projects-conlanging-language - "en" - "Language of langue.phundrak.com.") -(defvar phundrak//projects-conlanging-recursive - t - "Defines whether subdirectories should be parsed for langue.phundrak.com.") +(defvar phundrak--projects-conlanging-common-root + "~/org/conlanging/docs/" + "Points to the common root of my source and target for my +conlang.phundrak.com org project.") #+END_SRC -The first component is the one generating the HTML files from the org files. -#+NAME: org-proj-lang-html +The only component is the one generating the Markdown files from the +org files. +#+NAME: org-proj-lang-md #+BEGIN_SRC emacs-lisp -("conlang-phundrak-com-html" - :base-directory ,phundrak//projects-conlanging-source +("conlang-phundrak-com-md" + :base-directory ,phundrak--projects-conlanging-common-root :base-extension "org" :exclude ,(rx (* print) (or "CONTRIB" "README" - "header" + "site-map" "temp" "private" "svg-ink") (* print)) - :publishing-directory ,phundrak//projects-conlanging-target - :recursive ,phundrak//projects-conlanging-recursive - :language ,phundrak//projects-conlanging-language - :publishing-function org-html-publish-to-html + :publishing-directory ,phundrak--projects-conlanging-common-root + :recursive t + :language "en" + :publishing-function org-gfm-publish-to-gfm :headline-levels 5 - :auto-sitemap t - :auto-preamble t) -#+END_SRC - -We also have the component for the LaTeX and PDF part of the website: -#+NAME: org-proj-lang-pdf -#+BEGIN_SRC emacs-lisp -("conlang-phundrak-com-pdf" - :base-directory ,phundrak//projects-conlanging-source - :base-extension "org" - :exclude ,(rx (* print) - (or "CONTRIB" - "README" - "header" - "temp" - "index" - "sitemap" - "private" - "svg-ink") - (* print)) - :publishing-directory ,phundrak//projects-conlanging-target - :recursive ,phundrak//projects-conlanging-recursive - :language ,phundrak//projects-conlanging-language - :publishing-function org-latex-publish-to-pdf - :headline-levels 5 - :auto-preamble t) -#+END_SRC - -And lastly, we have the component for all the static files needed to run the -website: -#+NAME: org-proj-lang-static -#+BEGIN_SRC emacs-lisp -("conlang-phundrak-com-static" - :base-directory ,phundrak//projects-conlanging-source - :base-extension "png\\|jpg\\|gif\\|webp\\|svg\\|jpeg\\|ttf\\|woff\\|txt\\|epub" - :publishing-directory ,phundrak//projects-conlanging-target - :recursive ,phundrak//projects-conlanging-recursive - :language ,phundrak//projects-conlanging-language - :publishing-function org-publish-attachment) + :auto-sitemap nil + :auto-preamble nil) #+END_SRC The project is then defined like so: #+NAME: org-proj-lang #+BEGIN_SRC emacs-lisp ("conlang-phundrak-com" - :components ("conlang-phundrak-com-org" - "conlang-phundrak-com-static" - "conlang-phundrak-com-pdf")) + :components ("conlang-phundrak-com-md")) #+END_SRC -This project leaves a lot of junk files here and there. This is why I -have this command to remove them easily. -#+begin_src emacs-lisp -(defun phundrak/clean-conlanging-directory () - "Clean my conlanging directory from junk files." - (interactive) - (let ((files (directory-files-recursively phundrak//projects-conlanging-source - (rx (* print) - "." - (or "glo" - "html" - "ist" - "tex" - "pdf"))))) - (mapc (lambda (file) (delete-file file)) - (cl-remove-if (lambda (str) - (string-match-p (regexp-quote "headers.tex") str)) - files)))) -#+end_src - *** Org-ref and Bibtex configuration :PROPERTIES: :CUSTOM_ID: Packages-Configuration-Org-mode-org-ref-1h586cd085j0