Jinja: يتم تجريد السطر الجديد المتأخر من القالب عند التقديم.

تم إنشاؤها على ٢ مايو ٢٠١٨  ·  2تعليقات  ·  مصدر: pallets/jinja

سلوك متوقع

عند تقديم ملف ينتهي بحرف سطر جديد (\ 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
>>>

بيئتك

  • إصدار Python: 2.7.14+ (Debian buster / test)
  • إصدار Jinja: 2.10 (عبر نقطة)

التعليق الأكثر فائدة

حسنًا ، شكرًا على الرد ، لم أكن أدرك أن هذا كان خيارًا ، لكن يبدو أن هذا يجب أن يكون الخيار الافتراضي. يبدو من الغريب افتراض أن المستخدم يريد تعديل الإدخال بطرق غير متوقعة لا علاقة لها بلغة القالب. في الواقع ، سبب فتح هذه المشكلة هو أنني أستخدم shinto-cli (https://github.com/istrategylabs/shinto-cli) لوضع معلمات لبعض الملفات في وظيفة الإنشاء ، وقد لاحظت ذلك كان يخرج ملفات بدون أسطر جديدة ، لذلك عندما ألحق بهم ، أجد سطورًا مضغوطة معًا في سطر واحد. في البداية كنت سأفتح مشكلة مع shinto-cli حتى ألقيت نظرة خاطفة على المصدر ، ثم جربت قالب jinja2 أساسي من python REPL بنفسي وأدركت أن هذا مجرد سلوك افتراضي jinja2.

يمكنني فتح مشكلة مع shinto-cli لأطلب منهم إضافة الخيار keep_trailing_newline = True لجميع مكالمات البيئة الخاصة بهم.

ال 2 كومينتر

مرر keep_trailing_newline=True إلى Environment : http://jinja.pocoo.org/docs/api/#jinja2.Environment

حسنًا ، شكرًا على الرد ، لم أكن أدرك أن هذا كان خيارًا ، لكن يبدو أن هذا يجب أن يكون الخيار الافتراضي. يبدو من الغريب افتراض أن المستخدم يريد تعديل الإدخال بطرق غير متوقعة لا علاقة لها بلغة القالب. في الواقع ، سبب فتح هذه المشكلة هو أنني أستخدم shinto-cli (https://github.com/istrategylabs/shinto-cli) لوضع معلمات لبعض الملفات في وظيفة الإنشاء ، وقد لاحظت ذلك كان يخرج ملفات بدون أسطر جديدة ، لذلك عندما ألحق بهم ، أجد سطورًا مضغوطة معًا في سطر واحد. في البداية كنت سأفتح مشكلة مع shinto-cli حتى ألقيت نظرة خاطفة على المصدر ، ثم جربت قالب jinja2 أساسي من python REPL بنفسي وأدركت أن هذا مجرد سلوك افتراضي jinja2.

يمكنني فتح مشكلة مع shinto-cli لأطلب منهم إضافة الخيار keep_trailing_newline = True لجميع مكالمات البيئة الخاصة بهم.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات