X-Git-Url: https://pere.pagekite.me/gitweb/text-madewithcc.git/blobdiff_plain/7aca5d66dd2a901b87193269e355fe84ec8a1c0a..2ee54a4f11de56981ff44a6268c5ad156862d2e0:/Makefile diff --git a/Makefile b/Makefile index d0aef0b..286d934 100644 --- a/Makefile +++ b/Makefile @@ -10,36 +10,31 @@ SOURCE=MadewithCreativeCommonsmostup-to-dateversion # 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` && \ @@ -48,58 +43,66 @@ $(SOURCE).md: $(SOURCE).odt fixup.rb 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).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 -$(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).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 -%.xml: %.md - pandoc -s -o $@ $(PANDOC_OPTS) $^ - perl -p -i -e 's/!DOCTYPE article/!DOCTYPE book/ ; \ - s!<(/?)article(info|)?>!<$$1book$$2>!' $@ +$(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 . %.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.+)/$$1\n\\end{quote}/' $@ + dblatex $(DBLATEX_OPTS) $^ + perl -p -i -e 's/ / /g' $@ XMLLINTOPTS = --nonet --noout --xinclude --postvalid lint: $(SOURCE).xml @@ -109,4 +112,20 @@ lint-es: $(SOURCE).nb.xml lint-nb: $(SOURCE).nb.xml xmllint $(XMLLINTOPTS) $^ +check-urls: + retval=0; for u in $$(perl -n -e'// && 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; \ + done + .SUFFIXES: .xml .md