commit 153fe47a37ba80692dccdd5907595c3bcf821cd7
parent 7b52cffc9ae5d89c1cbb5874449b8ab61911eb7c
Author: lou woell <lou@repetitions.de>
Date: Mon, 31 Aug 2026 04:00:16 +0200
Add readme
Diffstat:
| A | readme.md | | | 61 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 61 insertions(+), 0 deletions(-)
diff --git a/readme.md b/readme.md
@@ -0,0 +1,61 @@
+This repository contains the full latin text of Spinoza's Ethics as well as
+various translations in a format that makes it easy to programatically process
+them.
+
+The repository also contains the sources to generate
+https://ethica.repetitions.de.
+
+# ethica
+
+The `data` directory contains all data and metadata needed to reconstruct the
+full text of the ethics.
+
+`data/meta.json` contains a json representation of the structure of the ethics.
+Each json object represents one node (axioms, propositions, proofs, etc.). Each
+node has fields:
+
+ - id: unique identifier of the node.
+ - children: array of ids of child-nodes.
+ - ref: array of ids of nodes referenced by this node.
+ - number: Number of node. Only present if the node appears in the text with a
+ number attached (e.g. Axiom 1).
+ - type: Type of the node, according to the latin versin.
+
+Each subdirectory of data contains one version of the text. Each version of the
+text is split into one file per node, named by the id of the node. The files are
+Markdown formatted. Each version also requires a file `types.json` that maps
+each type of node to a name to be used for that type of node in the text
+version.
+
+e.g. `data/de_stern/types.json` looks like this:
+```json
+{
+ "ethica": "Ethik",
+ "pars": "Teil",
+ "definitiones": "Definitionen",
+ "definitio": "Definition",
+ "explicatio": "Erläuterung",
+ "axiomata": "Axiome",
+ "axioma": "Axiom",
+ "propositio": "Lehrsatz",
+ "demonstratio": "Beweis",
+ "corollarium": "Zusatz",
+ "aliter": "Anderer Beweis",
+ "scholium": "Anmerkung",
+ "appendix": "Anhang",
+ "praefatio": "Vorwort",
+ "lemma": "Hilfssatz",
+ "postulatum": "Postulat",
+ "postulata": "Postulate",
+ "affectuum definitiones": "Definitionen der Affekte",
+ "affectuum generalis definitio": "Allgemeine Definition der Affekte",
+ "caput": "§"
+}
+```
+
+# ethica.repetitions.de
+
+Building the page source for `ethica.repetitions.de` requires a common lisp
+implementation as well as a functional quicklisp setup. The code to generate the
+dite is located in the `lisp` directory. The `html` directory contains templates
+used by the lisp programm.