diff --git a/.gitignore b/.gitignore index 8ed9a9b69..849b4ff89 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,6 @@ doc/manual/*/*.pdf doc/manual/*/*.html doc/manual/*/*.xml -!doc/manual/*/*.raw.xml doc/plinth.1 doc/dev/_build \#* diff --git a/doc/Makefile b/doc/Makefile index 710f24d21..f01f410ae 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -7,7 +7,7 @@ MANUAL_LANGUAGES=en es MANUAL_URL="https://wiki.debian.org/{lang-fragment}FreedomBox/Manual?action=show&mimetype=text%2Fdocbook" MANUAL_URL_RAW="https://wiki.debian.org/{lang-fragment}FreedomBox/Manual?action=raw" -MANUAL_PAGE_URL="https://wiki.debian.org/{lang-fragment}FreedomBox/Manual/{page}?action=show&mimetype=text%2Fdocbook" +MANUAL_PAGE_URL_RAW="https://wiki.debian.org/{page}?action=raw" DESTDIR= INSTALL_DIR=$(DESTDIR)/usr/share/freedombox @@ -15,6 +15,7 @@ SCRIPTS_DIR=scripts manual-pdfs=$(foreach lang,$(MANUAL_LANGUAGES),manual/$(lang)/freedombox-manual.pdf) manual-xmls=$(patsubst %.pdf,%.xml,$(manual-pdfs)) +manual-raw-xmls=$(patsubst %.pdf,%.raw.xml,$(manual-pdfs)) OUTPUTS=$(manual-pdfs) plinth.1 manual-pages INSTALL_OPTS=-D --mode=644 @@ -67,34 +68,38 @@ fetch: $(fetch-main-list) $(fetch-pages-list) fetch-main-%: lang = $* fetch-main-%: lang-fragment = $(subst en/,,$*/) $(fetch-main-list): fetch-main-%: + MANUAL_URL_RAW_LANG=$(subst {lang-fragment},$(lang-fragment),$(MANUAL_URL_RAW)) ; \ + wget --quiet --user-agent=Firefox \ + -O manual/$(lang)/freedombox-manual.raw.wiki $${MANUAL_URL_RAW_LANG} MANUAL_URL_LANG=$(subst {lang-fragment},$(lang-fragment),$(MANUAL_URL)) ; \ - wget --quiet -O - $${MANUAL_URL_LANG} | \ + wget --quiet --user-agent=Firefox -O - $${MANUAL_URL_LANG} | \ xmllint --format --output manual/$(lang)/freedombox-manual.raw.xml - mkdir -p manual/$(lang)/images/ xsltproc $(SCRIPTS_DIR)/fetch-images.xslt manual/$(lang)/freedombox-manual.raw.xml | \ sort -u | \ awk 'NF {print "wget --quiet -O manual/$(lang)/images/" $$1 " " $$2}' | \ sh + rm manual/$(lang)/freedombox-manual.raw.xml fetch-pages-%: lang = $* fetch-pages-%: lang-fragment = $(subst en/,,$*/) $(fetch-pages-list): fetch-pages-%: MANUAL_URL_LANG=$(subst {lang-fragment},$(lang-fragment),$(MANUAL_URL_RAW)) ; \ - MANUAL_PAGE_URL_LANG=$(subst {lang-fragment},$(lang-fragment),$(MANUAL_PAGE_URL)) ; \ - PAGES=$$(wget --quiet -U Firefox -O - $${MANUAL_URL_LANG} | \ - sed -n -e "s|.*FreedomBox/Manual/\([a-zA-Z0-9_-]*\).*|\1|p" | sort -u | \ - grep -v -e GettingHelp -e Developer -e QuickStart) ; \ + PAGES=$$(wget --quiet --user-agent=Firefox -O - $${MANUAL_URL_LANG} | \ + sed -n -e "s|.*<]*>(.*)<\/body\s*>.*/$$1/si' $< > $@ +$(manual-raw-xmls): %.raw.xml: %.raw.wiki + python3 $(SCRIPTS_DIR)/wikiparser.py $< > $@ + $(manual-xmls): %.xml: %.raw.xml $(SCRIPTS_DIR)/fixes.xslt xsltproc --output $@ $(SCRIPTS_DIR)/fixes.xslt $< +$(manual-pages-raw-xml): %.raw.xml: %.raw.wiki + python3 $(SCRIPTS_DIR)/wikiparser.py $< > $@ + $(manual-pages-xml): %.xml: %.raw.xml $(SCRIPTS_DIR)/manual-page-fixes.xslt xsltproc --output $@ $(SCRIPTS_DIR)/manual-page-fixes.xslt $< - $(SCRIPTS_DIR)/post-processor remove-footer $@ $(SCRIPTS_DIR)/post-processor fix-wiki-urls $@ $(manual-pages-html): %.html: %.xml @@ -122,5 +132,5 @@ $(manual-pages-html): %.html: %.xml .PHONY: clean clean: - rm -f $(manual-pages-html) $(manual-pages-part-html) $(manual-pages-xml) $(manual-xmls) + rm -f $(manual-pages-html) $(manual-pages-part-html) $(manual-pages-raw-xml) $(manual-pages-xml) $(manual-raw-xmls) $(manual-xmls) rm -f $(OUTPUTS)