gpt4 book ai didi

python - 可能更改 Mako 的内联开始/结束语法?

转载 作者:行者123 更新时间:2023-11-28 18:51:55 24 4
gpt4 key购买 nike

我一直在使用 Jinja2 来创建和呈现 Bash 脚本的模板(以及其他),但我一直怀念在 Mako 中使用完整的 Python 的强大功能。

目前阻止我使用 Mako 的事情似乎相当微不足道,那就是 Mako 的内联开始/结束 ${/} 语法与 Bash 自己的语法冲突(而 Jinja2 则没有)

所以我想知道的是:是否有任何方法可以将 Mako 的开始/结束 ${/} 语法更改为其他内容,其中其他内容是与 Bash 不冲突的东西。

(否则,我是否遗漏了一些明显的东西?)

最佳答案

通过 preprocessor 运行您的模板:

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")

关于python - 可能更改 Mako 的内联开始/结束语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11676839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com