Skip to main content

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

Project description

Bonelate

standard-readme compliant

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 项目。

安装Downloads

这个项目使用 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)

  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.0.2.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

Bonelate-0.0.2-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

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

Hashes for Bonelate-0.0.2.tar.gz
Algorithm Hash digest
SHA256 2bd7abbbaf237c7af9add603be2e0080bf48fd7481afc3324ad52bf786311dd8
MD5 630e4629fc6bdaa23e344c04828fb7c4
BLAKE2b-256 c8b3695859f0e666d7a2f00d3817feb2156f7f47bc3341e22307609ab9fe37b3

See more details on using hashes here.

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

Hashes for Bonelate-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 34570ad48fce3bb49f31a25861db5148adca2d14b8146172243a0573cbd28e3c
MD5 5562593e125c5def3a46cadfdf8fa1f1
BLAKE2b-256 967315cd894bd30cb666ef64e6a3946d6ffdcea34e8fa62829dd4362e51f0d49

See more details on using hashes here.

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