0

当我尝试编译这个时:

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            

我收到此错误:

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)

最初我认为这for cat in cats 通常会编译成 {% for cat in cats %},就像它与if语句一样,但似乎 pug.js 需要一些更特殊的语法,我在 pugjs.org 上找不到,虽然这里Pugjs 官方网站上提供的语法是类似于我的:

for a in b
  = a
4

2 回答 2

1

此模板中有多个错误。这是正确的版本:

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 }}

请注意,pug 语法中没有结束标记,这就是我喜欢它的原因!:) 还要注意title=而不是中间有空格,这会破坏它。() 中的参数也必须用逗号分隔。

于 2018-01-12T10:02:38.437 回答
0

|所以这只是一个建议,但只需通过添加字符确保所有 django 标记都被读取为纯文本

我也一直在简单的 pug 中尝试原型前端,然后将输出用于我的模板,这似乎可行

我还没有尝试pypugjs,但似乎原始回购已被最初从 pyjade 分叉的人删除。

于 2018-01-10T11:28:54.087 回答