【背景】
折腾:
【记录】使用docbook的docbook-xsl-ns-1.78.1替换旧的ant改用make去编译webhelp
期间,
优化完了:
【记录】docbook的docbook-xsl-ns-1.78.1中的webhelp:优化使得共享webhelp的(css和js等)模板文件
就该去继续优化:
使得此处的webhelp,能够共用之前关于chunk方面的xsl公共配置了。
即,自己定制对应的webhelp.xsl,且集成之前chunk方面的配置。
【折腾过程】
1.继续共用xsl配置之前,先去继续搞懂,上面的:
【记录】docbook的docbook-xsl-ns-1.78.1中的webhelp:优化使得共享webhelp的(css和js等)模板文件
期间所遇到的一个问题:
为何命令行传入:
–stringparam webhelp.autolabel 1
给:
xsltproc
但是却没起效果。
2.去看看xsltproc是否有哪些参数,可以显示内部执行过程的详细信息,以便调试:
Administrator@PC-20130611GART /cygdrive/e/Dev_Root/docbook/dev/books/docbook_dev_note/src $ which xsltproc /usr/bin/xsltproc Administrator@PC-20130611GART /cygdrive/e/Dev_Root/docbook/dev/books/docbook_dev_note/src $ xsltproc --help Unknown option --help Usage: xsltproc [options] stylesheet file [file ...] Options: --version or -V: show the version of libxml and libxslt used --verbose or -v: show logs of what's happening --output file or -o file: save to a given file --timing: display the time used --repeat: run the transformation 20 times --debug: dump the tree of the result instead --dumpextensions: dump the registered extension elements and functions to stdout --novalid skip the DTD loading phase --nodtdattr do not default attributes from the DTD --noout: do not dump the result --maxdepth val : increase the maximum depth (default 3000) --maxvars val : increase the maximum variables (default 15000) --maxparserdepth val : increase the maximum parser depth --html: the input document is(are) an HTML file(s) --encoding: the input document character encoding --param name value : pass a (parameter,value) pair value is an UTF8 XPath expression. string values must be quoted like "'string'" or use stringparam to avoid it --stringparam name value : pass a (parameter, UTF8 string value) pair --path 'paths': provide a set of paths for resources --nonet : refuse to fetch DTDs or entities over network --nowrite : refuse to write to any file or resource --nomkdir : refuse to create directories --writesubtree path : allow file write only with the path subtree --catalogs : use SGML catalogs from $SGML_CATALOG_FILES otherwise XML Catalogs starting from file:///etc/xml/catalog are activated by default --xinclude : do XInclude processing on document input --xincludestyle : do XInclude processing on stylesheets --load-trace : print trace of all external entites loaded --profile or --norman : dump profiling informations Project libxslt home page: http://xmlsoft.org/XSLT/ To report bugs and get help: http://xmlsoft.org/XSLT/bugs.html Administrator@PC-20130611GART /cygdrive/e/Dev_Root/docbook/dev/books/docbook_dev_note/src $
有对应的:
–verbose
可以用。
所以就去把makefile中改为:
webhelp_chunk: xsltproc \ --verbose \ --xinclude --output xincluded-profiled.xml \ --stringparam profile.arch ${PROFILE.ARCH} \ --stringparam profile.audience ${PROFILE.AUDIENCE} \ --stringparam profile.condition ${PROFILE.CONDITION} \ --stringparam profile.conformance ${PROFILE.CONFORMANCE} \ --stringparam profile.lang ${PROFILE.LANG} \ --stringparam profile.os ${PROFILE.OS} \ --stringparam profile.revision ${PROFILE.REVISION} \ --stringparam profile.revisionflag ${PROFILE.REVISIONFLAG} \ --stringparam profile.role ${PROFILE.ROLE} \ --stringparam profile.security ${PROFILE.SECURITY} \ --stringparam profile.status ${PROFILE.STATUS} \ --stringparam profile.userlevel ${PROFILE.USERLEVEL} \ --stringparam profile.vendor ${PROFILE.VENDOR} \ --stringparam profile.wordsize ${PROFILE.WORDSIZE} \ --stringparam profile.attribute ${PROFILE.ATTRIBUTE} \ --stringparam profile.value ${PROFILE.VALUE} \ $(TOOLS_XSL_NS_PROFILING)/profile.xsl \ $(MAIN_SRC_FILE) xsltproc --verbose ${WEBHELP_OTHER_XSLTPROC_ARGS} $(TOOLS_XSL_NS_WEBHELP)/xsl/webhelp.xsl xincluded-profiled.xml
看看效果:
但是执行输出的内容太多,无法看清。
3.再去改为:
webhelp_chunk: xsltproc \ --verbose \ --xinclude --output xincluded-profiled.xml \ --stringparam profile.arch ${PROFILE.ARCH} \ --stringparam profile.audience ${PROFILE.AUDIENCE} \ --stringparam profile.condition ${PROFILE.CONDITION} \ --stringparam profile.conformance ${PROFILE.CONFORMANCE} \ --stringparam profile.lang ${PROFILE.LANG} \ --stringparam profile.os ${PROFILE.OS} \ --stringparam profile.revision ${PROFILE.REVISION} \ --stringparam profile.revisionflag ${PROFILE.REVISIONFLAG} \ --stringparam profile.role ${PROFILE.ROLE} \ --stringparam profile.security ${PROFILE.SECURITY} \ --stringparam profile.status ${PROFILE.STATUS} \ --stringparam profile.userlevel ${PROFILE.USERLEVEL} \ --stringparam profile.vendor ${PROFILE.VENDOR} \ --stringparam profile.wordsize ${PROFILE.WORDSIZE} \ --stringparam profile.attribute ${PROFILE.ATTRIBUTE} \ --stringparam profile.value ${PROFILE.VALUE} \ $(TOOLS_XSL_NS_PROFILING)/profile.xsl \ $(MAIN_SRC_FILE) xsltproc ${WEBHELP_OTHER_XSLTPROC_ARGS} $(TOOLS_XSL_NS_WEBHELP)/xsl/webhelp.xsl xincluded-profiled.xml
再试试:
结果也是输出太多。没看调试。
4.再去改为:
webhelp_chunk: xsltproc \ --xinclude --output xincluded-profiled.xml \ --stringparam profile.arch ${PROFILE.ARCH} \ --stringparam profile.audience ${PROFILE.AUDIENCE} \ --stringparam profile.condition ${PROFILE.CONDITION} \ --stringparam profile.conformance ${PROFILE.CONFORMANCE} \ --stringparam profile.lang ${PROFILE.LANG} \ --stringparam profile.os ${PROFILE.OS} \ --stringparam profile.revision ${PROFILE.REVISION} \ --stringparam profile.revisionflag ${PROFILE.REVISIONFLAG} \ --stringparam profile.role ${PROFILE.ROLE} \ --stringparam profile.security ${PROFILE.SECURITY} \ --stringparam profile.status ${PROFILE.STATUS} \ --stringparam profile.userlevel ${PROFILE.USERLEVEL} \ --stringparam profile.vendor ${PROFILE.VENDOR} \ --stringparam profile.wordsize ${PROFILE.WORDSIZE} \ --stringparam profile.attribute ${PROFILE.ATTRIBUTE} \ --stringparam profile.value ${PROFILE.VALUE} \ $(TOOLS_XSL_NS_PROFILING)/profile.xsl \ $(MAIN_SRC_FILE) xsltproc --verbose ${WEBHELP_OTHER_XSLTPROC_ARGS} $(TOOLS_XSL_NS_WEBHELP)/xsl/webhelp.xsl xincluded-profiled.xml
再试试:
结果同上,输出内容太多。无法看清。
5.再去改为加上–debug看看:
webhelp_chunk: xsltproc \ --xinclude --output xincluded-profiled.xml \ --stringparam profile.arch ${PROFILE.ARCH} \ --stringparam profile.audience ${PROFILE.AUDIENCE} \ --stringparam profile.condition ${PROFILE.CONDITION} \ --stringparam profile.conformance ${PROFILE.CONFORMANCE} \ --stringparam profile.lang ${PROFILE.LANG} \ --stringparam profile.os ${PROFILE.OS} \ --stringparam profile.revision ${PROFILE.REVISION} \ --stringparam profile.revisionflag ${PROFILE.REVISIONFLAG} \ --stringparam profile.role ${PROFILE.ROLE} \ --stringparam profile.security ${PROFILE.SECURITY} \ --stringparam profile.status ${PROFILE.STATUS} \ --stringparam profile.userlevel ${PROFILE.USERLEVEL} \ --stringparam profile.vendor ${PROFILE.VENDOR} \ --stringparam profile.wordsize ${PROFILE.WORDSIZE} \ --stringparam profile.attribute ${PROFILE.ATTRIBUTE} \ --stringparam profile.value ${PROFILE.VALUE} \ $(TOOLS_XSL_NS_PROFILING)/profile.xsl \ $(MAIN_SRC_FILE) xsltproc --verbose ${WEBHELP_OTHER_XSLTPROC_ARGS} $(TOOLS_XSL_NS_WEBHELP)/xsl/webhelp.xsl xincluded-profiled.xml
结果是:
xsltproc --debug --stringparam webhelp.base.dir ../output/webhelp --stringparam webhelp.autolabel 1 --stringparam webhelp.indexer.language zh --stringparam webhelp.common.dir file:///E:/Dev_Root/docbook/tools/docbook-xsl-ns-1.78.1/webhelp/template/common/ E:/Dev_Root/docbook/tools/docbook-xsl-ns-1.78.1/webhelp/xsl/webhelp.xsl xincluded-profiled.xml language: zh Writing ../output/webhelp/background_docbook_come.html for sect2(background_docbook_come) Writing ../output/webhelp/screenshot_docbook_one_in_multi_out.html for sect3(screenshot_docbook_one_in_multi_out) Writing ../output/webhelp/what_is_the_docbook.html for sect2(what_is_the_docbook) Writing ../output/webhelp/what_is_docbook.html for sect1(what_is_docbook) Writing ../output/webhelp/why_use_docbook.html for sect1(why_use_docbook) Writing ../output/webhelp/preface.html for preface(preface) Writing ../output/webhelp/our_target.html for sect2(our_target) Writing ../output/webhelp/format_convert_knowledge.html for sect2(format_convert_knowledge) Writing ../output/webhelp/should_know_before_docbook.html for sect1(should_know_before_docbook) Writing ../output/webhelp/ch01s02s01.html for sect2 Writing ../output/webhelp/download_xsltproc_win.html for sect2(download_xsltproc_win) Writing ../output/webhelp/download_xsl_ns.html for sect2(download_xsl_ns) Writing ../output/webhelp/download_fop.html for sect3(download_fop) Writing ../output/webhelp/config_fop_home.html for sect3(config_fop_home) Writing ../output/webhelp/add_fop_xconf.html for sect3(add_fop_xconf) Writing ../output/webhelp/download_fop_add_conf.html for sect2(download_fop_add_conf) Writing ../output/webhelp/prepare_docbook_src_xml.html for sect2(prepare_docbook_src_xml) Writing ../output/webhelp/prepare_xml_config.html for sect3(prepare_xml_config) Writing ../output/webhelp/convert_xml_to_html.html for sect3(convert_xml_to_html) Writing ../output/webhelp/from_xml_generate_html.html for sect2(from_xml_generate_html) Writing ../output/webhelp/prepare_pdf_config.html for sect3(prepare_pdf_config) Writing ../output/webhelp/convert_xml_to_fo.html for sect3(convert_xml_to_fo) Writing ../output/webhelp/convert_fo_to_pdf.html for sect3(convert_fo_to_pdf) Writing ../output/webhelp/from_xml_generate_pdf.html for sect2(from_xml_generate_pdf) Writing ../output/webhelp/pure_win_docbook_dev_env.html for sect1(pure_win_docbook_dev_env) Writing ../output/webhelp/install_cygwin.html for sect2(install_cygwin) Writing ../output/webhelp/download_fop_for_cygwin.html for sect2(download_fop_for_cygwin) Writing ../output/webhelp/cygwin_docbook_dev_env.html for sect1(cygwin_docbook_dev_env) Writing ../output/webhelp/ch01_build_env.html for chapter(ch01_build_env) Writing ../output/webhelp/docbook4_vs_docbook5.html for sect1(docbook4_vs_docbook5) Writing ../output/webhelp/entity_definition.html for sect1(entity_definition) Writing ../output/webhelp/qanda_usage.html for sect1(qanda_usage) Writing ../output/webhelp/fop_font_config.html for sect2(fop_font_config) Writing ../output/webhelp/fop_notes.html for sect1(fop_notes) Writing ../output/webhelp/docbook_some_concept.html for sect1(docbook_some_concept) Writing ../output/webhelp/docbook_id_abbrev.html for sect3(docbook_id_abbrev) Writing ../output/webhelp/docbook_best_practice.html for sect2(docbook_best_practice) Writing ../output/webhelp/docbook_dev_notes.html for sect1(docbook_dev_notes) Writing ../output/webhelp/example_docbook_debug_pdf.html for sect2(example_docbook_debug_pdf) Writing ../output/webhelp/docbook_debug.html for sect1(docbook_debug) Writing ../output/webhelp/docbook_focus_content.html for sect2(docbook_focus_content) Writing ../output/webhelp/docbook_vs_building.html for sect2(docbook_vs_building) Writing ../output/webhelp/docbook_summary.html for sect1(docbook_summary) Writing ../output/webhelp/dobook_evolution_process.html for sect1(dobook_evolution_process) Writing ../output/webhelp/ch02_notes.html for chapter(ch02_notes) Writing ../output/webhelp/ch03_faq.html for chapter(ch03_faq) Writing ../output/webhelp/intro_explain_docbook_materials.html for sect1(intro_explain_docbook_materials) Writing ../output/webhelp/docbook_refer_materials.html for sect1(docbook_refer_materials) Writing ../output/webhelp/ch04_materials.html for chapter(ch04_materials) Writing ../output/webhelp/unknown_code_syntax_highlight.html for sect1(unknown_code_syntax_highlight) Writing ../output/webhelp/unknown_zhcn_hypernate.html for sect1(unknown_zhcn_hypernate) Writing ../output/webhelp/unknown_callout_co_re_number.html for sect1(unknown_callout_co_re_number) Writing ../output/webhelp/ch05_issues.html for chapter(ch05_issues) Writing ../output/webhelp/example_chapter_section.html for sect1(example_chapter_section) Writing ../output/webhelp/example_para.html for sect1(example_para) Writing ../output/webhelp/example_figure.html for sect1(example_figure) Writing ../output/webhelp/example_table.html for sect1(example_table) Writing ../output/webhelp/example_callout.html for sect1(example_callout) Writing ../output/webhelp/example_link_xref.html for sect1(example_link_xref) Writing ../output/webhelp/example_equation.html for sect1(example_equation) Writing ../output/webhelp/example_list.html for sect1(example_list) Writing ../output/webhelp/example_simplelist_literallayout.html for sect1(example_simplelist_literallayout) Writing ../output/webhelp/example_xinclude.html for sect1(example_xinclude) Writing ../output/webhelp/example_filename.html for sect1(example_filename) Writing ../output/webhelp/example_admonitions_note.html for sect2(example_admonitions_note) Writing ../output/webhelp/example_admonitions_caution.html for sect2(example_admonitions_caution) Writing ../output/webhelp/example_admonitions_warning.html for sect2(example_admonitions_warning) Writing ../output/webhelp/example_admonitions_tip.html for sect2(example_admonitions_tip) Writing ../output/webhelp/example_admonitions_important.html for sect2(example_admonitions_important) Writing ../output/webhelp/example_admonitions.html for sect1(example_admonitions) Writing ../output/webhelp/ch06_examples.html for chapter(ch06_examples) Writing ../output/webhelp/docbook_released_basic.html for sect1(docbook_released_basic) Writing ../output/webhelp/docbook_released_embedded.html for sect1(docbook_released_embedded) Writing ../output/webhelp/docbook_released_upper.html for sect1(docbook_released_upper) Writing ../output/webhelp/docbook_released_other.html for sect1(docbook_released_other) Writing ../output/webhelp/appendix.html for appendix(appendix) Writing ../output/webhelp/index.html for book Writing ../output/webhelp/search/l10n.js DOCUMENT version=1.0 encoding=UTF-8 standalone=true Administrator@PC-20130611GART /cygdrive/e/Dev_Root/docbook/dev/books/docbook_dev_note/src $
即:
–debug,只是最后多输出了几行:
但是不知道结果如何。
再去调用webhelp_index看看结果:
最后生成的webhelp的页面,目录还是没有索引编号。
6.另外,也注意到有个:
–param name value
有空,可以去试试:
–param webhelp.autolabel 1
即改为:
WEBHELP_OTHER_XSLTPROC_ARGS_COMMON = \ --stringparam webhelp.base.dir $(OUTPUT_DIR_WEBHELP) \ --param webhelp.autolabel 1 \ --stringparam webhelp.indexer.language $(WEBHELP_INDEX_LANGUAGE)
看看是否有效。
结果还是不行。
7.另外,看起来感觉是:
或许是:
webhelp_chunk
期间,xsltproc中的:
–stringparam webhelp.autolabel 1
已经生效。
但是对于:
webhelp_index
调用java处理,然后其中或许也是需要配置类似的参数才可以的。
所以,可以去看看之前的ant build中间,是否有这样的参数传入index阶段中去。
E:\Dev_Root\docbook\dev\ant\webhelp\build.xml
然后看到之前的index阶段,也只是:
<java classname="com.nexwave.nquindexer.IndexerMain" fork="true"> <sysproperty key="htmlDir" value="${output-dir}/content"/> <sysproperty key="indexerLanguage" value="${webhelp.indexer.language}"/> <sysproperty key="htmlExtension" value="${html.extension}"/> <sysproperty key="doStem" value="${enable.stemming}"/> <sysproperty key="tocFile" value="${toc.file}"/>
没有对应的设置webhelp的autolabel之类的参数。
8.算了,不在这方面去验证此参数了。
还是想办法,集成webhelp.xsl去吧。
经过大量的优化调整,目前是:
(1)E:\Dev_Root\docbook\dev\config\docbook.mk
代码如下:
# [Fcuntion] # Generate output from DocBook xml sources # # [Author] # Crifan Li # # [Version] # v2.0, 2013-09-28 # # [Contact] # https://www.crifan.com/about/me/ # # [Note] # 1. this is the main makefile for docbook # 2. set proper enviroment variables before use this makefile # ==office== # (1) CLASSPATH = .;%JAVA_HOME%\lib\rt.jar; # not need add D:\tmp\tmp_dev_root\cgwin\home\CLi\develop\docbook\tools\fop\lib\xmlgraphics-commons-1.4.jar; # into CLASSPATH after fixe fop cygpath bug: # https://www.crifan.com/fop_java_lang_noclassdeffounderror_xmlgraphics_cygpath_bug_path_truncated/ # (2) FOP_HOME = /home/CLi/develop/docbook/tools/fop # (3) JAVA_HOME = C:\Program Files (x86)\Java\jre6 # (4) PATH contain: D:\tmp\tmp_dev_root\cgwin\home\CLi\develop\docbook\tools\fop # # ==home== # (1) CLASSPATH = .;%JAVA_HOME%\lib; # (2) FOP_HOME = /cygdrive/e/Dev_Root/docbook/tools/fop-1.0 # for MSYS/MingW, set to E:\Dev_Root\docbook\tools\fop-1.0 # later find out, for cygwin, set to E:\Dev_Root\docbook\tools\fop-1.0 also can work # (3) JAVA_HOME = D:\Program Files\Java\jre7 # (4) PATH contain: # hhc的路径: E:\dev_install_root\HTML Help Workshop; # 7z的路径: D:\Program Files\7-Zip; # fop的路径: E:\Dev_Root\docbook\tools\fop-1.0; # # 3. this makefile should be include in Makefile of src directory # ==office== # pwd = /home/CLi/develop/docbook/books/xxx/src # [home] # pwd = /cygdrive/e/Dev_Root/docbook/dev/books/xxx/src # # [History] # [v2.0, 2013-09-27] # 1. add project name for process each target ################################################################################ # Some Fixed Varaibles ################################################################################ ONLINE_RES_DOCBOOK = https://www.crifan.com/files/res/docbook ################################################################################ # Enviroment Settings ################################################################################ # ----------------------- home config ----------------------- TOOLS_ROOT_CMD = E:/Dev_Root/docbook/tools #TOOLS_ROOT_CMD = /E/Dev_Root/docbook/tools CONFIG_ROOT_CMD = E:/Dev_Root/docbook/dev/config #CONFIG_ROOT_CMD = /E/Dev_Root/docbook/dev/config LOCAL_RELEASE_PARENT_CMD = E:/Dev_Root/www_crifan_com/files/doc/docbook #LOCAL_RELEASE_PARENT_CMD = /E/Dev_Root/www_crifan_com/files/doc/docbook LOCAL_PDF_CMD = E:/tmp/books #LOCAL_PDF_CMD = /E/tmp/books # ----------------------- office config ----------------------- #TOOLS_ROOT_CMD = D:/tmp/tmp_dev_root/cgwin/home/CLi/develop/docbook/tools #CONFIG_ROOT_CMD = D:/tmp/tmp_dev_root/cgwin/home/CLi/develop/docbook/config #LOCAL_RELEASE_PARENT_CMD = D:/to_del/docbook #LOCAL_PDF_CMD = D:/to_del/docbook ################################################################################ # ----------------------- common config ----------------------- # follow config_root and tools_root are soft-link CONFIG_ROOT_CYGWIN = /home/develop/docbook/config_root #CONFIG_ROOT_CYGWIN = /E/Dev_Root/docbook/dev/config TOOLS_ROOT_CYGWIN = /home/develop/docbook/tools_root #TOOLS_ROOT_CYGWIN = /E/Dev_Root/docbook/tools ################################################################################ FOP_CFG_ROOT_CMD = $(CONFIG_ROOT_CMD)/fop/conf XML_CATALOG_ROOT_CYGWIN = $(CONFIG_ROOT_CYGWIN)/catalog XML_CATALOG_FILES = $(XML_CATALOG_ROOT_CYGWIN)/catalog.xml #DOCBOOK_XSL_NS_NAME=docbook-xsl-ns-1.76.1 #DOCBOOK_XSL_NS_NAME=docbook-xsl-ns-1.77.0 #DOCBOOK_XSL_NS_NAME=docbook-xsl-ns-1.77.1 DOCBOOK_XSL_NS_NAME=docbook-xsl-ns-1.78.1 CONFIG_XSL_NS_ROOT_CYGWIN = $(CONFIG_ROOT_CYGWIN)/$(DOCBOOK_XSL_NS_NAME) TOOLS_XSL_NS_BASE_CMD = $(TOOLS_ROOT_CMD)/$(DOCBOOK_XSL_NS_NAME) CONFIG_XSL_NS_BASE_CMD = $(CONFIG_ROOT_CMD)/$(DOCBOOK_XSL_NS_NAME) SYS_IMG_PATH_LOCAL = $(CONFIG_ROOT_CMD)/images/system SYS_IMG_PATH_RELEASE= $(ONLINE_RES_DOCBOOK)/images MAKE_FILE=$(CONFIG_ROOT_CYGWIN)/docbook.mk TOOLS_XSL_NS_FO = $(TOOLS_XSL_NS_BASE_CMD)/fo TOOLS_XSL_NS_HTML = $(TOOLS_XSL_NS_BASE_CMD)/html TOOLS_XSL_NS_HTMLHELP = $(TOOLS_XSL_NS_BASE_CMD)/htmlhelp TOOLS_XSL_NS_WEBHELP = $(TOOLS_XSL_NS_BASE_CMD)/webhelp TOOLS_XSL_NS_WEBSITE = $(TOOLS_XSL_NS_BASE_CMD)/website TOOLS_XSL_NS_PROFILING = $(TOOLS_XSL_NS_BASE_CMD)/profiling TOOLS_XSL_NS_EXTENSIONS = $(TOOLS_XSL_NS_BASE_CMD)/extensions # ----------------------- common environment variable ----------------------- OS_NAME = $(shell uname -o) OS_NAME_LOWCASE = $(shell echo $(OS_NAME) | tr '[A-Z]' '[a-z]') ################################################################################ # Configuration/Settings ################################################################################ # ================== Common related ================== #<xsl:param name="callout.graphics" select="1"></xsl:param> #<xsl:param name="callout.graphics.path">images/system/callouts/</xsl:param> #<xsl:param name="callout.graphics.number.limit">30</xsl:param> #<xsl:param name="callout.graphics.extension">.svg</xsl:param> #CFG_CALLOUT_GRAPHICS=0 CFG_CALLOUT_GRAPHICS=1 CALLOUT_NUMBER_LIMIT=30 CALLOUT_GRAPHICS_PATH_LOCAL=$(SYS_IMG_PATH_LOCAL)/callouts/ CALLOUT_GRAPHICS_PATH_RELEASE=$(SYS_IMG_PATH_RELEASE)/callouts/ FO_CALLOUT_GRAPHICS_EXTENSION=.svg HTML_CALLOUT_GRAPHICS_EXTENSION=.png #<xsl:param name="admon.graphics">1</xsl:param> #<xsl:param name="admon.graphics.extension">.svg</xsl:param> #<xsl:param name="admon.graphics.path">images/system/colorsvg/</xsl:param> #CFG_ADMON_GRAPHICS=0 CFG_ADMON_GRAPHICS=1 FO_ADMON_GRAPHICS_EXTENSION=.svg FO_ADMON_GRAPHICS_PATH=$(SYS_IMG_PATH_LOCAL)/colorsvg/ HTML_ADMON_GRAPHICS_EXTENSION=.png HTML_ADMON_GRAPHICS_PATH_LOCAL=$(SYS_IMG_PATH_LOCAL)/ HTML_ADMON_GRAPHICS_PATH_RELEASE=$(SYS_IMG_PATH_RELEASE)/ # ================== HTMLS related ================== #<xsl:param name="navig.graphics">1</xsl:param> #<xsl:param name="navig.graphics.extension">.png</xsl:param> #<xsl:param name="navig.graphics.path">images/system/</xsl:param> #CFG_NAVIG_GRAPHICS=0 CFG_NAVIG_GRAPHICS=1 NAVIG_GRAPHICS_EXTENSION=$(HTML_ADMON_GRAPHICS_EXTENSION) NAVIG_GRAPHICS_PATH_LOCAL=file:///$(HTML_ADMON_GRAPHICS_PATH_LOCAL) NAVIG_GRAPHICS_PATH_RELEASE=$(HTML_ADMON_GRAPHICS_PATH_RELEASE) # ================== HTML related ================== JS_PATH_LOCAL=$(CONFIG_XSL_NS_BASE_CMD)/html/js JS_PATH_RELEASE=$(ONLINE_RES_DOCBOOK)/js #JS_FILE=statistic_page_view.js #JS_FILE_LOCAL=$(JS_PATH_LOCAL)/$(JS_FILE) #JS_FILE_RELEASE=$(JS_PATH_RELEASE)/$(JS_FILE) INSERT_JS_FILE_LOCAL=$(JS_PATH_LOCAL)/insert_local_pageview_js.txt INSERT_JS_FILE_RELEASE=$(JS_PATH_LOCAL)/insert_online_pageview_js.txt #equation/programlisting/... setting #<xsl:param name="html.stylesheet.type">text/css</xsl:param> #<xsl:param name="html.stylesheet">css/common_html.css</xsl:param> #CFG_HTML_CSS=0 CFG_HTML_CSS=1 HTML_STYLESHEET_TYPE = text/css CSS_PATH_LOCAL = $(CONFIG_XSL_NS_BASE_CMD)/html/css CSS_PATH_RELEASE = $(ONLINE_RES_DOCBOOK)/css # current only support single css file #HTML_STYLESHEET_LOCAL = $(CSS_PATH_LOCAL)/common_html.css HTML_STYLESHEET_LOCAL = file:///$(CSS_PATH_LOCAL)/common_html.css HTML_STYLESHEET_RELEASE = $(CSS_PATH_RELEASE)/common_html.css #HTMLS_OUTPUT_BASE_CMD = ../output ################################################################################ # Different Format Settings ################################################################################ # HTMLS HTMLS_MAIN_FILENAME = index ################################################################################ # Common Tools and Parameters Settings ################################################################################ #=============================================================================== # XSLT related #=============================================================================== #using tools XSLT = xsltproc XSLT_FLAGS_COMMON = \ --xinclude \ --stringparam callout.graphics $(CFG_CALLOUT_GRAPHICS) \ --stringparam admon.graphics $(CFG_ADMON_GRAPHICS) \ ifeq ($(CFG_CALLOUT_GRAPHICS), 1) XSLT_FLAGS_COMMON += --stringparam callout.graphics.number.limit $(CALLOUT_NUMBER_LIMIT) endif # ================== FO related ================== XSLT_FLAGS_FO = $(XSLT_FLAGS_COMMON) \ # callout settings ifeq ($(CFG_CALLOUT_GRAPHICS), 1) XSLT_FLAGS_FO += --stringparam callout.graphics.extension $(FO_CALLOUT_GRAPHICS_EXTENSION) XSLT_FLAGS_FO += --stringparam callout.graphics.path $(CALLOUT_GRAPHICS_PATH_LOCAL) endif # admon settings ifeq ($(CFG_ADMON_GRAPHICS), 1) XSLT_FLAGS_FO += --stringparam admon.graphics.extension $(FO_ADMON_GRAPHICS_EXTENSION) XSLT_FLAGS_FO += --stringparam admon.graphics.path $(FO_ADMON_GRAPHICS_PATH) endif # ================== HTML related ================== XSLT_FLAGS_COMMON_HTML = $(XSLT_FLAGS_COMMON) # callout settings ifeq ($(CFG_CALLOUT_GRAPHICS), 1) XSLT_FLAGS_COMMON_HTML += --stringparam callout.graphics.extension $(HTML_CALLOUT_GRAPHICS_EXTENSION) endif # admon settings ifeq ($(CFG_ADMON_GRAPHICS), 1) XSLT_FLAGS_COMMON_HTML += --stringparam admon.graphics.extension $(HTML_ADMON_GRAPHICS_EXTENSION) endif # css settings ifeq ($(CFG_HTML_CSS), 1) XSLT_FLAGS_COMMON_HTML += --stringparam html.stylesheet.type $(HTML_STYLESHEET_TYPE) endif XSLT_FLAGS_HTML_COMMON_LOCAL = ifeq ($(CFG_CALLOUT_GRAPHICS), 1) XSLT_FLAGS_HTML_COMMON_LOCAL += --stringparam callout.graphics.path $(CALLOUT_GRAPHICS_PATH_LOCAL) endif ifeq ($(CFG_ADMON_GRAPHICS), 1) XSLT_FLAGS_HTML_COMMON_LOCAL += --stringparam admon.graphics.path $(HTML_ADMON_GRAPHICS_PATH_LOCAL) endif ifeq ($(CFG_HTML_CSS), 1) XSLT_FLAGS_HTML_COMMON_LOCAL += --stringparam html.stylesheet $(HTML_STYLESHEET_LOCAL) endif XSLT_FLAGS_HTML_LOCAL = $(XSLT_FLAGS_COMMON_HTML) XSLT_FLAGS_HTML_LOCAL += $(XSLT_FLAGS_HTML_COMMON_LOCAL) XSLT_FLAGS_HTML_COMMON_RELEASE = ifeq ($(CFG_CALLOUT_GRAPHICS), 1) XSLT_FLAGS_HTML_COMMON_RELEASE += --stringparam callout.graphics.path $(CALLOUT_GRAPHICS_PATH_RELEASE) endif ifeq ($(CFG_ADMON_GRAPHICS), 1) XSLT_FLAGS_HTML_COMMON_RELEASE += --stringparam admon.graphics.path $(HTML_ADMON_GRAPHICS_PATH_RELEASE) endif ifeq ($(CFG_HTML_CSS), 1) XSLT_FLAGS_HTML_COMMON_RELEASE += --stringparam html.stylesheet $(HTML_STYLESHEET_RELEASE) endif XSLT_FLAGS_HTML_RELEASE = $(XSLT_FLAGS_COMMON_HTML) XSLT_FLAGS_HTML_RELEASE += $(XSLT_FLAGS_HTML_COMMON_RELEASE) #HTML_CSS_FILE = $(CONFIG_XSL_NS_ROOT_CYGWIN)/html/css/common_html.css # ====== HTMLs related ====== XSLT_FLAGS_HTMLS = $(XSLT_FLAGS_COMMON_HTML) \ --stringparam manifest $(PROJECT_NAME).html.manifest \ # --stringparam root.filename $(PROJECT_NAME) \ # --stringparam base.dir $(HTMLS_OUTPUT_BASE_CMD)/html/multi/ \ XSLT_FLAGS_HTMLS_LOCAL = $(XSLT_FLAGS_HTMLS) XSLT_FLAGS_HTMLS_LOCAL += $(XSLT_FLAGS_HTML_COMMON_LOCAL) XSLT_FLAGS_HTMLS_LOCAL += --stringparam navig.graphics $(CFG_NAVIG_GRAPHICS) ifeq ($(CFG_NAVIG_GRAPHICS), 1) XSLT_FLAGS_HTMLS_LOCAL += --stringparam navig.graphics.extension $(NAVIG_GRAPHICS_EXTENSION) XSLT_FLAGS_HTMLS_LOCAL += --stringparam navig.graphics.path $(NAVIG_GRAPHICS_PATH_LOCAL) endif XSLT_FLAGS_HTMLS_RELEASE = $(XSLT_FLAGS_HTMLS) XSLT_FLAGS_HTMLS_RELEASE += $(XSLT_FLAGS_HTML_COMMON_RELEASE) XSLT_FLAGS_HTMLS_RELEASE += --stringparam navig.graphics $(CFG_NAVIG_GRAPHICS) ifeq ($(CFG_NAVIG_GRAPHICS), 1) XSLT_FLAGS_HTMLS_RELEASE += --stringparam navig.graphics.extension $(NAVIG_GRAPHICS_EXTENSION) XSLT_FLAGS_HTMLS_RELEASE += --stringparam navig.graphics.path $(NAVIG_GRAPHICS_PATH_RELEASE) endif # ====== CHM related ====== XSLT_FLAGS_CHM = $(XSLT_FLAGS_HTMLS_LOCAL) \ --stringparam htmlhelp.chm $(PROJECT_NAME).chm \ #=============================================================================== # Webhelp related #=============================================================================== #WEBHELP_INDEX_LANGUAGE = en WEBHELP_INDEX_LANGUAGE = zh # A list of files to exclude from indexing INDEXER_EXCLUDED_FILES = ix01.html #WEBHELP_XSL_FILE=$(TOOLS_XSL_NS_WEBHELP)/xsl/webhelp.xsl WEBHELP_XSL_FILE=$(CONFIG_XSL_NS_BASE_CMD)/webhelp/webhelp_crl.xsl WEBHELP_TEMPLATE_COMMON_LOCAL = file:///$(TOOLS_XSL_NS_WEBHELP)/template/common/ WEBHELP_TEMPLATE_COMMON_RELEASE = $(ONLINE_RES_DOCBOOK)/webhelp/template/common/ # Use this variable to pass in other stringparams # to the xsltproc pass that generates DocBook output. # For example: # WEBHELP_OTHER_XSLTPROC_ARGS = --stringparam example.param "" #http://docbook.sourceforge.net/release/xsl/1.78.1/doc/html/webhelp.base.dir.html #if not set, default will be docs under current docbook book src directory XSLT_FLAGS_WEBHELP = $(XSLT_FLAGS_COMMON) \ --stringparam webhelp.base.dir $(OUTPUT_DIR_WEBHELP) \ --stringparam webhelp.indexer.language $(WEBHELP_INDEX_LANGUAGE) XSLT_FLAGS_WEBHELP += --stringparam navig.graphics $(CFG_NAVIG_GRAPHICS) XSLT_FLAGS_WEBHELP_LOCAL = \ --stringparam webhelp.common.dir $(WEBHELP_TEMPLATE_COMMON_LOCAL)\ --stringparam custom.css.source $(HTML_STYLESHEET_LOCAL) ifeq ($(CFG_NAVIG_GRAPHICS), 1) XSLT_FLAGS_WEBHELP_LOCAL += --stringparam navig.graphics.extension $(NAVIG_GRAPHICS_EXTENSION) XSLT_FLAGS_WEBHELP_LOCAL += --stringparam navig.graphics.path $(NAVIG_GRAPHICS_PATH_LOCAL) endif XSLT_FLAGS_WEBHELP_RELEASE = \ --stringparam webhelp.common.dir $(WEBHELP_TEMPLATE_COMMON_RELEASE)\ --stringparam custom.css.source $(HTML_STYLESHEET_RELEASE) ifeq ($(CFG_NAVIG_GRAPHICS), 1) XSLT_FLAGS_WEBHELP_RELEASE += --stringparam navig.graphics.extension $(NAVIG_GRAPHICS_EXTENSION) XSLT_FLAGS_WEBHELP_RELEASE += --stringparam navig.graphics.path $(NAVIG_GRAPHICS_PATH_RELEASE) endif #default set to local WEBHELP_OTHER_XSLTPROC_ARGS = $(XSLT_FLAGS_WEBHELP) WEBHELP_OTHER_XSLTPROC_ARGS += $(XSLT_FLAGS_WEBHELP_LOCAL) # Profiling params. For more information on # profiling (conditional text) and DocBook documents, see # http://www.sagehill.net/docbookxsl/Profiling.html PROFILE.ARCH = "" PROFILE.AUDIENCE = "" PROFILE.CONDITION = "" PROFILE.CONFORMANCE = "" PROFILE.LANG = "" PROFILE.OS = "" PROFILE.REVISION = "" PROFILE.REVISIONFLAG = "" PROFILE.ROLE = "" PROFILE.SECURITY = "" PROFILE.STATUS = "" PROFILE.USERLEVEL = "" PROFILE.VENDOR = "" PROFILE.WORDSIZE = "" PROFILE.ATTRIBUTE = "" PROFILE.VALUE = "" # ================================================= # You probably don't need to change anything below # unless you choose to add a validation step. # ================================================ INDEXER_JAR := $(TOOLS_XSL_NS_EXTENSIONS)/webhelpindexer.jar TAGSOUP_JAR := $(TOOLS_XSL_NS_EXTENSIONS)/tagsoup-1.2.1.jar LUCENE_ANALYZER_JAR := $(TOOLS_XSL_NS_EXTENSIONS)/lucene-analyzers-3.0.0.jar LUCENE_CORE_JAR := $(TOOLS_XSL_NS_EXTENSIONS)/lucene-core-3.0.0.jar #WEBHELP_CLASSPATH := $(INDEXER_JAR):$(TAGSOUP_JAR):$(LUCENE_ANALYZER_JAR):$(LUCENE_CORE_JAR) #under Windows(Cygwin), (java classpath) #(1)path seperator is semicolon ';' (not Linux's colon ':') #(2) command contain semicolon means multile command, so need quote # so become -> "path1;path2;path3" #detail can refer: #【已解决】docbook中去make webhelp编译webhelp结果出错:Error: Could not find or load main class com.nexwave.nquindexer.IndexerMain #https://www.crifan.com/docbook_make_webhelp_error__could_not_find_or_load_main_class_com_nexwave_nquindexer_indexermain/ ifeq ($(OS_NAME_LOWCASE), cygwin) WEBHELP_CLASSPATH := "$(INDEXER_JAR);$(TAGSOUP_JAR);$(LUCENE_ANALYZER_JAR);$(LUCENE_CORE_JAR)" else WEBHELP_CLASSPATH := $(INDEXER_JAR):$(TAGSOUP_JAR):$(LUCENE_ANALYZER_JAR):$(LUCENE_CORE_JAR) endif #=============================================================================== # FOP related #=============================================================================== FOP = fop FOP_FLAGS = --execdebug -c $(FOP_CFG_ROOT_CMD)/fop.xconf #=============================================================================== # compression related #=============================================================================== # compression COMPRESS_TOOL = 7z #compression options: http://www.dotnetperls.com/7-zip-examples COMPRESS_LEVEL = x9 COMPRESS_FLAG = a -m$(COMPRESS_LEVEL) COMPRESS_SUF = 7z ################################################################################ # Path/Location Settings ################################################################################ SRC_DIR = . MAIN_SRC_FILE = $(SRC_DIR)/$(PROJECT_NAME).xml OUTPUT_DIR = ../output RELEASE_DIR = ../release IMG_DIR = $(SRC_DIR)/images #SYS_IMG_SRC_DIR = $(CONFIG_ROOT_CYGWIN)/images/system #SYS_IMG_DST_DIR = $(IMG_DIR)/system #SOMEONE_UNDER_SYS_IMG = $(SYS_IMG_DST_DIR)/home.gif OUTPUT_DIR_PO = $(OUTPUT_DIR)/fo OUTPUT_DIR_PDF = $(OUTPUT_DIR)/pdf OUTPUT_DIR_RTF = $(OUTPUT_DIR)/rtf/fop OUTPUT_DIR_HTML = $(OUTPUT_DIR)/html/single OUTPUT_DIR_TXT = $(OUTPUT_DIR)/plain_text/w3m OUTPUT_DIR_HTMLS = $(OUTPUT_DIR)/html/multi OUTPUT_DIR_HTMLHELP = $(OUTPUT_DIR)/htmlhelp OUTPUT_DIR_CHM = $(OUTPUT_DIR_HTMLHELP) OUTPUT_DIR_WEBHELP = $(OUTPUT_DIR)/webhelp OUTPUT_FILE_PO = $(OUTPUT_DIR_PO)/$(PROJECT_NAME).fo OUTPUT_FILE_PDF = $(OUTPUT_DIR_PDF)/$(PROJECT_NAME).pdf OUTPUT_FILE_RTF = $(OUTPUT_DIR_RTF)/$(PROJECT_NAME).rtf OUTPUT_FILE_HTML = $(OUTPUT_DIR_HTML)/$(PROJECT_NAME).html OUTPUT_FILE_TXT = $(OUTPUT_DIR_TXT)/$(PROJECT_NAME).txt OUTPUT_FILE_HTMLS = $(OUTPUT_DIR_HTMLS)/$(HTMLS_MAIN_FILENAME).html #OUTPUT_FILE_HTMLS = $(OUTPUT_DIR_HTMLS)/$(PROJECT_NAME).html OUTPUT_FILE_HTMLHELP= $(OUTPUT_DIR_HTMLHELP)/$(PROJECT_NAME).html OUTPUT_FILE_CHM = $(OUTPUT_DIR_CHM)/$(PROJECT_NAME).chm OUTPUT_FILE_WEBHELP = $(OUTPUT_DIR_WEBHELP)/index.html XSL_NS_FILE_FO = docbook_fo_crl.xsl XSL_NS_FILE_HTML = docbook_html_crl.xsl XSL_NS_FILE_HTMLS = chunk_html_crl.xsl XSL_NS_FILE_HTMLHELP= docbook_htmlhelp_crl.xsl RELEASE_DIR_PDF = $(RELEASE_DIR)/pdf RELEASE_DIR_RTF = $(RELEASE_DIR)/rtf RELEASE_DIR_HTML = $(RELEASE_DIR)/html RELEASE_DIR_TXT = $(RELEASE_DIR)/txt RELEASE_DIR_HTMLS = $(RELEASE_DIR)/htmls RELEASE_DIR_CHM = $(RELEASE_DIR)/chm RELEASE_DIR_WEBHELP = $(RELEASE_DIR)/webhelp ################################################################################ # Commands to Generate Files ################################################################################ # generate all files all: pdf rtf html txt htmls chm webhelp # copy all generated files into specific foler and also do compression release: release_pdf release_rtf release_html release_txt release_htmls release_chm release_webhelp #.PHONY:release_copy release LOCAL_RELEASE_PROJECT=$(LOCAL_RELEASE_PARENT_CMD)/$(PROJECT_NAME) #copy the release to local dir release_copy:release mkdir -p $(LOCAL_RELEASE_PROJECT) rm -rf $(LOCAL_RELEASE_PROJECT)/* cp -a $(RELEASE_DIR) $(LOCAL_RELEASE_PROJECT) #copy generated pdf to some folder, facilitate to find all pdf in one place pdf_copy:pdf mkdir -p $(LOCAL_PDF_CMD) rm -rf $(LOCAL_PDF_CMD)/$(PROJECT_NAME).pdf cp -a $(OUTPUT_FILE_PDF) $(LOCAL_PDF_CMD) ################################################################################ # Common actions ################################################################################ #always_copy_sys_img: # copy the system related pictures(callout/navi/admonition/...) figures to ./images/system #copy_sys_img:always_copy_sys_img # cp -a $(SYS_IMG_SRC_DIR) $(SYS_IMG_DST_DIR) # remove copied system related pictures(callout/navi/admonition/...) figures from ./images/system #clean_sys_img: # rm -rf $(SYS_IMG_DST_DIR) #exist_sys_img: always_copy_sys_img copy_sys_img #.PHONY:copy_sys_img ################################################################################ # fo ################################################################################ $(OUTPUT_FILE_PO):$(MAIN_SRC_FILE) $(SUB_SRC_FILES) $(MAKE_FILE) @echo "=============================== generating ${PROJECT_NAME} fo ==============================" export XML_CATALOG_FILES="$(XML_CATALOG_FILES)" && \ export XML_DEBUG_CATALOG=1 && \ $(XSLT) $(XSLT_FLAGS_FO) -o $@ $(XSL_NS_FILE_FO) $< ################################################################################ # pdf ################################################################################ $(OUTPUT_FILE_PDF): $(OUTPUT_FILE_PO) @echo "=============================== generating ${PROJECT_NAME} pdf ==============================" $(FOP) $(FOP_FLAGS) $< -pdf $@ pdf: $(OUTPUT_FILE_PDF) clean_pdf: @echo "=============================== cleaning ${PROJECT_NAME} pdf ==============================" rm -f $(OUTPUT_FILE_PO) rm -f $(OUTPUT_FILE_PDF) release_pdf:$(OUTPUT_FILE_PDF) @echo "=============================== release ${PROJECT_NAME} pdf ==============================" cp -a $(OUTPUT_FILE_PDF) $(RELEASE_DIR_PDF) $(COMPRESS_TOOL) $(COMPRESS_FLAG) $(RELEASE_DIR_PDF)/$(PROJECT_NAME).$(subst release_,,$@).$(COMPRESS_SUF) $(OUTPUT_FILE_PDF) clean_release_pdf: @echo "=============================== cleaning ${PROJECT_NAME} pdf release ==============================" rm -f $(RELEASE_DIR_PDF)/* ################################################################################ # rtf ################################################################################ $(OUTPUT_FILE_RTF):$(OUTPUT_FILE_PO) @echo "=============================== generating ${PROJECT_NAME} rtf ==============================" #cp -a $(SYS_IMG_SRC_DIR) $(SYS_IMG_DST_DIR) $(FOP) $(FOP_FLAGS) $< -rtf $@ #rm -rf $(SYS_IMG_DST_DIR) rtf: $(OUTPUT_FILE_RTF) clean_rtf: @echo "=============================== cleaning ${PROJECT_NAME} rtf ==============================" rm -f $(OUTPUT_FILE_PO) rm -f $(OUTPUT_FILE_RTF) release_rtf:$(OUTPUT_FILE_RTF) @echo "=============================== release ${PROJECT_NAME} chm ==============================" cp -a $(OUTPUT_FILE_RTF) $(RELEASE_DIR_RTF) $(COMPRESS_TOOL) $(COMPRESS_FLAG) $(RELEASE_DIR_RTF)/$(PROJECT_NAME).$(subst release_,,$@).$(COMPRESS_SUF) $(OUTPUT_FILE_RTF) clean_release_rtf: @echo "=============================== cleaning ${PROJECT_NAME} rtf release ==============================" rm -f $(RELEASE_DIR_RTF)/* ################################################################################ # html ################################################################################ $(OUTPUT_FILE_HTML): $(MAIN_SRC_FILE) $(SUB_SRC_FILES) $(MAKE_FILE) @echo "=============================== generating ${PROJECT_NAME} html ==============================" export XML_CATALOG_FILES="$(XML_CATALOG_FILES)" && \ export XML_DEBUG_CATALOG=1 && \ $(XSLT) $(XSLT_FLAGS_HTML_LOCAL) -o $@ $(XSL_NS_FILE_HTML) $< @#cat $(INSERT_JS_FILE_LOCAL) >> $(OUTPUT_FILE_HTML) #cp -a $(CSS_DIR) $(OUTPUT_DIR_HTML)/ #cp -a $(SYS_IMG_SRC_DIR) $(SYS_IMG_DST_DIR) cp -a $(IMG_DIR) $(OUTPUT_DIR_HTML)/ #rm -rf $(SYS_IMG_DST_DIR) #here Here add clean before output file is to makesure NOT use the possbile existed one which is created by 'make release' html: clean_html $(OUTPUT_FILE_HTML) clean_html: @echo "=============================== cleaning ${PROJECT_NAME} html ==============================" rm -rf $(OUTPUT_DIR_HTML)/* #release_html:$(OUTPUT_FILE_HTML) release_html: $(MAIN_SRC_FILE) $(SUB_SRC_FILES) $(MAKE_FILE) @echo "=============================== release ${PROJECT_NAME} html ==============================" export XML_CATALOG_FILES="$(XML_CATALOG_FILES)" && \ export XML_DEBUG_CATALOG=1 && \ $(XSLT) $(XSLT_FLAGS_HTML_RELEASE) -o $(OUTPUT_FILE_HTML) $(XSL_NS_FILE_HTML) $< @#cat $(INSERT_JS_FILE_RELEASE) >> $(OUTPUT_FILE_HTML) #cp -a $(CSS_DIR) $(OUTPUT_DIR_HTML)/ #cp -a $(SYS_IMG_SRC_DIR) $(SYS_IMG_DST_DIR) cp -a $(IMG_DIR) $(OUTPUT_DIR_HTML)/ #rm -rf $(SYS_IMG_DST_DIR) cp -a $(OUTPUT_DIR_HTML)/* $(RELEASE_DIR_HTML) $(COMPRESS_TOOL) $(COMPRESS_FLAG) $(RELEASE_DIR_HTML)/$(PROJECT_NAME).$(subst release_,,$@).$(COMPRESS_SUF) $(OUTPUT_DIR_HTML)/* #clean_release_html: clean_release_html: clean_html @echo "=============================== cleaning ${PROJECT_NAME} html release ==============================" rm -rf $(RELEASE_DIR_HTML)/* ################################################################################ # txt ################################################################################ $(OUTPUT_FILE_TXT): $(OUTPUT_FILE_HTML) @echo "=============================== generating ${PROJECT_NAME} txt ==============================" w3m -I UTF8 -O UTF8 -dump $(OUTPUT_FILE_HTML) > $(OUTPUT_FILE_TXT) unix2dos $(OUTPUT_FILE_TXT) txt: $(OUTPUT_FILE_TXT) clean_txt: @echo "=============================== cleaning ${PROJECT_NAME} txt ==============================" rm -f $(OUTPUT_FILE_TXT) release_txt:$(OUTPUT_FILE_TXT) @echo "=============================== release ${PROJECT_NAME} txt ==============================" cp -a $(OUTPUT_FILE_TXT) $(RELEASE_DIR_TXT) $(COMPRESS_TOOL) $(COMPRESS_FLAG) $(RELEASE_DIR_TXT)/$(PROJECT_NAME).$(subst release_,,$@).$(COMPRESS_SUF) $(OUTPUT_FILE_TXT) clean_release_txt: @echo "=============================== cleaning ${PROJECT_NAME} txt release ==============================" rm -f $(RELEASE_DIR_TXT)/* ################################################################################ # htmls ################################################################################ $(OUTPUT_FILE_HTMLS):$(MAIN_SRC_FILE) $(SUB_SRC_FILES) $(MAKE_FILE) @echo "=============================== generating ${PROJECT_NAME} htmls ==============================" export XML_CATALOG_FILES="$(XML_CATALOG_FILES)" && \ export XML_DEBUG_CATALOG=1 && \ $(XSLT) $(XSLT_FLAGS_HTMLS_LOCAL) -o $@ $(XSL_NS_FILE_HTMLS) $< #cp -a $(CSS_DIR) $(OUTPUT_DIR_HTMLS)/ #cp -a $(SYS_IMG_SRC_DIR) $(SYS_IMG_DST_DIR) cp -a $(IMG_DIR) $(OUTPUT_DIR_HTMLS)/ #rm -rf $(SYS_IMG_DST_DIR) #here Here add clean before output file is to makesure NOT use the possbile existed one which is created by 'make release' htmls: clean_htmls $(OUTPUT_FILE_HTMLS) clean_htmls: @echo "=============================== cleaning ${PROJECT_NAME} htmls ==============================" rm -rf $(OUTPUT_DIR_HTMLS)/* .PHONY:release_htmls release_htmls:$(MAIN_SRC_FILE) $(SUB_SRC_FILES) $(MAKE_FILE) @echo "=============================== release ${PROJECT_NAME} htmls ==============================" export XML_CATALOG_FILES="$(XML_CATALOG_FILES)" && \ export XML_DEBUG_CATALOG=1 && \ $(XSLT) $(XSLT_FLAGS_HTMLS_RELEASE) -o $(OUTPUT_FILE_HTMLS) $(XSL_NS_FILE_HTMLS) $< #cp -a $(CSS_DIR) $(OUTPUT_DIR_HTMLS)/ #cp -a $(SYS_IMG_SRC_DIR) $(SYS_IMG_DST_DIR) cp -a $(IMG_DIR) $(OUTPUT_DIR_HTMLS)/ #rm -rf $(SYS_IMG_DST_DIR) cp -a $(OUTPUT_DIR_HTMLS)/* $(RELEASE_DIR_HTMLS) $(COMPRESS_TOOL) $(COMPRESS_FLAG) $(RELEASE_DIR_HTMLS)/$(PROJECT_NAME).$(subst release_,,$@).$(COMPRESS_SUF) $(OUTPUT_DIR_HTMLS)/* clean_release_htmls: @echo "=============================== cleaning ${PROJECT_NAME} htmls release ==============================" rm -rf $(RELEASE_DIR_HTMLS)/* ################################################################################ # webhelp ################################################################################ # webhelp: # @echo "=============================== generating ${PROJECT_NAME} webhelp ==============================" # ant webhelp #above has set this value #webhelp: WEBHELP_OTHER_XSLTPROC_ARGS = $(XSLT_FLAGS_WEBHELP) #webhelp: WEBHELP_OTHER_XSLTPROC_ARGS += $(XSLT_FLAGS_WEBHELP_LOCAL) webhelp: $(MAIN_SRC_FILE) $(SUB_SRC_FILES) $(MAKE_FILE) webhelp_copyfiles webhelp_chunk webhelp_index @echo "=============================== generating ${PROJECT_NAME} webhelp ==============================" webhelp_copyfiles: -rm -rf $(OUTPUT_DIR_WEBHELP) mkdir -p $(OUTPUT_DIR_WEBHELP) @#cp -r $(TOOLS_XSL_NS_WEBHELP)/template/common ${OUTPUT_DIR_WEBHELP} cp -a $(IMG_DIR) $(OUTPUT_DIR_WEBHELP) test ! -d $(IMG_DIR)/ || cp -a $(IMG_DIR)/ ${OUTPUT_DIR_WEBHELP} cp $(TOOLS_XSL_NS_WEBHELP)/template/favicon.ico ${OUTPUT_DIR_WEBHELP}/ webhelp_chunk: xsltproc \ --output xincluded-profiled.xml \ --stringparam profile.arch ${PROFILE.ARCH} \ --stringparam profile.audience ${PROFILE.AUDIENCE} \ --stringparam profile.condition ${PROFILE.CONDITION} \ --stringparam profile.conformance ${PROFILE.CONFORMANCE} \ --stringparam profile.lang ${PROFILE.LANG} \ --stringparam profile.os ${PROFILE.OS} \ --stringparam profile.revision ${PROFILE.REVISION} \ --stringparam profile.revisionflag ${PROFILE.REVISIONFLAG} \ --stringparam profile.role ${PROFILE.ROLE} \ --stringparam profile.security ${PROFILE.SECURITY} \ --stringparam profile.status ${PROFILE.STATUS} \ --stringparam profile.userlevel ${PROFILE.USERLEVEL} \ --stringparam profile.vendor ${PROFILE.VENDOR} \ --stringparam profile.wordsize ${PROFILE.WORDSIZE} \ --stringparam profile.attribute ${PROFILE.ATTRIBUTE} \ --stringparam profile.value ${PROFILE.VALUE} \ $(TOOLS_XSL_NS_PROFILING)/profile.xsl \ $(MAIN_SRC_FILE) xsltproc --debug ${WEBHELP_OTHER_XSLTPROC_ARGS} $(WEBHELP_XSL_FILE) xincluded-profiled.xml rm xincluded-profiled.xml webhelp_index: java \ -DhtmlDir=$(OUTPUT_DIR_WEBHELP) \ -DindexerLanguage=$(WEBHELP_INDEX_LANGUAGE) \ -DhtmlExtension=html \ -DdoStem=true \ -DindexerExcludedFiles=$(INDEXER_EXCLUDED_FILES) \ -Dorg.xml.sax.driver=org.ccil.cowan.tagsoup.Parser \ -Djavax.xml.parsers.SAXParserFactory=org.ccil.cowan.tagsoup.jaxp.SAXFactoryImpl \ -classpath $(WEBHELP_CLASSPATH) \ com.nexwave.nquindexer.IndexerMain mkdir -p ${OUTPUT_DIR_WEBHELP}/search cp -r $(TOOLS_XSL_NS_WEBHELP)/template/search/* ${OUTPUT_DIR_WEBHELP}/search clean_webhelp: @echo "=============================== cleaning ${PROJECT_NAME} webhelp ==============================" @#ant clean -rm -rf $(OUTPUT_DIR_WEBHELP) #overwrite default from local to release release_webhelp: WEBHELP_OTHER_XSLTPROC_ARGS = $(XSLT_FLAGS_WEBHELP) release_webhelp: WEBHELP_OTHER_XSLTPROC_ARGS += $(XSLT_FLAGS_WEBHELP_RELEASE) release_webhelp: webhelp @echo "=============================== release ${PROJECT_NAME} webhelp ==============================" mkdir -p $(RELEASE_DIR_WEBHELP) - cp -a $(OUTPUT_DIR_WEBHELP)/* $(RELEASE_DIR_WEBHELP) - $(COMPRESS_TOOL) $(COMPRESS_FLAG) $(RELEASE_DIR_WEBHELP)/$(PROJECT_NAME).$(subst release_,,$@).$(COMPRESS_SUF) $(OUTPUT_DIR_WEBHELP)/* clean_release_webhelp: @echo "=============================== cleaning ${PROJECT_NAME} webhelp release ==============================" rm -rf $(RELEASE_DIR_WEBHELP)/* ################################################################################ # chm ################################################################################ $(OUTPUT_FILE_HTMLHELP):$(MAIN_SRC_FILE) $(SUB_SRC_FILES) @echo "=============================== generating ${PROJECT_NAME} chm ==============================" export XML_CATALOG_FILES="$(XML_CATALOG_FILES)" && \ export XML_DEBUG_CATALOG=1 && \ $(XSLT) $(XSLT_FLAGS_CHM) -o $@ $(XSL_NS_FILE_HTMLHELP) $< #cp -a $(CSS_DIR) $(OUTPUT_DIR_CHM)/ #cp -a $(SYS_IMG_SRC_DIR) $(SYS_IMG_DST_DIR) cp -a $(IMG_DIR) $(OUTPUT_DIR_CHM)/ #rm -rf $(SYS_IMG_DST_DIR) $(OUTPUT_FILE_CHM):$(OUTPUT_FILE_HTMLHELP) $(OUTPUT_DIR_CHM)/htmlhelp.hhp $(OUTPUT_DIR_CHM)/toc.hhc -iconv -f UTF-8 -t GB18030 < $(OUTPUT_DIR_CHM)/htmlhelp.hhp > $(OUTPUT_DIR_CHM)/htmlhelp_gb18030.hhp -mv $(OUTPUT_DIR_CHM)/htmlhelp_gb18030.hhp $(OUTPUT_DIR_CHM)/htmlhelp.hhp -iconv -f UTF-8 -t GB18030 < $(OUTPUT_DIR_CHM)/toc.hhc > $(OUTPUT_DIR_CHM)/toc_gb18030.hhc -mv $(OUTPUT_DIR_CHM)/toc_gb18030.hhc $(OUTPUT_DIR_CHM)/toc.hhc @# here use '-' to ignore the hhc error @# case 1: normal run hhc will return 1 -> makefile consider it error -> will got Error 1 @# case 2: for office environment, there is no hhc -> will got Error 127 - hhc $(OUTPUT_DIR_CHM)/htmlhelp.hhp chm: $(OUTPUT_FILE_CHM) clean_chm: @echo "=============================== cleaning ${PROJECT_NAME} chm ==============================" rm -rf $(OUTPUT_DIR_CHM)/* release_chm:$(OUTPUT_FILE_CHM) @echo "=============================== release ${PROJECT_NAME} chm ==============================" - cp -a $(OUTPUT_FILE_CHM) $(RELEASE_DIR_CHM) - $(COMPRESS_TOOL) $(COMPRESS_FLAG) $(RELEASE_DIR_CHM)/$(PROJECT_NAME).$(subst release_,,$@).$(COMPRESS_SUF) $(OUTPUT_FILE_CHM) clean_release_chm: @echo "=============================== cleaning ${PROJECT_NAME} chm release ==============================" rm -f $(RELEASE_DIR_CHM)/* ################################################################################ # clean all generated files clean_all: clean_pdf clean_rtf clean_html clean_txt clean_htmls clean_chm clean_webhelp # clean all released files clean_release: clean_release_pdf clean_release_rtf clean_release_html clean_release_txt clean_release_htmls clean_release_chm clean_release_webhelp # clean all of generated and released files clean:clean_release clean_all ################################################################################ help: @echo 'Generate targets:' @echo ' all - Generate files to ouput folders for all formats:' @echo ' pdf/rtf/html/txt/htmls/chm' @echo ' release - Copy generated files to release folders for all formats:' @echo ' pdf/rtf/html/txt/htmls/chm' @echo ' FORMAT - Generate specific format file to ouput folder for' @echo ' - FORMAT=pdf/rtf/html/txt/htmls/chm' @echo ' release_FORMAT - do release for FORMAT=pdf/rtf/html/txt/htmls/chm' @echo 'Cleaning targets:' @echo ' clean - Clean generated files and released files for all format' @echo ' == clean_release clean_all' @echo ' clean_all - Clean generated files for all format' @echo ' clean_FORMAT - Clean for FORMAT=pdf/rtf/html/txt/htmls/chm' @echo ' clean_release - Clean released files for all format' @echo ' clean_release_FORMAT - Clean release for FORMAT=pdf/rtf/html/txt/htmls/chm'
(2)E:\Dev_Root\docbook\dev\config\docbook-xsl-ns-1.78.1\webhelp\webhelp_crl.xsl
内容如下:
<?xml version="1.0"?> <!DOCTYPE stylesheet [ <!ENTITY xsl_ns_version "docbook-xsl-ns-1.78.1"> <!-- HOME --> <!-- <!ENTITY xsl_ns_path "E:/Dev_Root/docbook/tools/docbook-xsl-ns-1.77.1"> --> <!-- <!ENTITY config_path "E:/Dev_Root/docbook/dev/config/docbook-xsl-ns-1.77.1"> --> <!ENTITY xsl_ns_path "E:/Dev_Root/docbook/tools/&xsl_ns_version;"> <!ENTITY config_path "E:/Dev_Root/docbook/dev/config/&xsl_ns_version;"> <!-- OFFICE --> <!--<!ENTITY xsl_ns_path "D:/tmp/tmp_dev_root/cgwin/home/CLi/develop/docbook/tools/docbook-xsl-ns-1.77.1">--> <!--<!ENTITY config_path "D:/tmp/tmp_dev_root/cgwin/home/CLi/develop/docbook/config/docbook-xsl-ns-1.77.1">--> <!-- ONLINE --> <!--<!ENTITY xsl_ns_path "https://www.crifan.com/files/res/docbook">--> <!--<!ENTITY config_path "https://www.crifan.com/files/res/docbook">--> ]> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:d="http://docbook.org/ns/docbook" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns:exsl="http://exslt.org/common" xmlns:set="http://exslt.org/sets" version="1.0" exclude-result-prefixes="doc exsl set d"> <!-- <xsl:import href="file:///E:/Dev_Root/docbook/tools/docbook-xsl-ns-1.77.1/webhelp/xsl/webhelp.xsl"/> --> <xsl:import href="webhelp.xsl"/> <!-- when use cygwin xsltproc, follow href value not need file:/// --> <!-- <xsl:import href="file:///&config_path;/common_all.xsl"/> --> <xsl:import href="&config_path;/common_all.xsl"/> <!--<xsl:import href="file:///E:/Dev_Root/docbook/dev/config/docbook-xsl-ns-1.77.1/html/multi/chunk_crl.xsl"/>--> <!-- desitinate the dir of webhelp common resource currently those resources include common/ and favicon.ico --> <!--<xsl:param name="webhelp.common.dir">E:/Dev_Root/docbook/tools/docbook-xsl-ns-1.77.1/webhelp/docs/common/</xsl:param>--> <!--<xsl:param name="webhelp.common.dir">&xsl_ns_path;/webhelp/docs/common/</xsl:param>--> <!-- for webhelp.common.dir have two mode: online and local, so can not set fixed value here --> <!-- so webhelp.common.dir is configured in E:\Dev_Root\docbook\dev\config\docbook.mk --> <!-- <xsl:param name="webhelp.common.dir">&xsl_ns_path;/webhelp/template/common/</xsl:param> --> <!-- custom css file path --> <!-- 1.78.1 have rename custom.css.path to custom.css.source --> <!-- http://docbook.sourceforge.net/release/xsl/1.78.1/doc/html/custom.css.source.html --> <!-- for custom.css.source have two mode: online and local, so can not set fixed value here --> <!-- so custom.css.source is configured in E:\Dev_Root\docbook\dev\config\docbook.mk --> <!-- <xsl:param name="custom.css.source">&config_path;/html/css/common_html.css</xsl:param> --> <!-- <xsl:param name="custom.css.source">https://www.crifan.com/files/res/docbook/css/common_html.css</xsl:param> --> <xsl:param name="webhelp.autolabel">1</xsl:param> <xsl:param name="chapter.autolabel">1</xsl:param> <xsl:param name="appendix.autolabel">0</xsl:param> <xsl:param name="qandadiv.autolabel">1</xsl:param> <xsl:param name="reference.autolabel">1</xsl:param> <xsl:param name="navig.showtitles">1</xsl:param> <!-- http://docbook.sourceforge.net/release/xsl/1.78.0/doc/html/docbook.css.link.html --> <!-- docbook.css.link — Insert a link referencing the default CSS stylesheet --> <!-- <xsl:param name="docbook.css.link">1</xsl:param> --> <!-- remove warning: Request for label of unexpected element: bibliodiv --> <xsl:template match="d:bibliodiv" mode="label.markup"> <xsl:if test="@label"> <xsl:value-of select="@label"/> </xsl:if> </xsl:template> <!--============================================================================ try add google analytics tracking code =============================================================================--> <!-- http://www.sagehill.net/docbookxsl/InsertExtHtml.html --> <xsl:template name="user.header.content"> <!-- when use cygwin xsltproc, follow href value not need file:/// --> <!-- <xsl:variable name="google_analytics_js" select="document('file:///&config_path;/html/js/crifan_ga_js.xml')"/> --> <xsl:variable name="google_analytics_js" select="document('&config_path;/html/js/crifan_ga_js.xml')"/> <xsl:copy-of select="$google_analytics_js/ga_js/node()"/> </xsl:template> </xsl:stylesheet>
(3)E:\Dev_Root\docbook\dev\config\docbook-xsl-ns-1.78.1\webhelp\webhelp.xsl
内容如下:
<?xml version="1.0"?> <!DOCTYPE stylesheet [ <!ENTITY xsl_ns_version "docbook-xsl-ns-1.78.1"> <!-- HOME --> <!-- <!ENTITY xsl_ns_path "E:/Dev_Root/docbook/tools/docbook-xsl-ns-1.77.1"> --> <!-- <!ENTITY config_path "E:/Dev_Root/docbook/dev/config/docbook-xsl-ns-1.77.1"> --> <!ENTITY xsl_ns_path "E:/Dev_Root/docbook/tools/&xsl_ns_version;"> <!ENTITY config_path "E:/Dev_Root/docbook/dev/config/&xsl_ns_version;"> <!-- OFFICE --> <!--<!ENTITY xsl_ns_path "D:/tmp/tmp_dev_root/cgwin/home/CLi/develop/docbook/tools/docbook-xsl-ns-1.77.1">--> <!--<!ENTITY config_path "D:/tmp/tmp_dev_root/cgwin/home/CLi/develop/docbook/config/docbook-xsl-ns-1.77.1">--> ]> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:d="http://docbook.org/ns/docbook" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns:exsl="http://exslt.org/common" xmlns:set="http://exslt.org/sets" version="1.0" exclude-result-prefixes="doc exsl set d"> <!-- ******************************************************************** $Id$ ******************************************************************** This file is part customization layer on top of the XSL DocBook Stylesheet distribution that generates webhelp output. ******************************************************************** --> <!-- <xsl:import href="../../xhtml/chunk.xsl"/> <xsl:include href="webhelp-common.xsl"/> <xsl:include href="titlepage.templates.xsl"/> --> <!--<xsl:import href="file:///E:/Dev_Root/docbook/tools/docbook-xsl-ns-1.77.1/xhtml/chunk.xsl"/>--> <!-- when use cygwin xsltproc, follow href value not need file:/// --> <!-- <xsl:import href="file:///&xsl_ns_path;/xhtml/chunk.xsl"/> --> <xsl:import href="&xsl_ns_path;/xhtml/chunk.xsl"/> <xsl:include href="webhelp-common.xsl"/> <xsl:include href="titlepage.templates.xsl"/> </xsl:stylesheet>
(4)余下的webhelp-common.xsl,titlepage.templates.xsl,以及xhtml/chunk.xsl等内容,都是:
docbook-xsl-ns-1.78.1自带的,都没有修改。
目前的效果是:
(1)Firefox
(2)IE10
(3)Chrome
目前现存的一些问题:
(1)在docbook.mk中传入xsltproc的
–stringparam xxx yyy
有些没起效果。
此现象,之前就遇到,根本原因,暂时未知。
抽空再研究。
【总结】
目前已经搞定了,本地的webhelp的所有的内容了。
然后,继续去测试,编译出来的,release版本的webhelp,即针对在线的webhelp,是否正常显示:
【记录】docbook的docbook-xsl-ns-1.78.1中的webhelp:将webhelp上传到在线网站确认是否显示正常
转载请注明:在路上 » 【记录】docbook的docbook-xsl-ns-1.78.1中的webhelp:优化使得共用之前的chunk等公共的xsl配置