1

フロントエンドの JavaScript テンプレート エンジンとしてnunjucks-renderを使用しています。

特定の .nunjuck ファイルから前頭葉データを読み取り、そのデータを使用して .nunjuck (テンプレート) ファイルを .html ファイルにコンパイルしたいと考えています。

少し調査した結果、gulp-gray-matterがより高速で優れた前頭葉物質抽出プラグインの 1 つであることがわかりました。

私の質問は次のとおりです。前頭葉のデータ オブジェクトにアクセスするにはどうすればよいですか?

たとえば、前頭の問題を .nunjucks ファイルに次のように記述します。

---
title: Welcome to ACME Co.
---

<title>{{ data.title }}</title>

最終的な HTML 出力は次のようになります。

<title>Welcome to ACME Co.</title>

私の gulfile.js 設定は次のとおりです。

var gulp = require('gulp'),
    nunjucks = require('gulp-nunjucks-render')
    gulpGrayMatter = require('gulp-gray-matter');

    gulp.task("nunjucks", function(){
        return gulp.src(src/templates/**/*.+(nunjucks|njk))
            .pipe(gulpGrayMatter()) //send files through gray-matter plugin to extract frontal-matter
            .pipe(nunjucks({
                path: src/templates
            })) 
            .pipe(gulp.dest(src));
    });
4

1 に答える 1

3

デフォルトでは、ストリーム内の各ファイルgulp-gray-matterのプロパティにすべての前付データが保存されます。data

また、デフォルトでは、ストリーム内の各ファイルgulp-nunjucks-renderのプロパティに存在するデータを使用します。data

したがって、実際には Gulpfile で特別なことをする必要はありません。これはうまくいきます:

gulp.task('nunjucks', function(){
    return gulp.src('src/templates/**/*.nunjucks')
        .pipe(gulpGrayMatter())
        .pipe(nunjucks()) 
        .pipe(gulp.dest('dest'));
});

.nunjuckただし、テンプレート内のデータに正しくアクセスする必要があります。

---
title: Welcome to ACME Co.
---

<title>{{ title }}</title>
于 2016-04-06T17:26:47.103 に答える