2

Harp を使用してサイトを作成していますが、通常の != yield の作業方法と一緒に Jade ブロックを使用する方法があるかどうか疑問に思っていました。基本的に、ページ固有のスクリプトの場合、ブロックをレイアウトに渡したいと思います。現時点では、テンプレートのブロックにあるものはすべてそのままレイアウトに渡されます。

例えば:

// _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

出力:

<html>
  <head>
    <title>Hello, world</title>
  </head>
  <body>
    <h1>Hello, world</h1>
    <div>Not working</div>
    <div>Random delimiter</div>
  </body>
</html>

何か案は?

4

1 に答える 1

5

はい、次のようなことができます。

// _custom_layout.jade
html
  head
    title Hello World
  body
    block main_content
      //- Default main content
    div Delimiter
    block scripts
      //- Default scripts here

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

それは出力するはずです

<html>
  <head>
    <title>Hello World</title>
  </head>
  <body>
    <h1>Hello From Index</h1>
    <div>Delimiter</div>
    <script src="/some/script.js"></script>
  </body>
</html>
  • jade の機能を利用するには、そのファイル名が Harp で定義されているという理由block以外で何かを使用してください。_layout.jadeを使用してカスタム テンプレートをページに割り当てる必要があります_data.json

私はこのコードをテストしていません。何か問題があればコメントしてください。修正します。

于 2014-05-22T21:45:53.917 に答える