npm 包 metalsmith-templates 使用教程

Metalsmith 是一个流行的静态网站生成器,可以通过插件扩展其功能。其中,metalsmith-templates 是一个重要插件,它提供了将源文件和元数据渲染为 HTML 页面的能力。

安装和使用

首先,确保已安装 Node.js 和 npm。然后,使用以下命令安装 metalsmith 和 metalsmith-templates:

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

接下来,在项目根目录下创建一个名为 src 的文件夹,并在其中添加源文件和模板文件。例如,假设有一个 src/index.md 文件和一个 src/template.hbs 模板文件,其中 template.hbs 是 Handlebars 模板。

下一步是在项目根目录下创建一个名为 build.js 的构建脚本,该脚本将配置 Metalsmith 并运行它。以下是一个示例脚本:

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

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

在此示例中,我们使用了 Handlebars 引擎,并指定模板目录为 src

最后,运行构建脚本:

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

如果一切顺利,生成的 HTML 文件将保存在 build 文件夹中。您可以在浏览器中打开其中任何一个文件来查看渲染结果。

模板语法

metalsmith-templates 支持多种模板引擎,包括 Handlebars、Jade、EJS 和 Swig。以下是一个示例 Handlebars 模板,用于渲染 src/index.md 文件:

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

在此示例中,我们使用了元数据中的 title 属性和源文件的 contents 属性来渲染页面标题和内容。

元数据

Metalsmith 使用 YAML 格式的元数据文件(通常命名为 metadata.yml),用于存储源文件的附加信息。这些信息可以在模板中使用,例如上面的示例中使用的 title 属性。

以下是一个示例 metadata.yml 文件:

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

要将元数据添加到源文件,请将其放置在文件顶部的 YAML 前置块中。例如:

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

- ----- --

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

插件

metalsmith-templates 将源文件和元数据渲染为 HTML 页面,但它并不负责处理其他任务,例如复制静态文件或压缩图像。这些任务通常由其他 Metalsmith 插件处理。

以下是一些与 metalsmith-templates 兼容的插件:

  • metalsmith-markdown:将 Markdown 文件转换为 HTML。
  • metalsmith-permalinks:为每个 HTML 页面生成永久链接。
  • metalsmith-assets:将静态文件复制到输出目录中。

结论

使用 metalsmith-templates,您可以轻松地将源文件和元数据渲染为 HTML 页面,并通过其他 Metalsmith 插件扩展其功能。希望本文能够帮助您入门 Metalsmith 并了解其强大的模板引擎。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/45534


猜你喜欢

  • npm 包 flushwritable 使用教程

    在前端开发过程中,我们经常需要处理各种数据流(如网络请求、文件读写等),而这些数据流的传输是异步进行的。Node.js 中提供了许多内置的可写流(Writable Stream)来方便我们处理这些数据...

    6 年前
  • npm 包 checksum 使用教程

    在前端开发中,我们经常需要使用npm包管理器来引入各种依赖库。然而,由于网络传输等原因,有时候我们下载的包可能会出现损坏或者被篡改等情况,这就会影响我们代码的正确性和安全性。

    6 年前
  • npm 包 gridfs-stream 使用教程

    简介 gridfs-stream 是一个基于 Node.js 的 npm 包,用于在 MongoDB 中存储和检索大型二进制文件,例如图像、音频和视频文件。它提供了一种方便的方式来将这些文件存储在 M...

    6 年前
  • NPM包koa-static使用教程

    在前端开发中,静态资源的处理是不可或缺的一环。而Koa.js是一个优秀的Node.js框架,提供了处理HTTP请求和响应的能力。koa-static是一个常用的NPM包,可以帮助我们在Koa中方便地处...

    6 年前
  • npm 包 koa-router 使用教程

    前言 Koa 是一个 Node.js 的 Web 开发框架,它的设计思想是中间件。而 koa-router 则是 Koa 的路由中间件之一,可以方便地进行路由管理。

    6 年前
  • npm包koa-mount使用教程

    简介 koa-mount是一个Node.js的中间件,它可以将子应用程序安装在父应用程序上。通过将子应用程序挂载到父应用程序的路径上,可以处理特定的请求并将其发送到子应用程序进行处理。

    6 年前
  • npm包koa-unless使用教程

    在Node.js后端开发中,Koa框架广受欢迎。而koa-unless是一个非常实用的npm包,它允许您轻松地排除一些特定的路由或路径不需要进行身份验证。本文将介绍koa-unless的使用方法、深入...

    6 年前
  • npm 包 koa-jwt 使用教程

    简介 koa-jwt 是一个用于 Koa 框架的 JSON Web Token (JWT) 身份验证中间件,它能够轻松地为您的 Koa 应用程序添加 JWT 身份验证功能。

    6 年前
  • npm 包 koa-compress 使用教程

    简介 koa-compress 是一个基于 Koa 的 Node.js 压缩中间件,用于压缩响应体,并减少传输的数据量。它支持 Gzip 和 Deflate 两种压缩方式,可以显著提高前端页面的加载速...

    6 年前
  • npm 包 mongodb 使用教程

    MongoDB 是一种流行的 NoSQL 数据库,它使用文档存储而不是传统的表格关系。npm 提供了一个名为 mongodb 的包,可以轻松地与 MongoDB 进行交互。

    6 年前
  • npm 包 kareem 使用教程

    简介 kareem 是基于 Node.js 的事件处理库,与 Mongoose 数据库驱动程序一起使用。它允许您定义模型的生命周期钩子,例如在保存之前或删除之后运行某些代码。

    6 年前
  • npm 包 regexp-clone 使用教程

    正则表达式是前端开发中经常使用的一种方法,但有时我们需要在多个地方使用同一个正则表达式。这时,为了避免重复编写代码,我们可以使用 npm 包 regexp-clone 来复制正则表达式。

    6 年前
  • npm包mquery使用教程

    简介 mquery是一款基于MongoDB的查询语言,它提供了一个简单而强大的方式来构建和解析查询。这个工具可以帮助我们更有效地操作MongoDB数据库,特别是在Node.js环境下。

    6 年前
  • npm 包 mpath 使用教程

    在前端开发中,我们经常需要从复杂的 JSON 对象中获取特定的数据。npm 包 mpath 是一款非常实用的工具,可以让我们更方便地操作 JSON 对象中的数据。 安装 使用 npm 可以很容易地安装...

    6 年前
  • npm包 mongoose-legacy-pluralize 使用教程

    简介 mongoose-legacy-pluralize是一个npm包,它提供了一个简单的方法来转换MongoDB集合名称。在Mongoose v5.0.0及以上版本中,集合名称默认会自动复数化。

    6 年前
  • npm 包 memory-pager 使用教程

    在前端开发过程中,我们通常需要处理大量的数据。在 JavaScript 中,内存管理是非常重要的一环。本文将介绍一个 npm 包 memory-pager,它可以帮助我们更有效地管理内存。

    6 年前
  • npm 包 sparse-bitfield 使用教程

    在前端开发中,我们经常需要处理大量的数据。当涉及到大规模的位操作时,使用稀疏位域数据结构可以显著减少内存消耗。在本文中,我们将介绍如何使用 npm 包 sparse-bitfield 来实现稀疏位域数...

    6 年前
  • npm 包 saslprep 使用教程

    在前端开发中,我们常常需要处理各种字符编码问题。其中,SASL (Simple Authentication and Security Layer) 是一种广泛用于电子邮件、LDAP 和 XMPP 等...

    6 年前
  • npm包require_optional使用教程

    在前端开发中,我们常常需要使用第三方模块来完成各种任务。npm作为世界上最大的软件注册表,提供了许多优秀的模块供我们使用。但是,有时候我们需要在某些特定环境下加载某个模块,这时候就需要使用requir...

    6 年前
  • npm 包 snappy 使用教程

    什么是 snappy? snappy 是一个高速压缩/解压缩库,主要用于 Google 的 LevelDB 和 RocksDB 数据库。snappy 可以压缩数据,使其更小并且在解压缩时不会影响读取速...

    6 年前

相关推荐

    暂无文章