summaryrefslogtreecommitdiffstats
path: root/site/posts
diff options
context:
space:
mode:
authorThomas Letan <lthms@soap.coffee>2020-02-23 15:02:58 +0100
committerThomas Letan <lthms@soap.coffee>2020-02-23 15:02:58 +0100
commit404d05208192f83523049dabe03126ad064c3395 (patch)
tree9828cadc8c9a3224d578ea35de63343336e85474 /site/posts
parentFix several typos in the posts index (diff)
Reworking cleopatra presentation
Diffstat (limited to 'site/posts')
-rw-r--r--site/posts/index.org15
-rw-r--r--site/posts/meta/Bootstrap.org344
-rw-r--r--site/posts/meta/Contents.org3
-rw-r--r--site/posts/meta/Contents/Coq.org42
-rw-r--r--site/posts/meta/Contents/Org.org76
-rw-r--r--site/posts/meta/Soupault.org71
-rw-r--r--site/posts/meta/Theme.org242
-rw-r--r--site/posts/meta/index.org37
8 files changed, 7 insertions, 823 deletions
diff --git a/site/posts/index.org b/site/posts/index.org
index f5a037d..1de9cba 100644
--- a/site/posts/index.org
+++ b/site/posts/index.org
@@ -67,16 +67,15 @@ One of my goal with this website is for it to /feel/ simple, but the truth is
under the hood it is generated from a bunch of files using a not-that-simple
process.
-- [[./meta/][A Series on Generating this Static Website]] ::
+- [[/cleopatra/][A Series on Generating this Static Website]] ::
The toolchain behind the generation of this website ---called *~cleopatra~*---
- is a literate programming document which build itself in addition to the HTML
- files composing this corner of the Internet.
-
- 1. [[./meta/Bootstrap.html][Bootstrapping an Extensible Toolchain]]
- 2. [[./meta/Contents.html][Authoring Contents and HTML Generation ~(WIP)~]]
- 3. [[./meta/Soupault.html][Configuring ~soupault~ ~(WIP)~]]
- 4. [[./meta/Theme.html][Theming and Templating ~(WIP)~]]
+ is a literate program which build itself in addition to the HTML files
+ composing this corner of the Internet. This series /is/ *~cleopatra~*.
+ 1. [[/cleopatra/Bootstrap.html][Bootstrapping an Extensible Toolchain]]
+ 2. [[/cleopatra/Contents.html][Authoring Contents and HTML Generation ~(WIP)~]]
+ 3. [[/cleopatra/Soupault.html][Configuring ~soupault~ ~(WIP)~]]
+ 4. [[/cleopatra/Theme.html][Theming and Templating ~(WIP)~]]
- [[./Thanks.html][Thanks!]] ::
If it were not for many awesome FOSS projects, this corner of the Internet
diff --git a/site/posts/meta/Bootstrap.org b/site/posts/meta/Bootstrap.org
deleted file mode 100644
index f80ef96..0000000
--- a/site/posts/meta/Bootstrap.org
+++ /dev/null
@@ -1,344 +0,0 @@
-#+BEGIN_EXPORT html
-<h1>Bootstrapping an Extensible Toolchain</h1>
-#+END_EXPORT
-
-A literate program is a particular type of software program where code is not
-directly written in source files, but rather in text document as code
-snippets. In some sense, literate programming allows for writing in the same
-place both the software program and its technical documentation.
-
-That being said, *~cleopatra~* is a toolchain to build a website before being a
-literate program, and one of its objective is to be /part of this very website
-it is used to generate/. To acheive this, *~cleopatra~* has been written as a
-collection of org files which can be either “tangled” using [[https://orgmode.org/worg/org-contrib/babel/][Babel]] or “exported”
-as a HTML document. Tangling here refers to extracted marked code blocks into
-files.
-
-The page you are currently reading is *~cleopatra~* entry point. Its primilarly
-purpose is to introduce two Makefiles: ~Makefile~ and ~bootstrap.mk~.
-
-#+TOC: headlines 2
-
-* The Root of Generation
-
-~Makefile~ serves two purposes: it initiates a few global variables, and it
-provides a rule to generate ~bootstrap.mk~. At this point, some readers may
-wonder /why/ we need ~Makefile~ in this context, and the motivation behind this
-choice is really reminescent of a boot sequence. The rationale is that we need a
-“starting point” for *~cleopatra~*. The toolchain cannot live solely inside
-org-files, otherwise there would not have any code to execute the first time we
-tried to generate the website. We need an initial Makefile, one that has little
-chance to change, so that we can almost consider it read-only. Contrary to the
-other Makefiles that we will generate, this one will not be deleted by ~make
-clean~.
-
-This is similar to your computer: it requires a firmware to boot, whose purpose
-—in a nutshell— is to find and load an operating system.
-
-Modifying the content of ~Makefile~ in this document /will/ modify
-~Makefile~. This means one can easily put *~cleopatra~* into an inconsistent
-state, which would prevent further generation. This is why the generated
-~Makefile~ should be versioned, so that you can restore it using ~git~ if you
-made a mistake when you modified it.
-
-For readers interested in using *~cleopatra~* for their own websites, this
-documents tries to highlight the potential modifications they would have to
-make.
-
-** Global Constants and Variables
-
-First, ~Makefile~ defines several global “constants” (although as far as I know
-~make~ does not support true constant values, it is expected further generation
-process will not modify them).
-
-In a nutshell,
-
-- ~ROOT~ ::
- Tell Emacs where the root of your website sources is, so that tangled output
- filenames can be given relative to it rather than the org files. So for
- instance, the ~BLOCK_SRC~ headers for ~Makefile~ looks like
-
- #+BEGIN_SRC org
- #+BEGIN_SRC makefile :tangle Makefile :noweb tangle
- #+END_SRC
-
- instead of, /e.g./,
-
- #+BEGIN_SRC org
- #+BEGIN_SRC makefile :tangle ../../../Makefile :noweb tangle
- #+END_SRC
-
-- ~CLEODIR~ ::
- Tell *~cleopatra~* where its sources live. If you place it inside the ~site/~
- directory (as it is intended), and you enable the use of ~org~ files to author
- your contents, then *~cleopatra~* documents will be part of your website. If
- you don’t want that, just move the directory outside the ~site/~ directory,
- and update the ~CLEODIR~ variable accordingly.
-
-For this website, these constants are defined as follows.
-
-#+BEGIN_SRC makefile :tangle Makefile :noweb tangle
-ROOT := $(shell pwd)
-CLEODIR := site/posts/meta
-#+END_SRC
-
-We then introduce a variable that “generation” components will populate with
-their output files (using ~+=~).
-
-- ~GENFILES~ ::
- List *~cleopatra~* Makefiles and scripts tangled throughout the generation
- process (with the notable exception of ~Makefile~ itself).
-- ~GENSASS~ ::
- List auxiliary ~sass~ files which can later be imported by the main ~sass~
- files (see [[./Theme.org][“Theming and Templating”]]).
-- ~CONTENTS~ ::
- List generated files which are part of the target website, and acts as inputs
- for ~soupault~.
-
-#+BEGIN_SRC makefile :tangle Makefile :exports none
-GENFILES :=
-CONTENTS :=
-GENSASS :=
-#+END_SRC
-
-** Easy Tangling of Org Documents
-
-We provide the necessary bits to easily tangle Org documents.
-
-The configuration of Babel is done using an emacs lisp script called
-~tangle-org.el~ whose status is similar to ~Makefile~. It is part of the
-bootstrap process, and therefore lives “outside” of *~cleopatra~* (it is not
-deleted with ~make clean~ for instance). However, it is overwritten. If you try
-to modify it and find that *~cleopatra~* does not work properly, you should
-restore it using ~git~.
-
-#+BEGIN_SRC emacs-lisp :tangle scripts/tangle-org.el
-(require 'org)
-(cd (getenv "ROOT"))
-(setq org-confirm-babel-evaluate nil)
-(setq org-src-preserve-indentation t)
-(org-babel-do-load-languages
- 'org-babel-load-languages
- '((shell . t)))
-(org-babel-tangle)
-#+END_SRC
-
-We define variables that ensure that the ~ROOT~ environment variable is set and
-~tangle-org.el~ is loaded when using Emacs. You can modify ~EMACS~ to use a
-custom Emacs that you build yourself if you so desire.
-
-#+BEGIN_SRC makefile :tangle Makefile :noweb tangle
-EMACSBIN := emacs
-EMACS := ROOT="${ROOT}" ${EMACSBIN}
-TANGLE := --batch --load="${ROOT}/scripts/tangle-org.el" 2>> build.log
-#+END_SRC
-
-** Bootstrapping
-
-The core purpose of ~Makefile~ remains *(1)* to bootstrap the generation process
-by generating and loading ~bootstrap.mk~, and *(2)* to enforce the ~build~ rules
-hopefully defined by the latter is called.
-
-For *(2)*, we introduce a ~default~ rule with ~build~ as a
-dependency.
-
-#+BEGIN_SRC makefile :tangle Makefile :noweb tangle
-default: init-log build
-
-init-log:
- @echo "==============[CLEOPATRA BUILD LOG]==============" \
- > build.log
-
-.PHONY: init-log default build
-#+END_SRC
-
-For *(1)*, we rely on a particular behavior of ~make~ regarding the ~include~
-directive. If an operand of ~include~ does not yet exists, ~make~ will search
-for a rule to generate it.
-
-Basically, we are looking for recipes of the following form:
-
-#+BEGIN_SRC makefile :noweb yes
-<<extends(MK="${MK}", MF="${MF}", IN="${IN}", GF="${GF}", GS="${GS}")>>
-#+END_SRC
-
-where
-
-- ~${IN}~ is the input Org document
-- ~${MK}~ lists the tangled Makefiles (typically one, but it could be more)
-- ~${GF}~ lists the tangled scripts
-- ~${GS}~ lists the tangled SASS scripts
-
-~&:~ is used in place of ~:~ to separate the target from its dependencies in
-this rule to tell to ~make~ that the runned commands will generate all these
-files.
-
-Writing these rules manually —has yours truly had to do in the early days of his
-website— has proven to be error-prone.
-
-One desirable feature for *~cleopatra~* would be to generate them automatically,
-by looking for relevant ~:tangle~ directives inside the input Org document. The
-challenge lies in the “relevant” part: the risk exists that we have false
-posivite. However and as a first steps towards a fully automated solution, we
-can leverage the evaluation features of Babel here.
-
-Here is a bash script which, given the proper variables, would generate the
-expected Makefile rule.
-
-#+NAME: extends
-#+BEGIN_SRC bash :var MK="" :var IN="" :var GF="" :var GS="" :results output
-cat <<EOF
-GENFILES += ${MK} ${GF}
-GENSASS += ${GS}
-
-include ${MK}
-
-${MK} ${GF} ${GS} \\
- &: \${CLEODIR}/${IN}
- @echo " tangle \$<"
- @\${EMACS} $< \${TANGLE}
-EOF
-#+END_SRC
-
-The previous source block is given a name (=extends=), and an explicit lists of
-variables (~IN~, ~MK~, ~GF~, and ~GS~). Thanks to the [[https://orgmode.org/worg/org-tutorials/org-latex-export.html][noweb syntax of Babel]], we
-can insert the result of the evaluation of =extends= inside another source block
-when the latter is tangled.
-
-The twist is, we derive the rule to tangle ~bootstrap.mk~ using
-=extends=. The syntax is the following:
-
-#+BEGIN_SRC verbatim
-<<extends(IN="Bootstrap.org", MK="bootstrap.mk", GF="scripts/update-gitignore.sh")>>
-#+END_SRC
-
-For purpose of illustrations, here is the snippet generated by Babel from the
-previous source block.
-
-#+BEGIN_SRC makefile :tangle Makefile :noweb yes
-<<extends(IN="Bootstrap.org", MK="bootstrap.mk", GF="scripts/update-gitignore.sh")>>
-#+END_SRC
-
-Beware that, as a consequence, modifying code block of =extends= is as
-“dangerous” as modifying ~Makefile~ itself. Keep that in mind if you start
-hacking *~cleopatra~*!
-
-From now on, the bootstrap process is completed: further generation processes
-will fully be defined using literate programming, with no special treatment for
-its output. For instance, you may not want to use ~soupault~? You can! Just
-modify ~bootstrap.mk~ accordingly.
-
-* Generation Processes
-
-Thanks to =extends=, *~cleopatra~* is easily extensible. In this section, we
-enumerate the generation processes that are currently used to generate the
-website you are reading.
-
-** Authoring Contents
-
-The fact that *~cleopatra~* is a literate program which gradually generates
-itself was not intended: it is a consequence of my desire to be able to easily
-use whatever format I so desire for writing my contents, and Org documents in
-particular.
-
-In the present website, contents can be written in the following format:
-
-- HTML Files ::
- This requires no particular set-up, since HTML is the /lingua franca/ of
- ~soupault~.
-- Regular Coq files ::
- Coq is a system which allows to write machine-checked proofs, and it comes
- with a source “prettifier” called ~coqdoc~.
- [[./Contents/Coq.org][Learn more about the generation process for Coq files​]]
-- Org documents ::
- Emacs comes with a powerful editing mode called [[https://orgmode.org/][Org mode]], and Org documents
- are really pleasant to work with.
- [[./Contents/Org.org][Learn more about the generation process for Org documents]]
-
-If you want *~cleopatra~* to support more input formats, you have to
-
-1. Create an Org document which, once tangled, provides a dedicated makefile
-2. Edit this file (~Bootstrap.org~) here, and use =extends= to make sure it
- is actually tangled when necessary
-
-#+BEGIN_SRC makefile :tangle bootstrap.mk :noweb tangle :exports none
-<<extends(MK="coq.mk", IN="Contents/Coq.org", GS="site/style/coq.sass")>>
-<<extends(MK="org.mk", IN="Contents/Org.org", GF="scripts/export-org.el emacs.d", GS="site/style/org.sass")>>
-#+END_SRC
-
-** Postprocessing HTML using ~soupault~
-
-The drawback of using different input formats and generators (~coqdoc~, Org,
-etc.) is the heterogeneity of the outputted HTML. This is why *~cleopatra~*
-started using ~soupault~. You can read more about [[./Soupault.org][how the ~soupault~
-configuration of the present website in the dedicated document]].
-
-#+BEGIN_SRC makefile :tangle bootstrap.mk :noweb tangle :exports none
-<<extends(IN="Soupault.org", GF="soupault.conf")>>
-#+END_SRC
-
-Since ~soupault.conf~ is an input for ~soupault~, we explicitely add it to the
-~CONTENTS~ variables.
-
-#+BEGIN_SRC makefile :tangle bootstrap.mk
-CONTENTS += soupault.conf
-#+END_SRC
-
-** Theming and Templating
-
-The last missing piece is the appearance of the website. By default, ~soupault~
-assumes there exists a template available (~templates/main.html~). You can read
-more about [[./Theme.org][the structure of this template and how its companion CSS file is
-generated in the appropriate document]].
-
-#+BEGIN_SRC makefile :tangle bootstrap.mk :noweb tangle :exports none
-<<extends(MK="theme.mk", IN="Theme.org", GF="templates/main.html", GS="site/style/main.sass")>>
-#+END_SRC
-
-** Wrapping-up
-
-#+BEGIN_SRC makefile :tangle bootstrap.mk
-build : ${CONTENTS}
- @echo " run soupault"
- @soupault
- @echo " update .gitignore"
- @scripts/update-gitignore.sh ${CONTENTS} ${GENFILES} ${GENSASS}
-#+END_SRC
-
-#+BEGIN_SRC bash :tangle scripts/update-gitignore.sh :tangle-mode (identity #o755)
-#!/bin/bash
-
-BEGIN_MARKER="# begin generated files"
-END_MARKER="# begin generated files"
-
-# remove the previous list of generated files to ignore
-sed -i -e "/${BEGIN_MARKER}/,/${END_MARKER}/d" .gitignore
-# remove trailing empty lines
-sed -i -e :a -e '/^\n*$/{$d;N;};/\n$/ba' .gitignore
-
-# output the list of files to ignore
-echo "" >> .gitignore
-echo ${BEGIN_MARKER} >> .gitignore
-for f in $@; do
- echo "${f}" >> .gitignore
-done
-echo ${END_MARKER} >> .gitignore
-#+END_SRC
-
-#+BEGIN_SRC makefile :tangle bootstrap.mk
-serve :
- @echo " start a python server"
- @cd build; python -m http.server 2>/dev/null
-
-clean :
- @echo " remove generated files"
- @rm -rf ${CONTENTS} ${GENFILES} build/
-
-force : clean build
-
-.PHONY : serve clean force build
-#+END_SRC
-
-# Local Variables:
-# org-src-preserve-indentation: t
-# End:
diff --git a/site/posts/meta/Contents.org b/site/posts/meta/Contents.org
deleted file mode 100644
index 0863709..0000000
--- a/site/posts/meta/Contents.org
+++ /dev/null
@@ -1,3 +0,0 @@
-#+BEGIN_EXPORT html
-<h1>Authoring Contents and HTML Generation</h1>
-#+END_EXPORT
diff --git a/site/posts/meta/Contents/Coq.org b/site/posts/meta/Contents/Coq.org
deleted file mode 100644
index 6965927..0000000
--- a/site/posts/meta/Contents/Coq.org
+++ /dev/null
@@ -1,42 +0,0 @@
-* Author Guidelines
-
-* Under the Hood
-
-#+BEGIN_SRC makefile :tangle coq.mk
-COQ_POSTS := $(shell find site/ -name "*.v")
-CONTENTS += $(COQ_POSTS:.v=.html)
-GENSASS += site/style/coq.sass
-
-COQLIB := "https://coq.inria.fr/distrib/current/stdlib/"
-COQCARG := -async-proofs-cache force \
- -w -custom-entry-overriden
-COQDOCARG := --no-index --charset utf8 --short \
- --body-only --coqlib "${COQLIB}"
-
-%.html : %.v coq.mk
- @echo " export $*.v"
- @coqc ${COQCARG} $<
- @coqdoc ${COQDOCARG} -d $(shell dirname $<) $<
- @sed -i -e 's/href="$(shell basename $@)\#/href="\#/g' $@
- @rm -f $(shell dirname $<)/coqdoc.css
-#+END_SRC
-
-#+BEGIN_SRC sass :tangle site/style/coq.sass
-div.code
- white-space: nowrap
- overflow-x: visible
-
-.code a[href]
- text-decoration: none
-
- .fa-external-link
- display: none
-
-.paragraph
- margin-top: 1em
- margin-bottom: 1em
-#+END_SRC
-
-# Local Variables:
-# org-src-preserve-indentation: t
-# End:
diff --git a/site/posts/meta/Contents/Org.org b/site/posts/meta/Contents/Org.org
deleted file mode 100644
index f28d1cc..0000000
--- a/site/posts/meta/Contents/Org.org
+++ /dev/null
@@ -1,76 +0,0 @@
-* Author Guidelines
-
-* Under the Hood
-
-#+BEGIN_SRC emacs-lisp :tangle scripts/export-org.el
-(require 'package)
-
-(setq user-emacs-directory (concat (getenv "ROOT") "/emacs.d"))
-(setq package-user-dir (concat (getenv "ROOT") "/emacs.d"))
-(setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
- ("melpa" . "https://melpa.org/packages/")))
-
-(package-initialize)
-
-(or (file-exists-p package-user-dir)
- (package-refresh-contents))
-
-(defun ensure-package-installed (&rest packages)
- "Ensure every PACKAGES is installed.
-
-Ask for installation if it’s
-not. Return a list of installed packages or nil for every skipped
-package."
- (mapcar
- (lambda (package)
- (if (package-installed-p package)
- nil
- (package-install package))
- package)
- packages))
-
-(ensure-package-installed 'use-package)
-(eval-when-compile (require 'use-package))
-
-(use-package org :ensure t)
-(use-package htmlize :ensure t)
-(use-package sass-mode :ensure t :defer t)
-(use-package haskell-mode :ensure t :defer t)
-(use-package github-modern-theme :ensure t :defer t
- :init
- (load-theme 'github-modern t))
-#+END_SRC
-
-#+BEGIN_SRC emacs-lisp :tangle scripts/export-org.el
-(org-babel-do-load-languages 'org-babel-load-languages'((shell . t)))
-(setq org-src-preserve-indentation t)
-(setq org-confirm-babel-evaluate nil)
-(setq org-export-with-toc nil)
-(org-html-export-to-html nil nil nil t)
-#+END_SRC
-
-#+BEGIN_SRC makefile :tangle org.mk
-ORG_POSTS := $(shell find site/ -name "*.org")
-
-CONTENTS += $(ORG_POSTS:.org=.html)
-
-EXPORT := --batch --load="${ROOT}/scripts/export-org.el" 2>> build.log
-
-%.html : %.org scripts/export-org.el
- @echo " export $*.org"
- @${EMACS} $< ${EXPORT}
-#+END_SRC
-
-#+BEGIN_SRC sass :tangle site/style/org.sass
-.footpara
- display: inline
- margin-left: .2em
-
-.section-number-2:after, .section-number-3:after, .section-number-4:after
- content: ". "
-
-dl dt
- font-weight: bold
-dl dd p
- margin-top: 0
-#+END_SRC
diff --git a/site/posts/meta/Soupault.org b/site/posts/meta/Soupault.org
deleted file mode 100644
index aab5476..0000000
--- a/site/posts/meta/Soupault.org
+++ /dev/null
@@ -1,71 +0,0 @@
-#+BEGIN_EXPORT html
-<h1><code>soupault</code> Configuration</h1>
-
-<div id="history">site/posts/meta/Soupault.org</div>
-#+END_EXPORT
-
-#+BEGIN_SRC toml :tangle (concat (getenv "ROOT") "/soupault.conf")
-[settings]
- strict = true
- verbose = false
- debug = false
- site_dir = "site"
- build_dir = "build"
-
- page_file_extensions = ["html"]
- ignore_extensions = [
- "draft", "vo", "vok", "vos", "glob",
- "html~", "org", "aux", "sass",
- ]
-
- generator_mode = true
- complete_page_selector = "html"
- default_template = "templates/main.html"
- content_selector = "main"
- doctype = "<!DOCTYPE html>"
- clean_urls = false
-
-[widgets.page-title]
- widget = "title"
- selector = "h1"
- default = "~lthms"
- prepend = "~lthms: "
-
-[widgets.generator-meta]
- widget = "insert_html"
- html = '<meta name="generator" content="soupault 1.5">'
- selector = "head"
-
-[widgets.table-of-contents]
- widget = "toc"
- selector = "div#generate-toc"
- action = "replace_element"
- min_level = 2
- numbered_list = true
-
-[plugins.fix_urls]
- file = "plugins/fix_urls.lua"
-
-[plugins.external_links]
- file = "plugins/external_links.lua"
-
-[widgets.fix-urls]
- widget = "fix_urls"
- prefix_url = "/~lthms"
-
-[widgets.mark-external-urls]
- after = "generate-history"
- widget = "external_links"
-
-[widgets.generate-history]
- widget = "preprocess_element"
- selector = "#history"
- command = "./scripts/generate_history.sh \"templates/history.html\""
- action = "replace_content"
-
-[widgets.math]
- widget = "preprocess_element"
- selector = ".imath"
- command = "node scripts/katex.js"
- action = "replace_content"
-#+END_SRC
diff --git a/site/posts/meta/Theme.org b/site/posts/meta/Theme.org
deleted file mode 100644
index 5029380..0000000
--- a/site/posts/meta/Theme.org
+++ /dev/null
@@ -1,242 +0,0 @@
-#+BEGIN_EXPORT html
-<h1>Theming and Templating</h1>
-#+END_EXPORT
-
-* Main HTML Template
-
-#+NAME: js_lazyloading
-#+BEGIN_SRC js
-let noscript = document.getElementById('lazyloading');
-let resources = noscript.innerText.split('\n');
-
-for (var ix in resources) {
- noscript.insertAdjacentHTML('beforebegin', resources[ix]);
-}
-#+END_SRC
-
-#+NAME: html_lazyloading
-#+BEGIN_SRC html
-<noscript id="lazyloading">
- <link rel="stylesheet" href="/vendors/katex.0.11.1/katex.css">
- <link rel="stylesheet"
- href="/vendors/fork-awesome.1.1.7/css/fork-awesome.min.css">
- <link rel="stylesheet" href="/vendors/fira-code.2/font.css">
- <link rel="stylesheet" href="/vendors/et-book/font.css">
-</nolink>
-#+END_SRC
-
-#+BEGIN_SRC html :tangle templates/main.html :noweb tangle
-<html lang="en">
- <head>
- <meta charset="utf-8">
- <title> <!-- set automatically, see soupault.conf --> </title>
- <meta name="viewport"
- content="width=device-width, initial-scale=1.0">
- <link rel="stylesheet" href="/style/main.css">
- <link rel="icon" type="image/ico" href="/img/merida.webp">
- <<html_lazyloading>>
- </head>
- <body id="default">
- <nav>
- <ul>
- <li> <a href="/news">News</a></li>
- <li> <a href="/posts">Write-ups</a></li>
- <li> <a href="/">About</a></li>
- </ul>
- </nav>
- <header>
- <img src="/img/merida.webp"
- alt="This picture is Merida in Ralph 2.0, and is my main avatar" />
- </header>
- <main>
- <!-- your page content will be inserted here,
- see the content_selector option in soupault.conf -->
- </main>
- <script>
- <<js_lazyloading>>
- </script>
- </body>
-</html>
-#+END_SRC
-
-* Main SASS File
-
-#+BEGIN_SRC sass :tangle site/style/main.sass
-$bg-color: #fcfcfc
-$fg-color: #333
-$primary-color: black
-
-*
- box-sizing: border-box
-
-body, html
- width: 100%
- height: 100%
- padding: 0
- margin: 0
- font-size: 100%
- background: $bg-color
- color: $fg-color
- font-family: 'et-book', serif
-
-h1, h2, h3, h4, h5, a[href]
- color: $primary-color
-
-h1, h2, h3, h4, h5
- font-family: sans-serif
-
-h1
- text-align: center
-
-a[href] .url-mark
- font-size: smaller;
- padding-left: 0.2em
-
-/* default */
-
-body#default
- overflow-x: hidden
-
- nav
- padding-top: 1em
- padding-bottom: 1em
- width: 100%
-
- ul
- padding: 0
- margin: 0
- width: 100%
- display: flex
- flex-direction: row
- justify-content: center
- list-style-type: none
-
- li
- padding-left: .5em
- padding-right: .5em
- text-transform: uppercase
- font-family: sans-serif
- font-size: 130%
- font-weight: bold
-
- a
- text-decoration: none
-
- header
- text-align: center
-
- img
- text-align: center
- border-radius: 50%
- width: 125px
-
- main
- max-width: 550px
- margin: auto
- padding: 0em 1em 1em 1em
- font-size: 130%
-
-body#default main .code, code, pre, .inlinecode, tt
- font-family: 'Fira Code', monospace
- font-size: 75%
-
-
-body#default
- main
- @import coq, org
-
- .TODO
- background: #fae7c5
- .REMARK
- background: #d4f2fc
-
- .TODO, .REMARK
- padding: 1em 1em 1em 1em
-
- p
- margin: 0
- p:not(:list-child)
- margin-bottom: 1em
-
-/* VCARD (index.html) */
-body#vcard
- display: flex
- align-items: center
- flex-direction: column
- font-size: 125%
-
- article
- max-width: 400px
- width: 80%
- margin: auto
-
- img
- display: block
- border-radius: 50%
- width: 175px
- margin: auto
- margin-bottom: 3em
-
- h1
- color: $primary-color
- font-size: 300%
- text-align: center
-
- nav dt
- font-weight: bold
-
- a
- color: $primary-color
-
-/* indexes */
-
-.index
- dt
- font-weight: bold
- color: $primary-color
-
- dd
- margin-left: 0
- margin-bottom: 1em
-
- ol
- margin-top: 0.3em
-
-#history
- summary
- color: $primary-color
- font-weight: bold
-
- table
- border-top: 2px solid $primary-color
- border-bottom: 2px solid $primary-color
- border-collapse: collapse;
-
- td
- border-bottom: 1px solid $primary-color
- padding: .5em
- vertical-align: top
-
- td.commit
- font-size: smaller
-
- td.commit
- font-family: 'Fira Code', monospace
- font-size: 80%
- white-space: nowrap;
-
-.imath
- font-size: smaller
-#+END_SRC
-
-#+BEGIN_SRC makefile :tangle theme.mk
-SASS := site/style/main.sass
-CSS := $(SASS:.sass=.css)
-
-GENFILES += ${CLEO_THEME_TANGLE} ${SASS}
-CONTENTS += ${CSS} templates/main.html
-
-${CSS} : ${SASS} ${GENSASS}
- @echo " compile $<"
- @sassc --style=compressed --sass $< $@
-#+END_SRC
diff --git a/site/posts/meta/index.org b/site/posts/meta/index.org
deleted file mode 100644
index a0df3a9..0000000
--- a/site/posts/meta/index.org
+++ /dev/null
@@ -1,37 +0,0 @@
-#+BEGIN_EXPORT html
-<h1>A Series on Generating this Static Website</h1>
-#+END_EXPORT
-
-The generation of this humble static website is far from being trivial, and
-require a combination of —too— many tools. It turned out that some choices I
-have made early on gave to the build toolchain I ended up writing a pretty nice
-property: I could easily integrate its code to the very website it was conceived
-to build, by means of [[http://www.literateprogramming.com/][literate programming]]!
-
-This series is just that: the literate programming document of my home-grown
-build toolchain, called *~cleopatra~*. The motivations behind this name are
-twofold. First, I wanted to follow the example of [[https://soupault.neocities.org/][~soupault~]], named after [[https://fr.wikipedia.org/wiki/Philippe_Soupault][a
-famous personality]]. Secondly, one of my main objective when I started working on
-this “project” was to be able to easily use whatever format I wanted to author
-my contents. Did you know that Cleopatra was a reputed polyglot (at least
-according to [[https://fr.wikipedia.org/wiki/Polyglotte][Wikipedia France]])?
-
-#+BEGIN_EXPORT html
-<article class="index">
-#+END_EXPORT
-
-#+BEGIN_TODO
-This series is work in progress.
-#+END_TODO
-
-- [[./Bootstrap.org][Bootstrapping an Extensible Toolchain]] ::
-
-- [[./Contents.org][Authoring Content and HTML Generation ~(WIP)~]] ::
-
-- [[./Soupault.org][Soupault Configuration ~(WIP)~]] ::
-
-- [[./Theme.org][Theming and Templating ~(WIP)~]] ::
-
-#+BEGIN_EXPORT html
-</article>
-#+END_EXPORT