# increase every time the generated Markdown is modified.
VERSION=20170609-2
-TITLE="Hecho con Creative Commons"
-TEXLANG=spanish
-TEXLANGCODE=es
+# pandoc version 1.17.2~dfsg-3 do not understand
+# --top-level-diversion, while version 1.19.2.4~dfsg-1+b3 do.
+PANDOC_OPTS = \
+ --standalone \
+ --top-level-division=part \
+ -t docbook \
+ -f markdown+inline_notes+ascii_identifiers
-#TITLE="Laget med Creative Commons"
-#TEXLANG=norsk
-#TEXLANGCODE=nb
-
-PANDOC_OPTS = --top-level-division=part -t docbook -f markdown+inline_notes+ascii_identifiers \
- --variable 'author:Paul Stacey' --variable 'author:Sarah Hinchliff Pearson' \
- --variable 'title:$(TITLE)'
-# --top-level-diversion is not available in pandoc in Jessie
-# PANDOC_OPTS = -t docbook -f markdown+inline_notes
-
-LANGS = de es nb nl pl
+LANGS := $(shell ls po/*/mwcc.po|cut -d/ -f2)
all: pdf epub
distclean: clean
rm -f $(SOURCE).md
+clean:
for LANG in $(LANGS); do \
rm -f $(SOURCE).$$LANG.md ;\
done
-clean:
- for EXT in aux cb cb2 glo idx lof log tex toc xml pdf; do \
+ for EXT in aux cb cb2 glo idx lof log tex toc xml pdf epub; do \
rm -f $(SOURCE).$$EXT ;\
for LANG in $(LANGS); do \
rm -f $(SOURCE).$$LANG.$$EXT ;\
done; \
done
+ $(RM) *~
$(SOURCE).md: $(SOURCE).odt fixup.rb
TEMP=`tempfile -p mwcc` && \
rm $$TEMP
pot: po/mwcc.pot po/*/mwcc.po
-po/mwcc.pot: $(SOURCE).md
+po/mwcc.pot: $(SOURCE).xml
TEMP=`tempfile -p mwcc` && \
- po4a-gettextize -f text -m $(SOURCE).md -p $$TEMP -M utf-8 --package-name 'Made with Creative Commons' --package-version $(VERSION) && \
+ po4a-gettextize -f docbook -m $(SOURCE).xml -p $$TEMP -M utf-8 --package-name 'Made with Creative Commons' --package-version $(VERSION) && \
echo '# MADE WITH CREATIVE COMMONS' > $@ && \
echo '# Copyright (C) 2017 by Creative Commons.' >> $@ && \
echo '# This file is published under a Creative Commons Attribution-ShareAlike license (CC BY-SA), version 4.0' >> $@ && \
echo '# Authors: Paul Stacey and Sarah Hinchliff Pearson' >> $@ && \
tail --lines=+5 $$TEMP >> $@ && \
rm $$TEMP
- set -e; for LANG in po/*/mwcc.po; do \
- echo -n $$LANG\ ; \
- msgmerge $$LANG po/mwcc.pot -U ; \
- done
-$(SOURCE).es.md: $(SOURCE).md po/es/mwcc.po
- po4a-translate -f text -m $(SOURCE).md -p po/es/mwcc.po -l $@ -l $@ -L utf8 -M utf8 -k 0
+po/*/mwcc.po: po/mwcc.pot
+ msgmerge --previous $@ po/mwcc.pot -U
+ touch $@
+
+$(SOURCE).de.xml: $(SOURCE).xml po/de/mwcc.po
+ po4a-translate -f docbook -m $(SOURCE).xml -p po/de/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 -k 0
+
+$(SOURCE).es.xml: $(SOURCE).xml po/es/mwcc.po
+ po4a-translate -f docbook -m $(SOURCE).xml -p po/es/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 -k 0
+
+$(SOURCE).nb.xml: $(SOURCE).xml po/nb/mwcc.po
+ po4a-translate -f docbook -m $(SOURCE).xml -p po/nb/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 -k 0
+
+$(SOURCE).nl.xml: $(SOURCE).xml po/nl/mwcc.po
+ po4a-translate -f docbook -m $(SOURCE).xml -p po/nl/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 -k 0
-$(SOURCE).nb.md: $(SOURCE).md po/nb/mwcc.po
- po4a-translate -f text -m $(SOURCE).md -p po/nb/mwcc.po -l $@ -l $@ -L utf8 -M utf8 -k 0
+$(SOURCE).pl.xml: $(SOURCE).xml po/pl/mwcc.po
+ po4a-translate -f docbook -m $(SOURCE).xml -p po/pl/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 -k 0
-%.xml: %.md
- pandoc -s -o $@ $(PANDOC_OPTS) $^
- perl -p -i -e 's/!DOCTYPE article/!DOCTYPE book/ ; \
- s!<(/?)article(info|)?>!<$$1book$$2>!' $@
+$(SOURCE).uk.xml: $(SOURCE).xml po/uk/mwcc.po
+ po4a-translate -f docbook -m $(SOURCE).xml -p po/uk/mwcc.po -l $@ -l $@ -L utf-8 -M utf-8 -k 0
+
+$(SOURCE).xml: $(SOURCE).md fixup-docbook.rb
+ TEMP=`tempfile -p mwcc` && \
+ pandoc -s -o $$TEMP $(PANDOC_OPTS) $(SOURCE).md && \
+ ruby fixup-docbook.rb $$TEMP $@ && \
+ rm $$TEMP
+ xmllint --format $@ > $@.new && mv $@.new $@
pdf: $(SOURCE).pdf
+ for LANG in $(LANGS); do \
+ $(MAKE) $(SOURCE).$$LANG.pdf ; \
+ done
%.pdf: %.tex
pdflatex $^
pdflatex $^
epub: $(SOURCE).epub
+ for LANG in $(LANGS); do \
+ $(MAKE) $(SOURCE).$$LANG.epub ; \
+ done
%.epub: %.xml
dbtoepub $^
+DBLATEX_OPTS = -T simple -t tex -b xetex -p extra/pdf.xsl
+# Replace Unicode Hair Space (U+200A) with space, as   is not
+# handled by LaTeX/dblatex, see <URL: https://bugs.debian.org/889603 >.
%.tex: %.xml
- dblatex -t tex -b xetex $^
- perl -p -i -e 's/\[latin1\]\{inputenc\}/[utf8]{inputenc}\n\\usepackage[$(TEXLANG)]{babel}/; \
- s/\\setcounter\{tocdepth\}.*/\\setcounter{tocdepth}{1}/; \
- s/\\setcounter\{secnumdepth\}.*/\\setcounter{secnumdepth}{-1}/; \
- s/\\caption\\end/\\caption{} \\end/; \
- s!\\maketitle!\\input{extra/$(TEXLANGCODE)/cover.tex}!; \
- s/\\author\{and\}/\\author{Paul Stacey \\and Sarah Hinchliff Pearson}/; \
- s/\\DBKinditem\{\\writtenby\}\{and\}/\\DBKinditem{\writtenby}{Paul Stacey and Sarah Hinchliff Pearson}/; \
- s/\\listoffigures//; \
- s/\\part\{(Foreword|Prefacio|Introduction|Introducción)\}/\\chapter*{$$1} \\addcontentsline{toc}{chapter}{$$1}/; \
- s/\\section\{(Notes|Notas)\}/\\section*{$$1}/; \
- s/(Web links?|Vínculos Web)/\\section*{$$1}/; \
- s/^\s*(Revenue model|Interview date|Interviewees?|(Modelo de ingresos|Fecha de la entrevista|Entrevistad(?:o|a|os|as)))/\\textbf{$$1}/;' $@
- perl -p -i -e '$$work=1 if /chapter.Arduino/; $$work=0 if /chapter.(Bibliography|Bibliografía)/; \
- next unless $$work; \
- s/(\\label\{[-\.\wáéíóúñ]+\}\\hyperlabel\{[-\.\wáéíóúñ]+\}%)/$$1\n\\begin{quote}/i; \
- s/(Profile written by.+|Perfil escrito por.+|Profilen skrevet av.+)/$$1\n\\end{quote}/' $@
+ dblatex $(DBLATEX_OPTS) $^
+ perl -p -i -e 's/ / /g' $@
XMLLINTOPTS = --nonet --noout --xinclude --postvalid
lint: $(SOURCE).xml
lint-nb: $(SOURCE).nb.xml
xmllint $(XMLLINTOPTS) $^
+check-urls:
+ retval=0; for u in $$(perl -n -e'/<ulink url="(.+)"\/>/ && print "$$1\n"' MadewithCreativeCommonsmostup-to-dateversion.xml | sort -u); do \
+ HEAD -H "User-Agent: Docbook XML URL checker" "$$u" > /dev/null || echo "error fetching $$u"; retval=1; \
+ done; exit $$retval
+
+# Experimental build rule to test Docbook XSL + FOP processor
+xsl-fo-%.pdf: %.xml
+ xsltproc --output $(subst .pdf,.fo,$@) \
+ extra/stylesheet-fo.xsl $^; \
+ fop -fo $(subst .pdf,.fo,$@) -pdf $@
+
status:
for LANG in $(LANGS); do \
printf "$$LANG "; msgfmt -o /dev/null --statistics po/$$LANG/mwcc.po; \