1

AssembleHandlebarsを使用して静的サイトを生成しています。{{> body}}メイン以外のコンテンツを追加する必要があるいくつかの例外を除いて、同じ一般的なレイアウトを使用するページがいくつかあります。

この一般的なページ構造を考えると:

<html>
<body>

<section>{{> body}}</section>

<!-- global scripts -->

</body>
</html>

と の間にindex.htmlマークアップを追加する必要がある場合、それを行う最善の方法は何ですか?<!-- global scripts --></body>

Gruntfile にパーシャルを含めると、次のようになります。

index: {
    options: {
        partials: ['source/partials/home/**/*.hbs'],
    },
    files: [{
        expand: true,
        cwd: 'source/pages/',
        src: '**/index.hbs',
        dest: 'output/'
    }],
},

このパーシャルは、タスク内の後続のすべてのアイテムで使用できますがassemble、これは絶対に望んでいません。これが単なる変数である場合、YML フロント マターまたはそのようなもので実行できますが、これは HTML とインライン JS のブロックであるため、フロント マターに配置するよりも少し多くなります。また、ブロックする必要があるため、JS 経由でこのマークアップを読み込むこともできません。

4

1 に答える 1

2

次のように、部分的に含める必要があるページのフロントマターに変数を追加できます。

specialHTML: true

次に、コードを追加します

{{#if specialHTML}}
    {{> mypartial }}
{{/specialHTML}}

そのため、frontmatter に「SpecialHTML」を設定した場合にのみ、パーシャルが追加されます。

于 2014-06-06T14:08:48.917 に答える