快速入门
什么是 MDL Blog?
MDL Blog 是一个轻量级的静态博客框架,基于 Google Material Design Lite (MDL) 构建。它不需要数据库,不需要 Node.js,只需 Python + Flask 即可在本地管理内容,然后一键部署到 GitHub Pages。
核心特性
- Material Design 风格 — 遵循 MD1 设计规范,5 套配色主题可切换
- Markdown 写作 — 支持 GFM 语法、代码高亮(17 种语言)、表格、引用块
- 可视化后台 — 浏览器内文章管理,支持实时预览、草稿保存
- 零数据库 — 所有数据存储在 blog-data.json,Git 友好
- 一键部署 — 内置 GitHub Actions 工作流,推送到 main 分支自动发布
- 轻量可扩展 — 核心代码仅 2 个文件(Python 后端 + HTML 前端),易于定制
快速开始
环境要求
- Python 3.8+
- pip
安装步骤
bash
# 1. 克隆仓库
git clone https://github.com/your-username/mdl-blog.git
cd mdl-blog
# 2. 安装依赖
pip install -r requirements.txt
# 3. 启动本地服务器
python blog-admin.py
启动后访问:
- 博客首页:http://localhost:5001/
- 管理后台:http://localhost:5001/admin
写第一篇文章
- 打开管理后台 http://localhost:5001/admin
- 在右侧编辑器中填写标题、日期、摘要
- 在 Markdown 编辑器中编写正文
- 点击预览确认效果
- 点击保存并发布即可
项目结构
code
mdl-blog/
|-- blog-admin.py # Flask 后端
|-- blog-admin.html # 管理后台
|-- blog-data.json # 博客数据
|-- styles.css # 全局样式
|-- requirements.txt # Python 依赖
|-- README.md # 项目文档
|-- images/ # 静态图片
|-- blog/
| |-- covers/ # 封面图
| |-- backgrounds/ # 背景图
| +-- posts/ # 文章 HTML(自动生成)
|-- lib/mdl/ # MDL 框架(5 套主题)
+-- .github/workflows/ # GitHub Pages 部署
Markdown 支持
编辑器支持 GFM 全语法:
python
def hello(name: str) -> str:
return f"Hello, {name}!"
print(hello("MDL Blog"))
引用块用于突出重要内容,左侧有 Material Design 风格的蓝色边线标识。
| 功能 | 状态 | 说明 |
|---|---|---|
| Markdown 编辑 | OK | GFM 全语法 |
| 代码高亮 | OK | 17 种语言 |
| 实时预览 | OK | 所见即所得 |
| 草稿保存 | OK | 本地暂存 |
| 封面图上传 | OK | 自动存储 |
| 主题切换 | OK | 5 套配色 |
| GitHub Pages | OK | 自动部署 |
部署到 GitHub Pages
- 在 GitHub 创建新仓库
- 推送代码到 main 分支
- Settings -> Pages -> Source 选择 GitHub Actions
- 每次推送自动部署
bash
git remote add origin https://github.com/your-username/your-repo.git
git push -u origin main
自定义扩展
修改站点信息
编辑 blog-data.json:
- author — 作者名称
- title — 博客标题
- subtitle — 博客副标题
切换主题配色
在 styles.css 中修改 MDL 主题引用即可,共 5 套配色可选。
添加新页面
- 在根目录创建 HTML 文件
- 参照现有页面引入 MDL 样式
- 在导航菜单中添加链接