如何生成index.html,【记录】把Docbook所生成的htmls的主文件(入口文件)改为index.html...

之前用docbook生成htmls时,主文件,入口文件是 project_name.html

而不是index.html。

导致进入对应的文件夹,比如:

可以看到很多文件的列表:

d63be4610db23354c1a240487c854c2e.png

而不是直接打开对应的主文件:

54902293b136aa316eab295adc3d8bf1.png

而已经知道了,如果当前路径下面有index.html之类的入口文件的话,则会自动打开对应的主文件index.html的

即如果

下面有indx.html

则去访问

则会自动找到index.html并打开的

而不是由于找不到入口文件,只是显示文件列表。

此功能是由之前折腾过的:

【解决过程】

1.去自己的makefile中,把对应的htmls所生成的文件名从:

OUTPUT_FILE_HTMLS   = $(OUTPUT_DIR_HTMLS)/$(PROJECT_NAME).html

改为:

OUTPUT_FILE_HTMLS   = $(OUTPUT_DIR_HTMLS)/$(HTMLS_MAIN_FILENAME).html

其中:

HTMLS_MAIN_FILENAME = index

2.再去找docbook中,所生成的主文件名,如何从

$(PROJECT_NAME).html

变为index.html

然后就去:

找,这个:root.filename — Identifies the name of the root HTML file when chunking

好像有点关系。

3.然后就去看看对应的配置。

自己的xsl中:

E:\Dev_Root\docbook\dev\config\docbook-xsl-ns-1.77.1\html\multi\chunk_crl.xsl

没有这个配置。

是使用的官方标配的:

E:\Dev_Root\docbook\tools\docbook-xsl-ns-1.77.1\html\chunk.xsl

其中其又调用了:

E:\Dev_Root\docbook\tools\docbook-xsl-ns-1.77.1\html\chunk-common.xsl

E:\Dev_Root\docbook\tools\docbook-xsl-ns-1.77.1\html\chunk-code.xsl

最后是在后者中,找到了有root.filename。

不过其是使用此参数,而没有设置此参数的默认值。

4.所以,就去在自己的xsl中:

E:\Dev_Root\docbook\dev\config\docbook-xsl-ns-1.77.1\html\multi\chunk_crl.xsl

添加此参数:

结果却是没有起效果,主文件还是rec_soft_npp.html,而不是期望的index.html

5.然后又去看了看。

感觉,不知道,是不是由于之前把use.id.as.filename设置成1了,所以覆盖了此参数,所以去把use.id.as.filename改为0:

再去试试结果如何。

结果主文件还是rec_soft_npp.html。

6.然后就怀疑,是不是自己之前在makefile或者参数配置方面,写死了主文件的输出的名字了。

所以再去找找相关配置。

其中注意到,编译输出中,相关内容是:Writing ch03s18.html for sect1(npp_func_multi_themes)

Writing ch03s19.html for sect1(npp_func_misc)

Writing ch03.html for chapter(npp_function)

Writing bi01.html for bibliography(reference)

Writing rec_soft_npp.html for book

Writing rec_soft_npp.html.manifest

Catalogs cleanup

所以,去找找,哪里控制输出那个book的。

7.不过后来找到官网的解释了:Chunk filenames

Each chunk has to have a filename. The filename (before adding .html) can come from three sources, selected in this order:A dbhtml filename processing instruction embedded in the element.

If it is the root element of the document, then the chunk is named using the value of the parameter root.filename, which is index by default.

The chunk element’s id attribute value (but only if the use.id.as.filename parameter is set).

A unique name generated by the stylesheet.

所以,我这里,刚才把

use.id.as.filename设置为0了。

又设置了root.filename为index了

结果还是不对,那么只剩下,最可能的是,在stylesheet的某处,固定设置了对应的文件名了。

8.后来果然,在makefile中,找到了之前的,针对于htmls的配置:

–stringparam root.filename $(PROJECT_NAME)

所以,结果始终是rec_soft_npp.html

所以,makefile中去掉这行,xsl中保留之前的配置:

然后再去试试。

然后的确就可以了:Writing npp_function.html for chapter(npp_function)

Writing reference.html for bibliography(reference)

Writing index.html for book

Writing rec_soft_npp.html.manifest

Catalogs cleanup

9.然后再去把之前的模板中的,htmls的链接,也更新掉。

从:HTML

改为:HTMLs

【总结】

对于折腾docbook时,在xsl中配置参数 和 在makefile编译时通过–stringparam传递参数时,一定不能搞混了。

对于同一个参数,不能同时在两边都出现,否则很容易混乱的。

其实,最好的做法是,尽量都在xsl中配置。

而尽量少使用–stringparam。

这样对于参数配置方面,就尽量统一,不容易混淆出错了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值