readme.md (2579B)
1 This repository contains the full latin text of Spinoza's Ethics as well as 2 various translations in a format that makes it easy to programatically process 3 them. 4 5 The repository also contains the sources to generate 6 https://ethica.repetitions.de. 7 8 # ethica 9 10 The `data` directory contains all data and metadata needed to reconstruct the 11 full text of the ethics. 12 13 `data/meta.json` contains a json representation of the structure of the ethics. 14 Each json object represents one node (axioms, propositions, proofs, etc.). Each 15 node has fields: 16 17 - id: unique identifier of the node. 18 - children: array of ids of child-nodes. 19 - ref: array of ids of nodes referenced by this node. 20 - number: Number of node. Only present if the node appears in the text with a 21 number attached (e.g. Axiom 1). 22 - type: Type of the node, according to the latin versin. 23 24 Each subdirectory of data contains one version of the text. Each version of the 25 text is split into one file per node, named by the id of the node. The files are 26 Markdown formatted. Each version directory also must contain exactly one json 27 file containing meta data specific to that text version. The json object in that 28 file must at least contain the 29 30 - `types` field maping each type of node to a name to be used for that type of 31 node in the text version and the 32 - `name` field, specifying the name of the text version presentde to the user. 33 34 e.g. `data/de_stern/types.json` looks like this: 35 ```json 36 { 37 "name": "German (Stern)", 38 "language": "de", 39 "translator": "Jakob Stern", 40 "types": { 41 "ethica": "Ethik", 42 "pars": "Teil", 43 "definitiones": "Definitionen", 44 "definitio": "Definition", 45 "explicatio": "Erläuterung", 46 "axiomata": "Axiome", 47 "axioma": "Axiom", 48 "propositio": "Lehrsatz", 49 "demonstratio": "Beweis", 50 "corollarium": "Zusatz", 51 "aliter": "Anderer Beweis", 52 "scholium": "Anmerkung", 53 "appendix": "Anhang", 54 "praefatio": "Vorwort", 55 "lemma": "Hilfssatz", 56 "postulatum": "Postulat", 57 "postulata": "Postulate", 58 "affectuum definitiones": "Definitionen der Affekte", 59 "affectuum generalis definitio": "Allgemeine Definition der Affekte", 60 "caput": "§" 61 } 62 } 63 ``` 64 65 # ethica.repetitions.de 66 67 Building the page source for `ethica.repetitions.de` requires a common lisp 68 implementation as well as a functional quicklisp setup. The code to generate the 69 site is located in the `lisp` directory. The `html` directory contains templates 70 used by the lisp program. 71