什么是 @egst/metalsmith
@egst/metalsmith 是一个基于 Node.js 的静态网站生成器,可以将 Markdown 文件转化成 HTML 文件,并支持自定义的插件。它简单易用,可以快速搭建静态网站。
安装和使用
使用 @egst/metalsmith 前,需要先安装 Node.js 和 npm。安装完成后,在终端中输入以下命令来安装 @egst/metalsmith:
npm install @egst/metalsmith
安装完成后,在终端中输入以下命令来创建一个基本的 @egst/metalsmith 项目:
mkdir my-metalsmith cd my-metalsmith npm init -y
这样就创建了一个名为 my-metalsmith 的项目,并在该项目中创建了一个 package.json 文件。
接下来,在终端中输入以下命令来安装必要的插件:
npm install metalsmith metalsmith-markdown --save-dev
这样就安装了 metalsmith 和 metalsmith-markdown 两个必要的插件。
然后,在 my-metalsmith 项目中创建一个 src 目录,并在该目录中创建一个 index.md 文件,输入以下内容:
# Hello World 这是一个 @egst/metalsmith 的示例。
接下来,在 my-metalsmith 项目中创建一个名为 build.js 的文件,输入以下内容:
-- -------------------- ---- ------- ----- ---------- - ---------------------- ----- -------- - ------------------------------- --------------------- -------------- -- ----- -------------------- -- ---- ---------------- -- -- -------- -- --------------- ----- - -- ----- ----- ---- ---
这个 build.js 文件定义了 @egst/metalsmith 的构建过程,其中使用了 metalsmith 和 metalsmith-markdown 插件。使用以下命令来构建项目:
node build.js
构建完成后,在 my-metalsmith 项目中会创建一个 dist 目录,其中包含 index.html 文件,打开该文件可以看到转换后的 HTML 内容:
<h1>Hello World</h1> <p>这是一个 @egst/metalsmith 的示例。</p>
至此,一个基本的 @egst/metalsmith 项目就创建完成了。
自定义插件
@egst/metalsmith 支持自定义插件,可以根据自己的需要增加一些额外的功能。以下是一个例子,演示如何在 Markdown 中添加目录。
首先,需要安装一个叫做 metalsmith-toc 的插件:
npm install metalsmith-toc --save-dev
然后,在 my-metalsmith 项目中创建一个名为 toc.js 的文件,输入以下内容:
-- -------------------- ---- ------- ----- --- - -------------------------- -------------- - -------- --------- - ------- - ------- -- --- ------ -------- ------- ----------- ----- - ------------------- ----------------------------------- ------ - -- -------------------- - ----- ---- - ------------ ----- -------- - ------------------------- ----- ------ - ------------- - --------- -------- -------- ---- - ----- ---- - -------------------- ------ ------------ - --- -------- - ------------ - --- -- --
这个文件定义了一个叫做 toc 的插件,读取 Markdown 文件的内容,并使用 metalsmith-toc 插件生成目录,并将目录内容添加到文件的 toc 属性中。
接下来,在 my-metalsmith 项目中的 build.js 文件中增加以下代码:
-- -------------------- ---- ------- ----- --- - ----------------- --------------------- -------------- -- ----- -------------------- -- ---- ---------------- -- -- -------- -- ----------- -- ------ --- -- --------------- ----- - -- ----- ----- ---- ---
这样就使用了自定义的 toc 插件。在 Markdown 文件中使用 [[toc]] 即可添加目录。例如:
# 目录 [[toc]] ## 第一章 ## 第二章
这样就在 Markdown 中添加了目录,构建后的 HTML 中也会显示目录内容。
结语
@egst/metalsmith 是一个非常实用和方便的静态网站生成器,基于 Node.js,支持自定义插件,可以根据需求灵活添加功能。使用它可以非常快速地构建出一个静态网站。希望本文能够对读者有所帮助,欢迎大家留言交流!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600668e3d9381d61a3540a66