有没有办法在Harp.js中使用Jade块?

Lee*_*Lee 2 javascript harp pug

我正在使用Harp创建一个站点,我想知道是否有一种方法可以使用Jade块和正常的!= yield工作方式.基本上,对于页面特定的脚本,我想将一个块传递给我的布局.目前,无论我在模板中的块中拥有什么,都会被传递到我的布局中.

例如:

// _layout.jade
html
  head
    title Hello, world
  body
    != yield
    div Random delimiter
    block scripts

// index.jade
h1 Hello, world
block scripts
  script(src='/some/script.js').
  div Not working
Run Code Online (Sandbox Code Playgroud)

输出:

<html>
  <head>
    <title>Hello, world</title>
  </head>
  <body>
    <h1>Hello, world</h1>
    <div>Not working</div>
    <div>Random delimiter</div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Jor*_*ret 5

是的,你可以这样做:

// _custom_layout.jade
html
  head
    title Hello World
  body
    block main_content
      //- Default main content
    div Delimiter
    block scripts
      //- Default scripts here
Run Code Online (Sandbox Code Playgroud)

// index.jade
extends _custom_layout.jade
block main_content
  h1 Hello From Index
block scripts
  script(src='/some/script.js').
Run Code Online (Sandbox Code Playgroud)

这应该输出

<html>
  <head>
    <title>Hello World</title>
  </head>
  <body>
    <h1>Hello From Index</h1>
    <div>Delimiter</div>
    <script src="/some/script.js"></script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)
  • 要利用jade的block功能,请使用其他内容,_layout.jade因为该文件名在Harp中具有已定义的用途.您必须使用自定义模板分配给页面_data.json.

我没有测试过这段代码,如果它有任何问题请注释,我会解决它.