summaryrefslogtreecommitdiff
path: root/doc/euandre.org.en.7recipes.adoc
blob: aa26a89ae1f4a04fb0431fac1209bfda803a981f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
= euandre.org(7recipes)



== NAME

euandre.org - a personal website in six languages, built from asciidoc



== DESCRIPTION

Tasks that come up once the shape is familiar.  For the first page
written start to finish, see *euandre.org*(7tutorial).



== Build only what changed

`make` is incremental and every artifact is its own target, so this is
the default rather than a trick.  After adding or removing a file,
regenerate the rules first --- they are a build product too:

....
$ sh mkdeps.sh > deps.mk
$ make
....



== Check the site over

....
$ make check
....

Seventeen consistency checks: links that go nowhere, pages missing
from an index, a feed entry without its page, and so on.  They read
the built tree, so build first.



== Regenerate the translations

....
$ make i18n
....

po4a writes the translated masters from `po/`.  The catalogues are the
source; the translated `.adoc` files under `src/content/<lang>/` are
not kept in the repository, which is why the build makes them.



== Add a slide deck

A deck is an `.eslaides` file under `src/content/`; *eslaides*(1)
renders it to PostScript and ghostscript to PDF.  Both land beside the
source, and `sh mkdeps.sh > deps.mk` is what notices the new file.



== Serve the built site

....
$ make install
$ make run
....

`install` unpacks what `all` already packed, so what is served next
door and what would be deployed across a network are the same bytes.



== Deploy

....
$ make upload
....

It asks the server what it has, subtracts what `all` wrote, and
removes the difference before extracting the new tree --- so a page
that stays is never taken from under a reader, and there is no moment
when the site is missing.  Every step lands in a file naming what it
holds, so what is about to be removed can be read before it is.



== SEE ALSO

*euandre.org*(7tutorial), *euandre.org*(0), *mkwb*(1), *eslaides*(1), *po4a*(1)



== AUTHORS

mailto:eu@euandre.org[EuAndreh] and contributors.



== BUGS

* Report bugs to the mailto:~euandreh/public-inbox@lists.sr.ht[mailing list].
  Use the subject "[euandre.org] BUG or TASK: <description>".
* Browse bugs https://euandre.org/git/euandre.org/TODOs.html[online].
* https://euandre.org/git/euandre.org/[Homepage].
* https://lists.sr.ht/~euandreh/public-inbox?search=%5Beuandre%2Eorg%5D[Comments and discussions].