nodejs,jade多继承不起作用?

时间:2013-08-07 01:50:23

标签: node.js inheritance pug

我在继承方面有多个级别,

测试layout.jade

html
  head
    title My Site - #{title}
  body
    block content
    block foot
      #footer
        p some footer content

test.jade

extends test-layout

block content
  h1 titllllllllle
  p some text

测试child.jade

extends test

block content
  .sidebar
    li
      block sidebar
        p nothing
  .primary
    li
      block primary
        p nothing

测试孙子

extend test-child

block sidebar
  b this is grandson sidebar

block primary
  b this is grandson primary

输入http://*/test

我遇到了这个问题:

500 Error: F:\express\views\test\test-layout.jade:2
1| extends test-layout
> 2|
3| block content
4| h1 my titllllllllle
5| p some text unexpected token "indent"

输入http://*/test-child

我明白了:

extends test-layout

nothing

nothing

任何人都可以帮忙吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

首先,您可以更正test-grandson.jadeextendextends)中的类型。尽管如此,一个新的Jade-Version应该可以解决这个问题。您使用的是哪个版本?

我在Windows 7 64bit上运行Jade 0.34.1并得到了这个结果,这是我的预期:

<html>
  <head>
    <title>My Site - </title>
  </head>
  <body>
    <div class="sidebar">
      <li><b>this is grandson sidebar</b></li>
    </div>
    <div class="primary">
      <li><b>this is grandson primary</b></li>
    </div>
    <div id="footer">
      <p>some footer content</p>
    </div>
  </body>
</html>

问题起源于aaron文件的编码。他的文件用UTF-8编码,并由他的编辑附加UTF-8 BOM Mark。显然,Jade无法很好地处理这个标记,尽管这不是特别是Jade问题,而是更多的Node.js问题。

您可以通过在有问题的文件的开头添加空行来获得解决方法。否则,您将不得不找到一种从文件中剥离BOM标记的方法,这不是一件容易的事。

(已经有issue on the Jade GitHub repo

答案 1 :(得分:1)

我终于在github分叉了jade项目,并在这里提交了一个修复程序:

https://github.com/kiinoo/jade.git

我还向玉代码所有者发送了pull request,希望他们能尽快整合。