如何在docutils HTML模板中包含%符号

1 投票
2 回答
1255 浏览
提问于 2025-04-15 13:27

我想用rst2html生成HTML页面,并且想用我自己的模板。这些模板里有很多百分号,比如在

<TABLE border="0" cellpadding="0" cellspacing="0" width="100%">

现在,当我用这个命令调用rst2html时

rst2html --template=layout2.tpl rst/index.rst > index.html

我遇到了一个错误

ValueError: unsupported format character '"' (0x22) at index 827

我发现问题在于rst2html把%"当成了一个占位符。

我已经尝试在模板中对%进行转义,比如

<TABLE border="0" cellpadding="0" cellspacing="0" width="100\%">

但这样做没有用,错误还是一样。

所以我想知道怎么解决这个问题。任何帮助都非常感谢!

2 个回答

0

我对此有点怀疑,不过也许XML命令CDATA可以用。

<![CDATA[
...
]]>

我用它来在XML文档中存储PayPal按钮,然后用PHP把它们插入进去。

7

你有没有试过一些简单的方法:用'%'来转义'%'?

这里是正常的字符串格式化,用来在结果中显示百分号:

>>> print "%d%%" % 100
100%

也许rst2html也是这样?(我没有在rst2html中试过这个——我没有安装它。)

好吧,现在我安装了docutils。这对我有效:

layout2.tpl:

<TABLE border="0" cellpadding="0" cellspacing="0" width="100%%">

命令行:

C:\Python26\Lib\site-packages>python C:\Python26\Lib\site-packages\docutils-0.5-
py2.6.egg\EGG-INFO\scripts\rst2html.py --template=c:\temp\layout2.tpl
^Z
<TABLE border="0" cellpadding="0" cellspacing="0" width="100%">

所以结果应该是你想要的,我相信。

撰写回答