@@ -21,6 +21,8 @@ DOC_OUTPUT_DIR:=$(shell pwd)/web
2121GIT_HOME =https://github.com/D-Programming-Language
2222DPL_DOCS_PATH =dpl-docs
2323DPL_DOCS =$(DPL_DOCS_PATH ) /dpl-docs
24+ HTML_POSTPROCESSOR_PATH =html-postprocessor
25+ HTML_POSTPROCESSOR =$(HTML_POSTPROCESSOR_PATH ) /html-postprocessor
2426REMOTE_DIR =d-programming@digitalmars.com:data
2527GENERATED =.generated
2628
@@ -232,7 +234,7 @@ $(DOC_OUTPUT_DIR)/dmd-%.verbatim : %.ddoc dcompiler.dd verbatim.ddoc $(DMD)
232234# Rulez
233235# ###############################################################################
234236
235- all : docs html
237+ all : docs html postprocess-html
236238
237239docs : phobos-prerelease druntime-prerelease druntime-release phobos-release \
238240 apidocs-release apidocs-prerelease
@@ -245,6 +247,8 @@ kindle : ${DOC_OUTPUT_DIR}/dlangspec.mobi
245247
246248pdf : ${DOC_OUTPUT_DIR}/dlangspec.pdf
247249
250+ postprocess-html : ${HTML_POSTPROCESSOR_PATH}/.done
251+
248252$(DOC_OUTPUT_DIR ) /sitemap.html : $(ALL_FILES_BUT_SITEMAP ) $(DMD )
249253 cp -f sitemap-template.dd sitemap.dd
250254 (true $( foreach F, $( TARGETS) , \
@@ -274,7 +278,7 @@ rebase-druntime: ; cd $(DRUNTIME_DIR) && $(call REBASE,druntime)
274278rebase-phobos : ; cd $(PHOBOS_DIR ) && $(call REBASE,phobos)
275279
276280clean :
277- rm -rf $(DOC_OUTPUT_DIR ) ${GENERATED} dpl-docs /.dub
281+ rm -rf $(DOC_OUTPUT_DIR ) ${GENERATED} ${DPL_DOCS_PATH} /.dub ${HTML_POSTPROCESSOR_PATH} /.done ${HTML_POSTPROCESSOR_PATH} /.dub
278282 rm -rf auto dlangspec-consolidated.d $(addprefix dlangspec,.aux .d .dvi .fdb_latexmk .fls .log .out .pdf .tex .txt .verbatim.txt)
279283 rm -f docs.json docs-prerelease.json dpl-docs/dpl-docs
280284 @echo You should issue manually: rm -rf ${DMD_DIR} -${LATEST} ${DRUNTIME_DIR} -${LATEST} ${PHOBOS_DIR} -${LATEST} ${STABLE_DMD_ROOT} ${DUB_DIR}
@@ -389,7 +393,7 @@ ${DOC_OUTPUT_DIR}/phobos-prerelease/object.verbatim : $(DMD)
389393# phobos, latest released build and current build
390394# ###############################################################################
391395
392- .PHONY : phobos-prerelease
396+ # .PHONY: phobos-prerelease
393397phobos-prerelease : ${PHOBOS_DIR} $(STD_DDOC_PRE ) druntime-prerelease
394398 ${MAKE} --directory=${PHOBOS_DIR} -f posix.mak \
395399 STDDOC=" $( addprefix ` pwd` /, $( STD_DDOC_PRE) ) " \
@@ -422,19 +426,19 @@ apidocs-prerelease : ${DOC_OUTPUT_DIR}/library-prerelease/sitemap.xml ${DOC_OUTP
422426apidocs-release : ${DOC_OUTPUT_DIR}/library/sitemap.xml ${DOC_OUTPUT_DIR}/library/.htaccess
423427apidocs-serve : docs-prerelease.json
424428 ${DPL_DOCS} serve-html --std-macros=html.ddoc --std-macros=dlang.org.ddoc --std-macros=std.ddoc --std-macros=macros.ddoc --std-macros=std-ddox.ddoc \
425- --override-macros=std-ddox-override.ddoc --package-order=std \
429+ --override-macros=std-ddox-override.ddoc --package-order=std --hyphenate \
426430 --git-target=master --web-file-dir=. docs-prerelease.json
427431
428432${DOC_OUTPUT_DIR}/library-prerelease/sitemap.xml : docs-prerelease.json
429433 @mkdir -p $(dir $@ )
430434 ${DPL_DOCS} generate-html --file-name-style=lowerUnderscored --std-macros=html.ddoc --std-macros=dlang.org.ddoc --std-macros=std.ddoc --std-macros=macros.ddoc --std-macros=std-ddox.ddoc \
431- --override-macros=std-ddox-override.ddoc --package-order=std \
435+ --override-macros=std-ddox-override.ddoc --package-order=std --hyphenate \
432436 --git-target=master docs-prerelease.json ${DOC_OUTPUT_DIR} /library-prerelease
433437
434438${DOC_OUTPUT_DIR}/library/sitemap.xml : docs.json
435439 @mkdir -p $(dir $@ )
436440 ${DPL_DOCS} generate-html --file-name-style=lowerUnderscored --std-macros=html.ddoc --std-macros=dlang.org.ddoc --std-macros=std.ddoc --std-macros=macros.ddoc --std-macros=std-ddox.ddoc \
437- --override-macros=std-ddox-override.ddoc --package-order=std \
441+ --override-macros=std-ddox-override.ddoc --package-order=std --hyphenate \
438442 --git-target=v${LATEST} docs.json ${DOC_OUTPUT_DIR} /library
439443
440444${DOC_OUTPUT_DIR}/library/.htaccess : dpl_release_htaccess
@@ -493,6 +497,26 @@ ${STABLE_DMD}:
493497${DUB} : ${DUB_DIR} ${STABLE_DMD}
494498 cd ${DUB_DIR} && DC=" $( abspath ${STABLE_DMD} ) -conf=$( abspath ${STABLE_DMD_CONF} ) " ./build.sh
495499
500+ # ###############################################################################
501+ # HTML post-processing
502+ # ###############################################################################
503+
504+ # binary
505+ .PHONY : html-postprocessor
506+ html-postprocessor : ${DUB} ${STABLE_DMD}
507+ DFLAGS=" $( DPL_DOCS_DFLAGS) " ${DUB} build --root=${HTML_POSTPROCESSOR_PATH} \
508+ --compiler=${STABLE_DMD}
509+
510+ # post process html output (currently hyphenation)
511+ # process any html file that is newer than the rule's .done dummy file
512+ ${HTML_POSTPROCESSOR_PATH}/.done : ${ALL_FILES} html-postprocessor \
513+ html phobos-prerelease druntime-prerelease druntime-release phobos-release
514+ if [ ! -f $@ ]; then touch -t 197001010000 $@ ; fi
515+ find ${DOC_OUTPUT_DIR} -newer $@ -name ' *.html' \
516+ -not \( -path ' ${DOC_OUTPUT_DIR}/library/*' -or -path ' ${DOC_OUTPUT_DIR}/library-prerelease/*' \) \
517+ | xargs ${HTML_POSTPROCESSOR}
518+ touch $@
519+
496520# ###############################################################################
497521# Dman tags
498522# ###############################################################################
0 commit comments