macros - Asciidoctor 无法解析格式化文本:“<a data-type
问题描述
我正在使用以下命令运行 asciidoctor:
asciidoctor -r asciidoctor-pdf -b pdf master.asciidoc
它无法解析以下文本:
pass:[<a data-type="xref" data-xrefstyle="ct" href="#m1">#m1</a>]::
出现以下错误:
failed to parse formatted text: <a data-type="xref" data-xrefstyle="ct" href="#m1">#m1</a>
我该如何解决?
解决方案
正如文档所述,带有后端 PDF 的 Asciidoctor 对直通语法的支持有限。
Asciidoctor PDF 不支持任意直通内容。虽然 PDF 转换器的基本后端是 html,但它只能识别可以映射到 PDF 的内联 HTML 元素的有限子集(例如,a、strong、em、code、)。因此,如果您的内容包含直通块或内联,您很可能必须使用条件预处理器来跳过它们(并进行其他安排)。
虽然a
上面提到了标签,但一个小测试表明只支持基本语法。
使用下面的 adoc 文件...
= test pass
pass:[<em>#m1</em>]
pass:[<strong>#m1</strong>]
pass:[<code>#m1</code>]
pass:[<a href="#m1">#m1</a>]
pass:[<a href="#m1" data-type="xref" data-xrefstyle="ct">#m1</a>]
通过 asciidoctor pdf 后端运行它会产生与您在问题中已经提到的相同的错误。
$ asciidoctor -r asciidoctor-pdf -b pdf test.adoc
asciidoctor: ERROR: failed to parse formatted text: <a href="#m1" data-type="xref" data-xrefstyle="ct">#m1</a>
生成的 PDF 类似于下面的屏幕截图。简单的<a href="#m1">#m1</a>
行已正确转换。但是,一旦添加了更多属性,它就会失败。这与说明 pdf 后端无法识别高级 html 语法的文档是同步的。
要生成具有所需传递的 PDF,您可能需要将其转换为纯文本并将其通过asciidoctor
管道传输到wkhtmltopdf。
asciidoctor -o - test.adoc | wkhtmltopdf - test.pdf
结果使用如下所示的 html 外观和略小的正文。
推荐阅读
- shapes - Halcon - 获得分支分数
- bash - 尝试使用 awk 命令删除一些字符串
- java - 找不到基本名称的捆绑包警告
- javascript - Chrome 扩展:如何从活动选项卡中的控制台获取错误
- r - 如何估计函数中的参数?
- java - Java多维多类型数组(Map/List/Collection)?
- c++ - 如果匹配(从头开始),则删除字符串的第一部分的最简单方法?(使用升压是可以的)
- c++ - 我如何编写类似 std::variant 的开关之类的代码?
- r - R 4.0 使用 Rtools/ 而不是 rtools40/
- ansible - ansible-playbook 从文件中收集信息