Bonelate 是一个基于 pyparsing 针对 LaTeX 的 mustache 模版语言变种的实现。
Project description
Bonelate
Bonelate 是一个基于 pyparsing 针对 LaTeX 的类似 mustache 语言的模版渲染器。 与采取 mustache 的其他模板渲染器相比(例如chevron或pymustache), Bonelate 针对 LaTeX 的语法做了很多优化,使模板文件在不渲染的情况下也可使用 LaTeX 工具编译通过。同时Bonelate的实现极为简短,Tokenizer 类仅有 23 行,Renderer 类仅有51行。
背景
Bonelate 是从 BoneTeX 模板块分离出来的项目,可以独立使用。
优势
Bonelate 是参考 mustache 且针对 LaTeX 的语法微调了标记符,
原本的{{#partial}}
改为{{!partial}}
,从而在不渲染的情况下 LaTeX 编译时也不会报错。
通过 Bonelate,用户可以很方便的将现有 LaTeX 项目渐进地转换为 BoneTeX 项目。
安装
这个项目使用 Python 开发,请确保你本地安装了它。
使用PyPI安装
$ pip install bonelate
源码安装
$ git clone git@github.com:zrr1999/bonelate.git
$ cd bonelate
$ pip install .
使用说明
简单示例
from bonelate import render
test_string = """
{{!persons}}{{name}} is awesome.{{/persons}}
{{person}} is beautiful.
{{!is_person}}{{.}} is a person.{{/is_person}}
"""
print(render(test_string, {
"persons": [{"name": "Xiao Ming"}, {"name": "Yuan Long"}],
"person": "Xiao Ming",
"is_person": "Xiao Ming",
"not_person": False
}))
命令行示例
如果你的环境变量中有 python 脚本目录,你可以使用
$ bonelate render .\examples\ml_work\bonework.tex .\examples\ml_work\data.json
如果没有的话,你需要使用如下命令
$ python bonelate render .\examples\ml_work\bonework.tex .\examples\ml_work\data.json
更新日志
0.0.2 (2021.4.29)
- 不再兼容mustache语法。
- 增加了命令行指令。
- 增加了更多例子。
- 添加了单元测试(不完全)。
- 修复了大括号内的内容不能正常解析的问题。
- 修复了模板变量中含有空白符不能正常解析的问题。
维护者
如何贡献
非常欢迎你的加入!提一个 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
Built Distribution
File details
Details for the file Bonelate-0.0.2.tar.gz
.
File metadata
- Download URL: Bonelate-0.0.2.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2bd7abbbaf237c7af9add603be2e0080bf48fd7481afc3324ad52bf786311dd8 |
|
MD5 | 630e4629fc6bdaa23e344c04828fb7c4 |
|
BLAKE2b-256 | c8b3695859f0e666d7a2f00d3817feb2156f7f47bc3341e22307609ab9fe37b3 |
File details
Details for the file Bonelate-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: Bonelate-0.0.2-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34570ad48fce3bb49f31a25861db5148adca2d14b8146172243a0573cbd28e3c |
|
MD5 | 5562593e125c5def3a46cadfdf8fa1f1 |
|
BLAKE2b-256 | 967315cd894bd30cb666ef64e6a3946d6ffdcea34e8fa62829dd4362e51f0d49 |