静态网站生成器是一种将源文件转换为 HTML、CSS、JavaScript 等静态文件的工具。它们被广泛用于生成博客、文档站点、展示页面等。
t3h-static-site-generator 是一款基于 Node.js 和 Markdown 的静态网站生成器。它可以将 Markdown 文件编译成 HTML、使用 Handlebars 模板渲染页面、支持自定义 CSS 和 JavaScript 等功能,是一款易于使用和定制的静态网站生成器。
本文将介绍如何使用 t3h-static-site-generator 构建一个简单的博客页面。
准备工作
首先需要安装 Node.js 和 npm,安装方法可以参考官方文档。
安装 t3h-static-site-generator:
npm install -g t3h-static-site-generator
创建项目
创建一个新的项目目录:
mkdir my-blog && cd my-blog
初始化项目并安装依赖:
npm init -y npm install t3h-static-site-generator handlebars marked highlight.js
其中,t3h-static-site-generator 是本次教程使用的静态网站生成器,handlebars 是用于渲染页面的模板引擎,marked 是用于将 Markdown 文件编译成 HTML 的工具,highlight.js 是用于代码高亮的库。
配置
创建一个 src 目录,用于存放源文件。
创建一个模板文件:
-- -------------------- ---- ------- --------- ----- ------ ------ ----- ---------------- --------- ----- ---------- ----- ---------------- ---------------------- ------- ------ ------------- -- ------- -- ------------- ------- ----------------------------- ------- -------
这是一个简单的 HTML 模板文件,使用 Handlebars 语法嵌入了 title、content 和引入的 CSS、JavaScript 文件。
创建一个配置文件 config.js:
-- -------------------- ---- ------- -------------- - - ------ --- ------ ------------ ----- -- -- ------ ---- ----------------------- ------- ------ ---------- --------- ----------- ---- --------- ------------------- -------------- -- -
其中包含了各种配置选项,比如网站的标题、描述、URL、源文件目录、输出目录、静态文件路径等。详细的配置选项可以参考官方文档。
编写 Markdown 文件
在 src 目录下创建一个名为 post.md 的 Markdown 文件:
-- -------------------- ---- ------- --- ------ ----- ----- ------------ --- ---------- ------------- ------------------- --------
注意,这里使用了 YAML 格式定义了文章的标题和日期。代码块被使用了 Markdown 的语法高亮。 ## 构建和预览 在项目根目录下运行:
t3h-static-site-generator
-- -------------------- ---- ------- --- ------ -------------------------------- -- -- ---- ------ ----- --- ----------------- -- -- ------------------------- ----------------------------------------------------------- ------------------------------------ - ------------------------------------------------------------------------------ -------- ------------------------------------------------------------------------------------------------------------------------