首页 > 解决方案 > Dita-OT:标记为 HTML 转义字符串/字符(特别是括号)

问题描述

一个工作日的后半段时间里,有些事情一直困扰着我:当我尝试保持括号完整时,在 Dita 中将降价到 HTML 转换过程中实际发生了什么。

具体来说,这是我原来的降价:

1. Value[:, :]

应该按原样用 HTML 编写。但是,查看 Dita 生成的 HTML 元素:

<li class="li">
 <p class="p">
   Value
   <span class="xref"></span>
 </p>
</li>

预期输出:

<li class="li">
 <p class="p">
   Value[:, :]
 </p>
</li>

这意味着括号被解释为外部引用(?)


我使用以下命令在 dita CLI 版本 3.1.2 (windows 10) 中生成我的降价到 HTML 转换:

dita --input=root.ditamap --output=./output --format=html5

root.ditamap 只包含一个主题,即我的降价文件。


我首先尝试了以下方法:

1)使用 \ 转义字符串,结果: 1. Value\[:, :\]

2)使用html实体代替括号(&#91;&#93;)导致:1. Value:, :

3) 使用 UTF 代码代替括号 ( &#x005B;and &#x005D;) 会导致: 1. Value:, :

然后我尝试在那里添加更多括号并且它起作用了!

4)有效的降价:1. Value[[]:, :[]]产生预期的输出1. Value[:, :]


我的问题:

1) 这三个部分中的哪一个负责这种行为:Markdown、Dita 或 HTML?(对于这种行为,我的意思是对括号的解释使它们在原始转换过程中消失)。

2)是否有“更好”/“通用”的方式来转义markdown中的字符串-> html by dita?(通过更好的方式,我的意思是使原始降价字符串的含义相同,而通用我的意思是可以应用于所有字符串的东西,而不仅仅是括号)

至少我希望我的发现对某人有用,即使我意识到我的用例非常具体。:)

标签: htmlescapingmarkdowndita

解决方案


推荐阅读