แพคเกจ slimish_jinja ให้ไวยากรณ์แม่แบบที่บางเฉียบสำหรับ Jinja2 ไดนามิก {{เนื้อหา}}
การติดตั้ง
ฉันจะได้รับการอัปโหลดไปยัง PyPi เร็ว ๆ นี้ จากนั้นโคลนที่เก็บ ตัวอย่างของการใช้มันเป็น `ขยาย Jinja2 (jinja_demo.py)` มี `กระติกน้ำ (flask_demo.py)` และ standalone` (convert.py และ demo.py) `มีการรวม
ถ้าคุณต้องการที่จะใช้เพื่อวัตถุประสงค์อื่นใด, `lexer - lexer.py` และ` parser - parser.py` เป็นง่ายพอ `lexer` อ่านข้อมูลโดยเส้นและสร้างสัญญาณ `parser` ใช้มือรีด parser โคตร recursive
สำหรับการอ้างอิงอย่างรวดเร็วนี้บาง ::
& nbsp; & nbsp; & nbsp; ! 5
& nbsp; & nbsp; & nbsp; html ที่
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; หัว
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Inline เนื้อหาแบบคงที่
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ชื่อเรื่อง
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ชื่อ -block
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; | Slimish-Jinja ตัวอย่าง
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / แท็กปิดตัวเองที่มีลักษณะ
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ชื่อเมตา = "คำหลักเนื้อหา" = "ภาษาแม่"
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; สคริปต์
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Empty แท็ jinja
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; @block สคริปต์
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / 'id' และ 'ชั้น' ทางลัด
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ร่างกาย # home.fluid.liquid
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / เนื้อหาคงที่ซ้อนกัน
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; h1
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; | นี่คือส่วนหัวของฉัน
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / 'div' กับ 'id' และ 'ชั้น' ทางลัด
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # contents.main
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / แท็ก html เปล่า
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; % div
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; P เนื้อหาแบบไดนามิก =
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; พี
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; | ซ้อน dyanmic เนื้อหา =
เยื้องซ้ายถูกเก็บรักษาไว้ในบล็อกข้อความ
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / ผสม html ที่ดีเช่นกัน
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; พี
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; | ThoughtNirvana >
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / คุณลักษณะแบบไดนามิก
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ชั้น ul = "= user_class"
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Jinja แท็ก
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ผู้ใช้เผื่อผู้ใช้
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; li = user.name
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ถ้า user.last_name
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; li = user.last_name
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; -elif user.middle_name
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; li = user.middle_name
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; -else
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; li ไม่มีผู้ใช้พบว่า
แปลงไป:
& nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% บล็อกชื่อ%}
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Slimish-Jinja ตัวอย่าง
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% Endblock%}
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ก
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; นี่คือส่วนหัวของฉัน
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ซ้อน dyanmic {{}} เนื้อหา & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; เยื้องซ้ายถูกเก็บรักษาไว้ในบล็อกข้อความ
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% สำหรับผู้ใช้ในผู้ใช้%}
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% ถ้า user.last_name%}
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% elif user.middle_name%}
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% endif%}
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% อื่น%}
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% endfor%}
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp;
รายละเอียดซอฟแวร์: