@@ -21,6 +21,8 @@ DOC_OUTPUT_DIR:=$(shell pwd)/web
2121GIT_HOME =https://github.com/dlang
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 : dmd-prerelease phobos-prerelease druntime-prerelease druntime-release \
238240 phobos-release 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}
@@ -427,19 +431,19 @@ apidocs-prerelease : ${DOC_OUTPUT_DIR}/library-prerelease/sitemap.xml ${DOC_OUTP
427431apidocs-release : ${DOC_OUTPUT_DIR}/library/sitemap.xml ${DOC_OUTPUT_DIR}/library/.htaccess
428432apidocs-serve : docs-prerelease.json
429433 ${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 \
430- --override-macros=std-ddox-override.ddoc --package-order=std \
434+ --override-macros=std-ddox-override.ddoc --package-order=std --hyphenate \
431435 --git-target=master --web-file-dir=. docs-prerelease.json
432436
433437${DOC_OUTPUT_DIR}/library-prerelease/sitemap.xml : docs-prerelease.json
434438 @mkdir -p $(dir $@ )
435439 ${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 \
436- --override-macros=std-ddox-override.ddoc --package-order=std \
440+ --override-macros=std-ddox-override.ddoc --package-order=std --hyphenate \
437441 --git-target=master docs-prerelease.json ${DOC_OUTPUT_DIR} /library-prerelease
438442
439443${DOC_OUTPUT_DIR}/library/sitemap.xml : docs.json
440444 @mkdir -p $(dir $@ )
441445 ${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 \
442- --override-macros=std-ddox-override.ddoc --package-order=std \
446+ --override-macros=std-ddox-override.ddoc --package-order=std --hyphenate \
443447 --git-target=v${LATEST} docs.json ${DOC_OUTPUT_DIR} /library
444448
445449${DOC_OUTPUT_DIR}/library/.htaccess : dpl_release_htaccess
@@ -506,6 +510,26 @@ ${DUB}: ${DUB_DIR} ${STABLE_DMD}
506510chm-nav.json : $(DDOC ) std.ddoc spec/spec.ddoc ${GENERATED}/modlist-${LATEST}.ddoc changelog/changelog.ddoc chm-nav.dd $(DMD )
507511 $(DMD ) -conf= -c -o- -Df$@ $(filter-out $(DMD ) ,$^ )
508512
513+ # ###############################################################################
514+ # HTML post-processing
515+ # ###############################################################################
516+
517+ # binary
518+ .PHONY : html-postprocessor
519+ html-postprocessor : ${DUB} ${STABLE_DMD}
520+ DFLAGS=" $( DPL_DOCS_DFLAGS) " ${DUB} build --root=${HTML_POSTPROCESSOR_PATH} \
521+ --compiler=${STABLE_DMD}
522+
523+ # post process html output (currently hyphenation)
524+ # process any html file that is newer than the rule's .done dummy file
525+ ${HTML_POSTPROCESSOR_PATH}/.done : ${ALL_FILES} html-postprocessor \
526+ html phobos-prerelease druntime-prerelease druntime-release phobos-release
527+ if [ ! -f $@ ]; then touch -t 197001010000 $@ ; fi
528+ find ${DOC_OUTPUT_DIR} -newer $@ -name ' *.html' \
529+ -not \( -path ' ${DOC_OUTPUT_DIR}/library/*' -or -path ' ${DOC_OUTPUT_DIR}/library-prerelease/*' \) \
530+ | xargs ${HTML_POSTPROCESSOR}
531+ touch $@
532+
509533# ###############################################################################
510534# Dman tags
511535# ###############################################################################
0 commit comments