PROJ-05
Static-Blog
静态博客系统 - Nunjucks 模板引擎
独立开发的静态博客生成系统:Nunjucks 模板 + 构建期公式 / 高亮渲染,支持 Markdown 与标签分类,已部署 GitHub Pages,首屏 LCP < 0.8s。
HTML5CSS3NunjucksMarkdown-itKaTeXHighlight.js
★ 0 Stars
个人博客 用户
LCP < 0.8s 性能
2025 年份
static-blog.json
{
"id": "static-blog",
"title": "Static-Blog",
"type": "Tool",
"year": "2025",
"status": "maintenance",
"category": "工具/博客",
"tech": ["HTML5", "CSS3", "Nunjucks", "Markdown-it", "KaTeX", "Highlight.js"],
"github": "https://github.com/Zviolin/Static-Blog/tree/Introduction",
"demo": "https://Zviolin.github.io/Static-Blog/"
} 01
项目概述
独立开发的静态博客生成系统:Nunjucks 模板 + 构建期公式 / 高亮渲染,支持 Markdown 与标签分类,已部署 GitHub Pages,首屏 LCP < 0.8s。
02
核心特性
Markdown 渲染 — 基于 markdown-it 的 Markdown 解析,支持 GFM 语法、表格、任务列表
数学公式 — 集成 KaTeX 渲染引擎,支持行内公式和块级公式
代码高亮 — Highlight.js 语法高亮,支持 180+ 编程语言
标签分类 — 文章标签系统,按标签和分类筛选文章
Nunjucks 模板 — 基于 Nunjucks 模板引擎,组件化页面构建
GitHub Pages — 已部署至 GitHub Pages,免费托管,自动构建
03
技术架构
模板引擎
Nunjucks 模板渲染
Markdown
markdown-it 解析 + GFM 扩展
数学公式
KaTeX 渲染引擎
代码高亮
Highlight.js
部署
GitHub Pages 静态托管
04
性能指标
首屏加载 0.8s
构建速度 3s
页面大小 50KB
Lighthouse 95+分
05
项目结构
project-structure
Static-Blog/
├── src/
│ ├── templates/ # Nunjucks 模板
│ │ ├── base.njk # 基础模板
│ │ ├── post.njk # 文章模板
│ │ └── index.njk # 首页模板
│ ├── generators/ # 构建脚本
│ │ ├── build.js # 构建入口
│ │ └── markdown.js # MD 解析
│ └── styles/ # 样式文件
├── content/ # 博客内容
│ └── posts/ # Markdown 文章
├── dist/ # 构建输出
└── package.json 06
详细说明
项目概述
Static-Blog 是一个基于 Nunjucks 模板引擎的静态博客生成系统。系统通过构建脚本将 Markdown 文章转换为静态 HTML 页面,支持数学公式渲染、代码高亮、标签分类等功能。项目已通过 GitHub Pages 部署上线。
本项目由本人独立完成模板体系设计、构建脚本开发与部署上线,是一次完整的「前端工程化 + 静态站点生成」实践:从模板引擎选型、Markdown 解析扩展到 GitHub Pages 自动构建部署全流程独立把控。
在线访问
项目已部署至 GitHub Pages:https://Zviolin.github.io/Static-Blog/
核心功能
Markdown 渲染
- 基于 markdown-it 的 Markdown 解析
- 支持 GFM(GitHub Flavored Markdown)语法
- 表格、任务列表、删除线等扩展语法
- 自动生成目录(TOC)
数学公式
- 集成 KaTeX 渲染引擎
- 支持行内公式
$...$ - 支持块级公式
$$...$$ - 高性能渲染,无需客户端 JavaScript
代码高亮
- Highlight.js 语法高亮
- 支持 180+ 编程语言
- 多种主题可选
- 行号显示
标签分类
- 文章标签系统
- 按标签筛选文章
- 按分类浏览
- 标签云展示
Nunjucks 模板
- 组件化页面构建
- 模板继承与复用
- 条件渲染与循环
- 自定义过滤器
工程亮点
- 构建期渲染:数学公式(KaTeX)与代码高亮在构建期完成,页面零客户端渲染开销,首屏 LCP < 0.8s
- 源码与产物分离:src/(模板 + 构建脚本)与 dist/(构建输出)严格分离,构建产物纯净可缓存
- 模板工程化:Nunjucks 模板继承与复用、条件渲染与自定义过滤器,组件化组织页面
- 解析扩展:基于 markdown-it 扩展 GFM 语法、TOC 自动提取与标签分类系统
项目结构
项目采用源码与生成结果分离的设计:
src/templates/- Nunjucks 模板文件src/generators/- 构建脚本content/posts/- Markdown 博客文章dist/- 构建输出的静态文件
分支说明
main- 主分支,稳定版本Web- Web 部署分支Introduction- 项目介绍文档分支
快速开始
# 克隆项目
git clone https://github.com/Zviolin/Static-Blog.git
cd Static-Blog
# 安装依赖
npm install
# 本地开发
npm run dev
# 构建静态文件
npm run build
# 预览构建结果
npm run preview