slimish_jinja包提供超薄的模板語法的Jinja2。
安裝
我將很快被上傳到PyPI中。屆時,克隆庫。使用它作為'Jinja2的擴展名(jinja_demo.py)`和`瓶(flask_demo.py)`和standalone`(convert.py和demo.py)的例子`捆綁。
如果你想將其用於任何其它目的,`詞法分析器 - lexer.py`和'分析器 - parser.py`是很簡單的。由線`lexer`讀取輸入並生成令牌。 `parser`實現了一個手捲遞歸下降解析器。
對於快速參考,這超薄::
    !5
    HTML
     頭
        /內嵌靜態內容。
       稱號
        - 塊標題
           | Slimish神社例
        /自動關閉標籤與屬性。
        META NAME =“關鍵詞”內容=“模板語言”
       腳本
          /空神社標籤。
          @block腳本
      /“ID”和“類”的快捷方式。
     體#home.fluid.liquid
        /嵌套靜態內容。
        H1
          |這是我的頭。
        /“格”與“ID”和“類”的快捷方式。
        #contents.main
          /空的HTML標籤。
          DIV%
          P =動態內容
          P
            |嵌套dyanmic =內容
左縮進被保存在文本塊。
          /混合HTML是好的為好。
          P
            |的 ThoughtNirvana
          /動態屬性。
          UL類=“= USER_CLASS”
            /神社標籤。
           在用戶 - 對於用戶
             李= user.name
              - 如果user.last_name
               李= user.last_name
              -elif user.middle_name
               李= user.middle_name
            -else
             李找不到用戶。
轉換為:
&NBSP;&NBSP;&NBSP; <!DOCTYPE HTML>
&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神社例
&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; <身體ID =“家”級=“流動液體”>
&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;的 ThoughtNirvana
&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
- {{user.name}}
- {{user.last_name}}
- {{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;&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;