Metalsmith 是一个用于构建静态网站的 Node.js 工具。它使用插件来构建和转换文件,以实现各种功能。metalsmith-path-into-post 是一个 Metalsmith 插件,可以把 Markdown 文件的文件名和路径信息转换成文章的元数据,方便生成文章列表、分类、归档等功能。
本篇文章会详细介绍 metalsmith-path-into-post 插件的使用方法,以及如何在 Metalsmith 中集成它。
安装和配置
metalsmith-path-into-post 插件可以通过 npm 来安装。在项目根目录下执行以下命令即可:
npm install metalsmith-path-into-post --save-dev
安装完成后,在 Metalsmith 的配置文件中添加插件:
-- -------------------- ---- ------- --- ------------ - ------------------------------------- --------------------- -------------- --------------------- ------------------- ----- -------------- --- -------------------- - -- ----- ----- ---- ---
在这个例子中,我们把 Markdown 文件的路径转换为文章的标题,路径中的斜杠用标题中的空格代替。例如,如果有一个文件 posts/hello-world.md
,它会被转换成:
{ "title": "hello world", "path": "posts/hello-world.md" }
我们可以根据这些元数据来生成网站的导航菜单、页头等等。
高级用法
metalsmith-path-into-post 还支持更多的配置选项,以适应各种需求。下面介绍一些高级用法。
分类
如果项目中有多个分类,可以使用 category
选项来生成每个分类的文章列表。例如:
.use(pathIntoPost({ path: 'posts/:category/:title', category: ['tech', 'news'] }))
在这个例子中,我们定义了两个分类:tech
和 news
。如果有以下两个 Markdown 文件:
posts/tech/hello-tech.md posts/news/hello-news.md
它们会分别转换成以下元数据:
-- -------------------- ---- ------- -- ------------------------ - -------- ------ ------ ------- --------------------------- ----------- ------ - -- ------------------------ - -------- ------ ------ ------- --------------------------- ----------- ------ -
标签
如果项目中有多个标签,可以使用 tag
选项来生成每个标签的文章列表。例如:
.use(pathIntoPost({ path: 'posts/:tags/:title', tag: ['javascript', 'node'] }))
在这个例子中,我们定义了两个标签:javascript
和 node
。如果有以下两个 Markdown 文件:
posts/javascript/hello-js.md posts/node/hello-node.md
它们会分别转换成以下元数据:
-- -------------------- ---- ------- -- ---------------------------- - -------- ------ ---- ------- ------------------------------- ------- -------------- - -- ------------------------ - -------- ------ ------ ------- --------------------------- ------- -------- -
完整示例
以下是一个完整的 Metalsmith 配置文件的示例。它包含了 Metalsmith 的基本配置、Markdown 的解析和转换、metalsmith-path-into-post 插件的集成,以及生成 HTML 文件的插件:
-- -------------------- ---- ------- --- ---------- - ---------------------- --- -------- - ------------------------------- --- ------- - ------------------------------ --- ------------ - ------------------------------------- --------------------- ----------- --------- --- ----- -- -------------- --------------------- ------------ ---------------- ------------------- ----- --------------- --------- -------- -------- ---- -------------- ------- --- -------------- ------- ------------ --- -------------------- - -- ----- ----- ---- ---
结语
Metalsmith 是一个非常灵活的静态网站生成工具,它使用插件来实现各种功能。metalsmith-path-into-post 插件是其中之一,可以方便地把 Markdown 文件的文件名和路径信息转换成文章的元数据。通过配置不同的选项,我们可以实现更复杂的功能。希望这篇文章对你学习 Metalsmith 有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f411d8e776d08040d05