summaryrefslogtreecommitdiff
path: root/tools/Makefile
diff options
context:
space:
mode:
authordefanor <defanor@uberspace.net>2023-09-10 17:09:59 +0300
committerdefanor <defanor@uberspace.net>2023-09-10 17:09:59 +0300
commit9b7934e51dbc04e6908f05b223e5b775ae0a2de2 (patch)
tree54ab14a6a8aca7e008469b21c9fe98f0d0d2ae3f /tools/Makefile
parent00445262469de2eac7908dfbd5318b67a4345a6e (diff)
Use make for building
Still generating a dump out of all the files in order to build indexes afterwards, but this change will help to avoid unnecessary modification and reupload of notes that were not modified.
Diffstat (limited to 'tools/Makefile')
-rw-r--r--tools/Makefile43
1 files changed, 43 insertions, 0 deletions
diff --git a/tools/Makefile b/tools/Makefile
new file mode 100644
index 0000000..0ea8525
--- /dev/null
+++ b/tools/Makefile
@@ -0,0 +1,43 @@
+all: $(patsubst src/%,%,$(wildcard src/notes/*.xhtml src/*.xhtml)) \
+ notes/atom.xml
+
+# Index page
+index.xhtml: src/index.xhtml build/notes-by-modification-date.xml
+ xsltproc -o $@ tools/xml-to-html.xsl $<
+
+# Note index page
+notes/index.xhtml: src/notes/index.xhtml build/notes-by-publication-date.xml
+ xsltproc -o $@ tools/xml-to-html.xsl $<
+
+# Notes
+notes/%.xhtml: src/notes/%.xhtml
+ xsltproc -o $@ tools/xml-to-html.xsl $<
+
+# Other static pages
+%.xhtml: src/%.xhtml
+ xsltproc -o $@ tools/xml-to-html.xsl $<
+
+# A single-file dump of all notes
+build/notes-dump.xml: src/notes/*.xhtml
+ (echo '<?xml version="1.0" encoding="UTF-8"?>' && \
+ echo '<notes>' && \
+ find src/notes -name '*.xhtml' | \
+ grep -v index.xhtml | \
+ sed -e "sS^src/\(.*\)S <note src=\"\\1\" />S" && \
+ echo '</notes>') | \
+ xsltproc -o $@ tools/xml-notes-dump.xsl -
+
+# Notes sorted by publication date
+build/notes-by-publication-date.xml: build/notes-dump.xml
+ xsltproc -o $@ tools/xml-notes-sort.xsl build/notes-dump.xml
+
+# Notes sorted by modification date
+build/notes-by-modification-date.xml: build/notes-dump.xml
+ xsltproc -o $@ --stringparam sortBy modified \
+ tools/xml-notes-sort.xsl build/notes-dump.xml
+
+# An Atom feed
+notes/atom.xml: build/notes-by-modification-date.xml
+ xsltproc --param number 10 tools/xml-notes-limit.xsl \
+ build/notes-by-modification-date.xml | \
+ xsltproc -o $@ tools/xml-notes-to-atom.xsl -