Python 可能的变化Mako';s内联开始/结束语法?
我一直在使用Jinja2来创建和呈现Bash脚本的模板(除其他外),但我一直没有像Mako那样提供完整python的功能 目前阻止我使用Mako的原因似乎很简单,那就是Mako的内联begin/endPython 可能的变化Mako';s内联开始/结束语法?,python,template-engine,jinja2,mako,Python,Template Engine,Jinja2,Mako,我一直在使用Jinja2来创建和呈现Bash脚本的模板(除其他外),但我一直没有像Mako那样提供完整python的功能 目前阻止我使用Mako的原因似乎很简单,那就是Mako的内联begin/end${/}语法与Bash自己的语法冲突(而Jinja2没有冲突) 所以我想知道的是:是否有任何方法可以将Mako的begin/end${/}语法更改为其他语法,其中其他语法与Bash不冲突 (否则,我是否遗漏了一些明显的内容?通过以下方式运行模板: from mako.template import
${
/}
语法与Bash自己的语法冲突(而Jinja2没有冲突)
所以我想知道的是:是否有任何方法可以将Mako的begin/end${
/}
语法更改为其他语法,其中其他语法与Bash不冲突
(否则,我是否遗漏了一些明显的内容?通过以下方式运行模板:
from mako.template import Template
import re
def bash_preprocessor(source):
source = re.sub(r"\${(.+?)}", r"${'${'}\1${'}'}", source)
source = re.sub(r"\^\[(.+?)\]", r"${\1}", source)
return source
t = Template("""
BAR='hi'
BAT='^[hoho]'
PATH='/path/to/crap'
EXECUTABLE=${PATH}/${BAR}/${BAT}
""", preprocessor=bash_preprocessor)
print t.render(hoho="boo")