概述
metalsmith-versioned-posts 是一个基于 metalsmith 搭建的静态网站博客的插件。该插件可以帮助你实现版本化的文章发布,支持同一篇文章的多个版本,方便用户查阅历史版本的文章。
安装
要使用 metalsmith-versioned-posts,首先需要安装 metalsmith:
npm install --save metalsmith
然后再安装 metalsmith-versioned-posts:
npm install --save metalsmith-versioned-posts
配置
在使用 metalsmith-versioned-posts 之前,需要先配置 Metalsmith。以下是一个参考的 metalsmith 配置文件(其中的 metalsmith-versioned-posts
配置采用默认值):
-- -------------------- ---- ------- ----- ---------- - ---------------------- ----- -------- - ------------------------------- ----- ------- - ------------------------------ ----- ---------- - --------------------------------- ----- -------------- - -------------------------------------- --------------------- ---------------- ------------ ---------------------- ---------------- ---------------------- ------------------ -------------- ------- ------------- ---------- --------- --- -------------------- - -- ----- ----- ---- ---
其中,
metalsmith-markdown
是一个可以将 Markdown 文件转换为 HTML 文件的 Metalsmith 插件。metalsmith-layouts
是一个可以根据指定布局模板生成 HTML 页面的 Metalsmith 插件。metalsmith-permalinks
是一个可以为文件设置永久链接的 Metalsmith 插件。
在上面的配置文件中,我们使用了 metalsmith-versioned-posts
插件,但并没有指定任何配置项,这表示采用了默认的配置。
完整的配置项如下:
const versionedPosts = require('metalsmith-versioned-posts'); Metalsmith(__dirname) .use(versionedPosts({ pattern: '**/*.md', limit: 5, permalink: ':title:version:ext' }))
其中,
pattern
:需要版本化的文件的匹配规则,采用 minimatch 的语法,默认值是**/*.md
。limit
:每篇文章的最大版本数,如果超过这个数会删除最早的版本,默认值是 5。permalink
:版本化文章的链接格式,其中:title
表示文章标题,:version
表示版本,:ext
表示文章类型后缀,默认值是/:title:version/index.html
。
使用
有了配置文件和插件,我们就可以使用 metalsmith-versioned-posts 了。
假设有一篇文章叫做 hello-world.md
,我们想要对其进行版本化,可以创建一个叫做 hello-world.md.2
的新文件,在里面写下新的内容。当使用 metalsmith 编译网站时,会自动生成两个 HTML 文件,分别是 hello-world/1/index.html
和 hello-world/2/index.html
,分别对应文章的两个版本。
除了创建新文件,还可以通过在原始文件的 frontmatter 中添加 version
属性来指定某一篇文章的版本号,如下所示:
--- title: Hello World! version: 2 ---
示例代码
以下是一个完整的示例代码,可以通过 npm run build
构建代码,并在 dist
目录下生成网站代码。
-- -------------------- ---- ------- ----- ---------- - ---------------------- ----- -------- - ------------------------------- ----- ------- - ------------------------------ ----- ---------- - --------------------------------- ----- -------------- - -------------------------------------- --------------------- ---------------- ------------ ---------------------- ---------------- --------------------- -------- ---------- ------ -- ---------- ---------------------------- --- ------------------ -------------- ------- ------------- ---------- --------- --- -------------------- - -- ----- ----- ---- ---
结论
metalsmith-versioned-posts 是一个非常有用的插件,可以帮助用户实现版本化的文章发布。通过这个插件,我们可以方便地查看历史版本的文章,也能够保持网站内容的更新与连贯。如有兴趣,不妨试试在自己的网站上使用该插件。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f431d8e776d08040e41