موتور نشانه‌گذاری جینجا

Jinja
نویسنده(های)
اصلی
آرمین روناچر
انتشار اولیه۱۷ ژوئیه ۲۰۰۸؛ ۱۵ سال پیش (۲۰۰۸-17}})[۱]
انتشار پایدار
3.1.4[۲] ویرایش در ویکی‌داده / ۵ مه ۲۰۲۴؛ ۱۸ روز پیش (۵ مه ۲۰۲۴-خطا: زمان نامعتبر}})
مخزن
نوشته‌شده باپایتون
نوعموتور الگو
مجوزپروانه‌های بی‌اس‌دی
وبگاهpalletsprojects.com/p/jinja/ ویرایش این در ویکی‌داده

جینجا (به انگلیسی: 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 &lt;unsafe&gt; data</title>
    </head>
    <body>
        1,
        2,
        3,
        4,
        5,
        6
    </body>
</html>

جستارهای وابسته ویرایش

منابع ویرایش

  1. "Jinja2 Release History". Retrieved 24 June 2020.
  2. "Release 3.1.4". 5 مه 2024. Retrieved 23 May 2024.
  3. DuPlain, Ron (2013-01-01). Instant Flask Web Development (به انگلیسی). Packt Publishing Ltd.
  4. «Welcome to Jinja2 — Jinja2 Documentation (2.8-dev)». jinja.pocoo.org. دریافت‌شده در ۲۰۱۶-۱۱-۱۲.
  5. «Template Designer Documentation — Jinja2 Documentation (2.8-dev)». jinja.pocoo.org. بایگانی‌شده از اصلی در ۱۳ نوامبر ۲۰۱۶. دریافت‌شده در ۲۰۱۶-۱۱-۱۲.

پیوند به بیرون ویرایش