2017-07-27 4 views
0

私はこれをコンパイルしよう:Pug.jsのテンプレートのDjangoのforステートメントを正しくスペルするには?

doctype html 
html(lang="en") 
    head 
    meta(http-equiv = "Content-Type " content ="text/html ;charset=utf-8") 
    title = category.name 
    body 
    h1 Сьпiс таварау 
    h2 Катэгорыi: 
    ul 
     for cat in cats 
     li: a(href='/goods/{{cat.id}}/') {{cat.name}} 
     endfor 
    h2 Тавары 
    table 
     tr 
     th Назва 
     th Есьць у наяунасьцi 
     for good in goods 
     tr 
      td a(href = '/goods/good/{{good.id}}/'){{good.name}} 
     endfor    

私はこのエラーを取得:当初、私はそれがif文でないように、このfor cat in catsは通常、 {% for cat in cats %}にコンパイルすることを考え

Error: index.pug:10:7 
    8|  h2 Катэгорыi: 
    9|  ul 
    > 10|  {% for cat in cats %} 
--------------^ 
    11|   li: a(href='/goods/{{cat.id}}/') {{cat.name}} 
    12|  endfor 
    13|  h2 Тавары 

unexpected text "{% fo" 
    at makeError (/home/ivan/Documents/node-v6.11.0-linux-x64/lib/node_modules/pug-cli/node_modules/pug-error/index.js:32:13) 
    at Lexer.error (/home/ivan/Documents/node-v6.11.0-linux-x64/lib/node_modules/pug-cli/node_modules/pug-lexer/index.js:58:15) 
    at Lexer.fail (/home/ivan/Documents/node-v6.11.0-linux-x64/lib/node_modules/pug-cli/node_modules/pug-lexer/index.js:1304:10) 
    at Lexer.advance (/home/ivan/Documents/node-v6.11.0-linux-x64/lib/node_modules/pug-cli/node_modules/pug-lexer/index.js:1364:15) 
    at Lexer.callLexerFunction (/home/ivan/Documents/node-v6.11.0-linux-x64/lib/node_modules/pug-cli/node_modules/pug-lexer/index.js:1319:23) 
    at Lexer.getTokens (/home/ivan/Documents/node-v6.11.0-linux-x64/lib/node_modules/pug-cli/node_modules/pug-lexer/index.js:1375:12) 
    at lex (/home/ivan/Documents/node-v6.11.0-linux-x64/lib/node_modules/pug-cli/node_modules/pug-lexer/index.js:12:42) 
    at Object.lex (/home/ivan/Documents/node-v6.11.0-linux-x64/lib/node_modules/pug-cli/node_modules/pug/lib/index.js:99:27) 
    at Function.loadString [as string] (/home/ivan/Documents/node-v6.11.0-linux-x64/lib/node_modules/pug-cli/node_modules/pug-load/index.js:44:24) 
    at compileBody (/home/ivan/Documents/node-v6.11.0-linux-x64/lib/node_modules/pug-cli/node_modules/pug/lib/index.js:86:18) 

を、それをpug.jsのように思えますが、私はpugjs.orgで見つけることができない特別な構文が必要ですが、ここではPugjs official websiteの構文は私と同じです:

for a in b 
    = a 
+1

これは意味をなさない。 Pugは、HTMLを出力するJavascriptプリプロセッサのようです。どのようにDjangoテンプレートでそれを使うつもりですか? Djangoはテンプレートをレンダリングする機会はどこにありますか? –

+0

@DanielRoseman特別なプラグインもあります。 https://github.com/matannoam/pypugjs Pugは、sassのようなhtmlの前処理言語であり、cssの前処理言語は少なく、coffeeやtypescriptはjsの前処理言語です。 – NiHao92

+0

@DanielRoseman基本的に、私はHTMLの終了タグをすべて入れるのは面倒です.Pugには必要ありません。 DjangoでPugテンプレートをレンダリングすることができない場合でも、pugで書いてpugでhtmlにコンパイルする .pugはまだ時間を節約します – NiHao92

答えて

0

SOこれは単なる暗示ですが、ちょうどすべてのあなたのジャンゴは、私があまりにも簡単なパグにプロトタイピングのフロントエンドを使って実験した後、出力を使用してきた|文字

を追加することにより、プレーンテキストとして読み込みをタグ付けすることを確認してください私のテンプレートのために、これはうまくいくようです

まだ私はpypugjsを試していませんが、元のレポがpyjadeからorginallyフォークした男によって削除されているようです。

+0

私はpypugjsを復活させました:https://github.com/kakulukia/pypugjs それを使って、このプロジェクトテンプレートを使用してセットアップを行い、準備を整えます:https://github.com/kakulukia/django-default-project –

0

このテンプレートには複数のエラーがあります。そこには終了タグがパグ構文にありませんし、私はそれを好きな理由thatsのことを

doctype html 
html(lang="en") 
    head 
    meta(http-equiv="Content-Type", content="text/html ;charset=utf-8") 
    title= category.name 
    body 
    h1 Сьпiс таварау 
    h2 Катэгорыi: 
    ul 
     for cat in cats 
     li: a(href='/goods/{{ cat.id }}/') {{ cat.name }} 
    h2 Тавары 
    table 
     tr 
     th Назва 
     th Есьць у наяунасьцi 
     for good in goods 
     tr 
      td 
      a(href='/goods/good/{{good.id }}/') {{ good.name }} 

は注意:ここ は正しいバージョンです! :) また、間にスペースを入れずに、というタイトル=に気付くと、これが壊れています。また、inside()のパラメータはカンマで区切らなければなりません。

関連する問題