Skip to main content

Bonelate 是一个基于 pyparsing 针对 LaTeX 的 mustache 模版语言变种的实现。

Project description

Bonelate

standard-readme compliant

Bonelate 是一个针对 LaTeX 的轻逻辑模版解析引擎,类似于 mustache。 与采取 mustache 的其他模版解析引擎相比(例如chevron或pymustache), Bonelate 针对 LaTeX 的语法做了很多优化,使 LaTeX 模板文件在不渲染的情况下也可使用 LaTeX 工具编译通过。

优势

Bonelate 针对 LaTeX 的语法设计了模板标记符, 使用 LaTeX 中非特殊字符作为标记符,例如{{!partial}}中的!, 从而在不解析渲染的情况下直接通过 LaTeX 引擎编译也不会报错。

安装 Downloads

这个项目使用 Python 开发,请确保你本地安装了它。

使用PyPI安装

$ pip install bonelate[all]

源码安装

$ git clone git@gitee.com:zrr1999/bonelate.git
$ cd bonelate
$ pip install .

使用说明

支持语法

  1. 模板变量渲染 {{keyName}}
  2. 模板块渲染 {{!keyName}}sth.{{/keyName}} 以!开始、以/结束表示模板块,它会根据当前上下文中的键值来对区块进行一次或多次渲染。 它的功能很强大,有类似if、foreach的功能。
  3. 失效渲染{{?keyName}} {{/keyName}} 该语法与模板块渲染类似,不同在于它是当keyName值为空或否定值时才渲染输出该区块内容。
  4. 视图渲染 {{.}} 可以循环输出整个数组。

简单示例

运行如下代码

from bonelate import render, parse

test_string = r"\LaTeX{} is a {{var}} typesetting system.{{!vars}}.{{/vars}}"
print(render(test_string, {
    "var": "high-quality",
    "vars": range(10),
}))

得到渲染结果

\LaTeX{} is a high-quality typesetting system...........

命令行示例

如果你的环境变量中有 python 脚本目录,你可以使用

$ bonelate render ./examples/ml_work

如果没有的话,你需要使用如下命令

$ python bonelate render ./examples/ml_work

更新日志

0.1.2 (2021.5.14)

  1. 优化了插件接口。
  2. 修复了无法解析嵌套模板的问题。
  3. 修改了render指令用法

0.1.1 (2021.5.5)

  1. 完善了README中的用法描述。
  2. 增加了分隔符特性,{{var:sep}}。
  3. 遍历渲染改为判断对象是否为Iterable。
  4. 添加了用于处理Sympy公式的插件。
  5. 修复部分bug。

0.1.0 (2021.5.2)

  1. 重构 tokenizer,现在命名为parser。
  2. 增加了 partial 语法。
  3. 增加了 docs 目录。
  4. 增加了更多例子。
  5. 修改了单元测试。

0.0.2 (2021.4.29)

  1. 不再兼容mustache语法。
  2. 增加了命令行指令。
  3. 增加了更多例子。
  4. 添加了单元测试(不完全)。
  5. 修复了大括号内的内容不能正常解析的问题。
  6. 修复了模板变量中含有空白符不能正常解析的问题。

维护者

@六个骨头

如何贡献

非常欢迎你的加入!提一个 Issue 或者提交一个 Pull Request。

贡献者

感谢以下参与项目的人:

使用许可

MIT © Rongrui Zhan

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Bonelate-0.1.2.tar.gz (8.1 kB view hashes)

Uploaded Source

Built Distribution

Bonelate-0.1.2-py3-none-any.whl (10.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page