如何在asciidoc fop中合并或禁用脚注链接

5

我有一个相当庞大的asciidoc文档,用于我们的开发人员指南。由于该文档经常涉及在我们的开发人员指南中记录的Java类,因此我们直接将它们转换为链接,例如:

In this block we create a new 
https://www.codenameone.com/javadoc/com/codename1/ui/Form.html[Form] 
named `hi`. 

这在大多数情况下运作良好,并且在HTML中看起来很棒,因为每个类的引用都直接指向它的JavaDoc,使得引用/指南过程更加简单。

然而当我们生成PDF时,在某些页面上会出现像这样的情况:

脚注地狱

通常我并不介意有很多脚注甚至是从前一页复制过来的。然而,在这种情况下,对Container的链接出现了3次。

我可以删除一些链接,但我宁愿不这样做,因为它们在Web版本中非常有意义。由于我也不知道页面断点会在哪里,所以我不想自己操作。

在我看来,这似乎是一个bug,如果链接相同,则链接的脚注应该只生成一次。

如果需要,我可以删除文档中的所有链接脚注,尽管我更希望能够根据情况进行选择,保留一些链接可供打印。


1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - lfurini
那么我猜这是asciidoc需要隐藏的问题。这正是我所问的...请注意,我刚刚使用了asciidoc的超链接语法。在asciidoc中是否有一种方法可以禁用至少某些情况下超链接的脚注? - Shai Almog
据我所知,为了生成PDF输出,AsciiDoc会将其源文本转换为DocBook XML,然后使用DocBook XSLT样式表将其转换为XSL-FO。我认为您需要自定义XSLT样式表或以某种方式对中间的DocBook XML或XSL-FO文件进行后处理。 - mzjn
Antenna House FO处理器(非免费)有一个扩展功能,似乎可以实现您所需要的内容:http://www.antennahouse.com/xslfo/axf4-extension.htm#axf.suppress-duplicate-footnote。 - mzjn
我们是一个开源项目,虽然我不介意为某些过于昂贵的软件付费!我可以预处理asciidoc文件,并根据一些逻辑删除一些链接。但我宁愿不这样做。 - Shai Almog
2个回答

2
在fo-pdf.xsl中添加这两个参数可以删除脚注:
<xsl:param name="ulink.footnotes" select="0"></xsl:param>
<xsl:param name="ulink.show" select="0"></xsl:param>

第一个参数禁用脚注,会触发URL重新出现在行内。
第二个参数从文本中删除URL。链接仍然是活动的和可点击的。
非零值切换这些参数。
来源:
http://docbook.sourceforge.net/release/xsl/1.78.1/doc/fo/ulink.show.html

1
我们在寻找一种类似的解决方案,但情境略有不同,却没有找到合适的。最终我们编写了一个处理器,仅仅是去掉一些链接,例如在以“===”开头的部分中指向相同URL的每个链接。

虽然不是理想的解决方式,但据我所知这是唯一的方法。


谢谢,这不是我想要选为答案的,因为我希望得到一个asciidoc格式的答案,但由于缺乏答案,我猜这已经尽可能接近了。如果有更好的答案出现,我会把它作为被采纳的答案。 - Shai Almog

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接