рдПрдХ рдирдИ рд▓рд╛рдЗрди (\ n) рд╡рд░реНрдг рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░рд╕реНрддреБрдд рдЖрдЙрдЯрдкреБрдЯ рднреА рдПрдХ рдиреНрдпреВрд▓рд╛рдЗрди рд╡рд░реНрдг рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдПрдХ рдЕрдиреБрдЧрд╛рдореА рдиреНрдпреВрд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдкрд╛рда рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП UNIX рдЬреИрд╕реА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рдПрдХ рдорд╛рдирдХ рд╕рдореНрдореЗрд▓рди рд╣реИред
рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдЕрдВрддрд┐рдо рдиреНрдпреВрд▓рд╛рдЗрди рдЫреАрди рд▓реА рдЧрдИ рд╣реИред
>>> c
u'foo is {{ foo }}\nquux is {{ quux }}\nasdf\n'
>>> t = jinja2.Template(c)
>>> t.render(foo="bar", quux="baz")
u'foo is bar\nquux is baz\nasdf'
>>> s = t.stream()
>>> s.next()
u'foo is \nquux is \nasdf'
>>> s.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ifreeman/.local/lib/python2.7/site-packages/jinja2/environment.py", line 1271, in __next__
return self._next()
StopIteration
>>>
keep_trailing_newline=True
рдХреЛ Environment
: http://jinja.pocoo.org/docs/api/#jinja2.Environment
рдареАрдХ рд╣реИ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдерд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддрд░реАрдХреЛрдВ рд╕реЗ рдЗрдирдкреБрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рднрд╛рд╖рд╛ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЗрд╕рд▓рд┐рдП рдЦреЛрд▓ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдореЗрдВ рдХреБрдЫ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд┐рдВрдЯреЛ-рдХреНрд▓реА (https://github.com/istrategylabs/shinto-cli) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рдиреНрдпреВрд▓рд╛рдЗрди рдХреЗ рдмрд┐рдирд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЬрдм рдореИрдВ рдЙрдирд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд▓рд╛рдЗрди рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдХреНрд╡рд┐рд╢ рдХреА рдЧрдИ рд▓рд╛рдЗрдиреЗрдВ рд╣реЛрддреА рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рд╢рд┐рдВрдЯреЛ-рдХреНрд▓реА рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ рджреЗрдЦрд╛, рдФрд░ рдлрд┐рд░ рдкрд╛рдЗрдерди рдЖрд░рдИрдкреАрдПрд▓ рд╕реЗ рдореВрд▓ рдЬрд┐рдиреНрдЬрд╛ 2 рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬрд┐рдиреНрдЬрд╛ 2 рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред
рдореИрдВ рд╢рд┐рдВрдЯреЛ-рдХреНрд▓реА рдХреЗ рд╕рд╛рде рдпрд╣ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рдЕрдкрдиреЗ рд╕рднреА рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЙрд▓реЛрдВ рдореЗрдВ Keep_trailing_newline=True рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдареАрдХ рд╣реИ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдерд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддрд░реАрдХреЛрдВ рд╕реЗ рдЗрдирдкреБрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рднрд╛рд╖рд╛ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЗрд╕рд▓рд┐рдП рдЦреЛрд▓ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдореЗрдВ рдХреБрдЫ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд┐рдВрдЯреЛ-рдХреНрд▓реА (https://github.com/istrategylabs/shinto-cli) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рдиреНрдпреВрд▓рд╛рдЗрди рдХреЗ рдмрд┐рдирд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЬрдм рдореИрдВ рдЙрдирд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд▓рд╛рдЗрди рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдХреНрд╡рд┐рд╢ рдХреА рдЧрдИ рд▓рд╛рдЗрдиреЗрдВ рд╣реЛрддреА рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рд╢рд┐рдВрдЯреЛ-рдХреНрд▓реА рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ рджреЗрдЦрд╛, рдФрд░ рдлрд┐рд░ рдкрд╛рдЗрдерди рдЖрд░рдИрдкреАрдПрд▓ рд╕реЗ рдореВрд▓ рдЬрд┐рдиреНрдЬрд╛ 2 рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬрд┐рдиреНрдЬрд╛ 2 рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред
рдореИрдВ рд╢рд┐рдВрдЯреЛ-рдХреНрд▓реА рдХреЗ рд╕рд╛рде рдпрд╣ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рдЕрдкрдиреЗ рд╕рднреА рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЙрд▓реЛрдВ рдореЗрдВ Keep_trailing_newline=True рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВред