在前端开发中,我们经常需要将我们的博客或网站转换成 RSS、Atom 等格式的文档进行订阅和分享。metalsmith-feed-js 是一个用于生成这些文档的插件,它为我们提供了一种简便的方式来在 metalsmith 中添加 RSS 和 Atom 输出功能。本文将详细介绍如何使用 metalsmith-feed-js。
安装
在使用 metalsmith-feed-js 之前,你需要先安装 Node.js 和 metalsmith。安装完之后,我们可以通过 npm 来安装 metalsmith-feed-js:
npm install metalsmith-feed-js
配置
接下来,我们需要在我们的 metalsmith 配置中引用 metalsmith-feed-js:
-- -------------------- ---- ------- ----- ---------- - ---------------------- ----- ---- - ------------------------------ --------------------- ----------- ----------- ------- --------- --------------------- --------- ---------------------------- --- ------------ -- - -- ----- ----- ---- ------------------ ----------- ---
在这个示例中,我们使用了 collection
、site_url
和 feed_url
这三个 feed 插件的选项参数。collection
表示我们要用哪个 collection 来生成 feed,site_url
表示我们的网站 url,feed_url
表示我们的 feed url。如果我们的网站是 https 的,记住要添加 Https。
集合
首先,我们需要在 metalsmith 的 collections 配置中提供一个 blog 集合:
-- -------------------- ---- ------- ----- ---------- - --------------------- --------------------- ----------- ------ --- ------ ------------ --- ------- ----- -- -------------------- ----------------------- ------------------ ----- - -------- --------------- ----- ------- -------- ---- - --- ------------ -- - -- ----- ----- --- ------------------ ---------- --
这个配置会告诉 metalsmith 从 'content' 目录读取文件,并将文件构建到 'build' 目录。集合选项中,'pattern' 选项指定了我们要匹配的文件,这里匹配的是 'blog/**/*.md',因此我们需要在 'content' 目录下创建一个 'blog' 目录,并将我们的 markdown 文件保存在其中。
我们还指定了集合应如何排序。在这里,我们从传递的选项中使用 “date” 作为排序。
生成模板
我们需要创建一个模板来生成我们的 RSS 和 Atom feed。我们将创建两个模板,一个用于 RSS,另一个用于 Atom。
在我们的项目根目录下创建一个 'templates' 目录,在其中创建一个 'feed.xml' 文件:
-- -------------------- ---- ------- ----- ------------- ------------------ ----- ------------------------------------ --------- ---------- ---------- ----- -------- -------- ------------ ------------ ----- -------- -------- ------ ----------- ----------------------- ------------ ------ -------- -------- ------- ------------ ------- --------- ----- ---------- ----- -------- -------- ---- --------- ----- ------ -------- ---- --------- ------- ----------- ------------------ ------------ -------- -------------- ------- ------------ -------- --------- -------
我们做了几个事情:
- 我们使用组件中的
site.title
,site.url
,feed.date
和feed.items
。 - 我们使用 handlebars 模板引擎语法。
为了生成 RSS,我们需要创建一个名为 ‘rss.xml’ 的文件。这个文件与 'feed.xml' 的区别可以在以下代码中看到:
-- -------------------- ---- ------- ----- ------------- ---------------- -- ---- ------------- ----------------------------------------- --------- --------- ---------- ---------- -------- -------- --------- ---------- -------- -------- ----------- ---------- ---------------------------- --------------- ---------------- ---------------- ----------------- ----------------------- ------------------ ------- ------------ ------ --------- ----- ---------- -------- -------- ---- --------- --------- -------- -------- ---- --------- --------- ----------- ------------------ ------------ ---------------- ------- ----------------- ------- --------- ---------- ------
使用
现在,我们已经完成了在 metalsmith 中添加 RSS 和 Atom 输出功能的所有步骤,我们可以使用以下命令来运行并构建我们的项目:
npm run build
如果您设置了正确的配置和模板,您将会看到生成的两个文件:'rss.xml' 和 'atom.xml'。
以上就是使用 metalsmith-feed-js 的所有步骤。此外,通过更改模板和选项,您可以根据需要对其进行自定义。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f3f1d8e776d08040b89