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