我正在编写一个应用程序,其中一个功能是允许用户使用Markdown语法编写电子邮件模板.
除格式化外,用户必须能够使用占位符来处理在运行时被替换的几个变量.
这个目前的工作方式非常简单:模板有Pythonic%(var)的占位符,我在应用Markdown2格式之前用字典替换它们.
事实证明,这个系统的最终用户将是一个精通技术的用户,我不想让每个人都明白它是用Python编写的.
这不是我不喜欢Python ......我实际上认为Python是完成这项工作的完美工具,我只是不想向用户公开它(即使它是用Java编写的,也希望相同,Perl ,Ruby或其他任何东西).
因此,我想问一下您认为哪些是为用户公开占位符的最佳方式的见解:
你认为最好的占位符格式是什么(想象为$ {var},$(var)或#{var})?
替换这些占位符的最佳方法是什么?
我使用正则表达式来改变 - 例如 - $ {var}到%(var)s然后应用常规的Python模板替换,但我不确定这是最好的方法.
如果你这样做,如果你能指出我那个正则表达式的草稿,那将是非常好的.
谢谢!
更新:用户指出使用完整的模板系统,但我认为这可能不值得,因为我需要的是占位符替换:我不会有循环或类似的东西.
最后更新:我此时选择不使用任何模板引擎.我选择使用更简单的string.Template方法(正如hyperboreean的评论所指出的那样).事实是,我不喜欢选择解决方案,因为将来某个时候可能需要解决方案.我将把所有这些建议保留在我的袖子上,如果在应用程序的生命周期中明确需要它们提供的一个或多个功能,我将重新审视这个想法.现在,我真的觉得这太过分了.拥有完整的模板,最终用户可以根据自己的需要进行编辑,至少在我看来,更多的麻烦而不是受益.尽管如此,感觉更好的是我没有意识到我没有沿着这条道路前进的原因,而只是没有研究任何东西并选择它.
非常感谢所有的输入.
使用真实的模板工具:mako或jinja.不要自己动手.不值得.