我尝试使我的Evoque模板有一些颜色编码,
但是我得到的html已经被lt-gt逸出了

我读过应该有一个不再引用的课
但我找不到evoque.quoted包

我的目标是避免从模板中逃脱出来的html,而是“真实的”。

from pygments import highlight
from pygments.lexers import get_lexer_by_name
from pygments.formatters import HtmlFormatter
from evoque.domain import Domain
import os


tmpl="""

$begin{code}
    ${codyfy(evoque(name=label), lang=label.split()[0][1:])}
$end{code}

$begin{c 0}
    int main(void){printf("hello world");return 0;}
$end{c 0}

$begin{python 0}
    print "hello world"
$end{python 0}

$evoque{#code, label="#c 0"}
$evoque{#code, label="#python 0"}
"""
td = Domain(os.path.abspath("."))
def codyfy(src,lang="python"):
    return highlight(src,get_lexer_by_name(lang, stripall=True),HtmlFormatter())

td.set_on_globals('codyfy',codyfy)
td.set_template("testtmpl", src=tmpl, from_string=True)
t = td.get_template("testtmpl")
print t.evoque()

最佳答案

您是否尝试过使用raw=True?看到:


http://evoque.gizmojo.org/howto/source/


我以前没有使用过Qpy,但也许此注释会有所帮助:


  Defining custom quoted-no-more classes
  
  [...]还强烈建议下载并安装Qpy unicode模板实用程序,该实用程序提供qpy.xml Quoted-No-More类来自动进行转义。 [...]

09-08 05:49