From 9b7934e51dbc04e6908f05b223e5b775ae0a2de2 Mon Sep 17 00:00:00 2001 From: defanor Date: Sun, 10 Sep 2023 17:09:59 +0300 Subject: 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. --- tools/Makefile | 43 +++++++++++++++++++++++++++++++++++++++++++ tools/publish.sh | 35 +---------------------------------- 2 files changed, 44 insertions(+), 34 deletions(-) create mode 100644 tools/Makefile 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 '' && \ + echo '' && \ + find src/notes -name '*.xhtml' | \ + grep -v index.xhtml | \ + sed -e "sS^src/\(.*\)S S" && \ + echo '') | \ + 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 - diff --git a/tools/publish.sh b/tools/publish.sh index 90ed8e2..987cf00 100755 --- a/tools/publish.sh +++ b/tools/publish.sh @@ -1,39 +1,6 @@ #!/bin/sh -BASEDIR=~/homepage -TOOLS="${BASEDIR}/tools" -BUILD="${BASEDIR}/build" -ATOM="${BASEDIR}/notes/atom.xml" -SOURCES="${BASEDIR}/src" -NOTES="${SOURCES}/notes" - - -# dump all the notes into a single file -(echo '' && - echo '' && - find "${NOTES}" -name '*.xhtml' | - grep -v index.xhtml | - sed -e "sS^${SOURCES}/\(.*\)S S" && - echo '') | - xsltproc -o "${BUILD}/notes-dump.xml" "${TOOLS}/xml-notes-dump.xsl" - - -# sort by publication and modification dates -xsltproc -o "${BUILD}/notes-by-publication-date.xml" \ - "${TOOLS}/xml-notes-sort.xsl" "${BUILD}/notes-dump.xml" -xsltproc -o "${BUILD}/notes-by-modification-date.xml" \ - --stringparam sortBy modified \ - "${TOOLS}/xml-notes-sort.xsl" "${BUILD}/notes-dump.xml" - -# create an atom feed with the most recently modified 10 entries -xsltproc --param number 10 "${TOOLS}/xml-notes-limit.xsl" \ - "${BUILD}/notes-by-modification-date.xml" | - xsltproc -o "${ATOM}" "${TOOLS}/xml-notes-to-atom.xsl" - - -# convert sources into XHTML -find "${SOURCES}" -name '*.xhtml' | - sed -e "sS^${SOURCES}SS" | - xargs -Ifile xsltproc -o "${BASEDIR}/file" \ - "${TOOLS}/xml-to-html.xsl" "${SOURCES}file" +make -f tools/Makefile # upload rsync --exclude '.*' --exclude '*.org' --exclude 'src/' \ -- cgit v1.2.3