Feat: Create tex jinja2 environment
This commit is contained in:
parent
04db450ceb
commit
25b5bde823
31
bopytex/jinja2_env/texenv.py
Normal file
31
bopytex/jinja2_env/texenv.py
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# encoding: utf-8
|
||||||
|
|
||||||
|
import jinja2
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
"texenv",
|
||||||
|
]
|
||||||
|
|
||||||
|
# Definition of jinja syntax for latex
|
||||||
|
texenv = jinja2.Environment(
|
||||||
|
block_start_string=r"\Block{",
|
||||||
|
block_end_string="}",
|
||||||
|
variable_start_string=r"\Var{",
|
||||||
|
variable_end_string="}",
|
||||||
|
comment_start_string=r"\#{",
|
||||||
|
comment_end_string="}",
|
||||||
|
line_statement_prefix="%-",
|
||||||
|
line_comment_prefix="%#",
|
||||||
|
loader=jinja2.ChoiceLoader(
|
||||||
|
[
|
||||||
|
jinja2.FileSystemLoader(["./"]),
|
||||||
|
]
|
||||||
|
),
|
||||||
|
extensions=["jinja2.ext.do"],
|
||||||
|
)
|
||||||
|
|
||||||
|
# -----------------------------
|
||||||
|
# Reglages pour 'vim'
|
||||||
|
# vim:set autoindent expandtab tabstop=4 shiftwidth=4:
|
||||||
|
# cursor: 16 del
|
31
test/test_texenv.py
Normal file
31
test/test_texenv.py
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
from bopytex.jinja2_env.texenv import texenv
|
||||||
|
|
||||||
|
|
||||||
|
def test_variable_block():
|
||||||
|
base_template = r"\Var{a}"
|
||||||
|
jinja2_template = texenv.from_string(base_template)
|
||||||
|
output = jinja2_template.render(a=2)
|
||||||
|
assert output == "2"
|
||||||
|
|
||||||
|
|
||||||
|
def test_block_string():
|
||||||
|
base_template = r"\Block{set a = 2}\Var{a}"
|
||||||
|
jinja2_template = texenv.from_string(base_template)
|
||||||
|
output = jinja2_template.render()
|
||||||
|
assert output == "2"
|
||||||
|
|
||||||
|
|
||||||
|
def test_block_line_statement():
|
||||||
|
base_template = r"""%-set a = 2
|
||||||
|
\Var{a}"""
|
||||||
|
jinja2_template = texenv.from_string(base_template)
|
||||||
|
output = jinja2_template.render()
|
||||||
|
assert output == "2"
|
||||||
|
|
||||||
|
def test_block_line_statement_with_comment():
|
||||||
|
base_template = r"""%-set a = 2
|
||||||
|
%# comment
|
||||||
|
\Var{a}"""
|
||||||
|
jinja2_template = texenv.from_string(base_template)
|
||||||
|
output = jinja2_template.render()
|
||||||
|
assert output == "\n2"
|
Loading…
Reference in New Issue
Block a user