npm 包 gulp-front-matter 使用教程

阅读时长 5 分钟读完

如果你常常使用 gulp 和静态网站生成器(如 Jekyll),你会发现在前端开发中,需要频繁处理 YAML/JSON 格式的 Front Matter,并需要在这些数据基础上生成网站内容。在这种情况下,npm 包 gulp-front-matter 能够很好地帮你解决这个问题。

什么是 gulp-front-matter?

gulp-front-matter 是一个 Gulp 插件,用于处理 Markdown、HTML 和其他模板文件中 YAML/JSON 格式的 Front Matter 数据。它会提取 YAML/JSON 数据,把数据存入文件的一个 frontMatter 属性中,并把处理后的文件传递给 Gulp 流程中的下一个插件。可以通过 frontMatter 属性读取文件的 YAML/JSON 数据,用于进一步生成网站内容。

安装

你需要先安装 gulpgulp-front-matter。在项目目录下,运行以下命令:

使用 gulp-front-matter

假设你有一个 article.md 文件,内容如下:

-- -------------------- ---- -------
---
------ ----
------- ---
----- ----------
-----
  - ---------
  - -----------
---

- ----

-----------

你可以使用 gulp-front-matter 提取这个 Markdown 文件中的 YAML 数据与正文内容。

-- -------------------- ---- -------
----- ---- - ----------------
----- ----------- - -----------------------------
----- -------- - -------------------------
----- ---- - ---------------------

--------------- ---------- -
  ------ ------------------------
    -------------------- -- -- ---- --
    ----------------- -- - -------- --- ----
    --------------------- -----
      ------
        ------
          ----------------------------------------
        -------
        ------
          ------
            ----------------------------------
            ----------------------------------
          -------
          ----------- ------------------------------
          -------- ----------------------------
        -------
      ---------- -- ------
    ---------------------------
---

在代码中,我们先用 gulp.src() 读取 article.md 文件,然后使用 gulp-front-matter 中的 frontMatter() 方法提取 YAML 数据。数据被存储在文件对象的 frontMatter 属性中。紧接着,我们使用 gulp-markdown 把 Markdown 转换成 HTML。最后,我们使用 gulp-wrap 在 HTML 内容的基础上,生成一个带有文章元数据的 HTML 文件,最终输出到 ./dist 目录下。

如果你想使用 Mustache 或者 Handlebars 等模板引擎来生成网站内容,你可以用 gulp-wrapfile: 方式传递文件对象(包含 YAML 数据与文件内容),如下所示:

-- -------------------- ---- -------
--------------- ---------- -
  ------ ------------------------
    -------------------- -- -- ---- --
    ----------------- -- - -------- --- ----
    --------------------- -----
      ------
        ------
          ------------------------
        -------
        ------
          ------
            ------------------
            ---------------------
          -------
          ----------- --------------
          -------- ------------
        -------
      --------- ----- -------- ------------- -- -------- ----
    ---------------------------
---

总结

gulp-front-matter 让提取 YAML/JSON 数据变得简单,我们可以轻松地生成静态网站并方便地配置网站元数据。此外,gulp-front-matter 不仅适用于 Markdown 文件,也适用于 HTML, Haml, Jade 和 EJS 等模板文件。它在开发单页网站、博客和其他静态页面时非常实用。

参考代码

例子代码存放在 GitHub 上。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66392

纠错
反馈