موتور نشانهگذاری جینجا
نویسنده(های) اصلی | آرمین روناچر |
---|---|
انتشار اولیه | ۱۷ ژوئیه ۲۰۰۸[۱] |
انتشار پایدار | 3.1.4[۲]
/ ۵ مه ۲۰۲۴ |
مخزن | |
نوشتهشده با | پایتون |
نوع | موتور الگو |
مجوز | پروانههای بیاسدی |
جینجا (به انگلیسی: Jinja)(برگرفته از نام معبد شینتویی) یک موتور نشانهگذاری برای زبان برنامهنویسی پایتون است که تحت پروانه بیاسدی توسط برنامهنویس اتریشی آرمین روناچر ساخته شدهاست. از آنجا که که این موتور مبتنی بر متن میباشد در نتیجه میتواند در زبانهای نشانهگذاری همانند اچتیامال در برنامهها مورد استفاده قرار بگیرد.
موتور جینجا این امکان را میدهد تا بتوان برچسبها، فیلترها و … را شخصیسازی کرد و با توجه به اینکه در موتور نشانهگذاری جنگو امکان فراخوانی توابع وجود ندارد، جینجا این موضوع را میسر میسازد.
از جینجا به عنوان موتور نشانهگذاری پیشفرض در فلسک استفاده میشود.[۳]
ویژگیها
[ویرایش]برخی از ویژگیهای جینجا عبارتاند از:[۴]
- اجرای در محیط شنی (به منظور استفاده برای قطعه کدهایی که احتمالاً مخربند)
- بررسی و پاکسازی کدهای اچتیامال قدرتمند به صورت خودکار به منظور جلوگیری از حملات تزریق اسکریپت (XSS)
- ارثبری از الگوها
- اشکالزدایی آسان، به همراه اشاره به خطی که در آن خطا رخ داده است.
- امکان تنظیم Syntax
مثال
[ویرایش]
در زیر یک نمونه کوچک از فایل قالببندی example.html.jinja
قابل مشاهده است.[۵]
<!DOCTYPE html>
<html>
<head>
<title>{{variable|escape}}</title>
</head>
<body>
{%- for item in item_list %}
{{item}}{% if not loop.last %},{% endif %}
{%- endfor %}
</body>
</html>
و کد قالببندی:
from jinja2 import Template
with open('example.html.jinja') as f:
tmpl = Template(f.read())
print tmpl.render(
variable = 'Value with <unsafe> data',
item_list = [1, 2, 3, 4, 5, 6]
)
که در نهایت خروجی اچتیامال زیر تولید میشود:
<!DOCTYPE html>
<html>
<head>
<title>Value with <unsafe> data</title>
</head>
<body>
1,
2,
3,
4,
5,
6
</body>
</html>
جستارهای وابسته
[ویرایش]منابع
[ویرایش]
- ↑ "Jinja2 Release History". Retrieved 24 June 2020.
- ↑ "Release 3.1.4". 5 مه 2024. Retrieved 23 May 2024.
- ↑ DuPlain, Ron (2013-01-01). Instant Flask Web Development (به انگلیسی). Packt Publishing Ltd.
- ↑ «Welcome to Jinja2 — Jinja2 Documentation (2.8-dev)». jinja.pocoo.org. دریافتشده در ۲۰۱۶-۱۱-۱۲.
- ↑ «Template Designer Documentation — Jinja2 Documentation (2.8-dev)». jinja.pocoo.org. بایگانیشده از اصلی در ۱۳ نوامبر ۲۰۱۶. دریافتشده در ۲۰۱۶-۱۱-۱۲.
- مشارکتکنندگان ویکیپدیا. «Jinja (template engine)». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۱۴ نوامبر ۲۰۱۶.