🏠 回到主页

保留 Typora 样式的轻量博客搭建指南

本文介绍了一种基于Typora软件的全新的极简笔记博客搭建的方法。相比 VitePress、MkDocs 等静态站点生成器需要编写配置、学习主题系统甚至处理构建流程,本文介绍的 “Typora + Python 脚本”方案提供了一条更轻量、更直观的路径:无需转换格式、无需额外依赖,直接利用 Typora 导出的 HTML,完整保留Typora文章主题样式——包括代码高亮、数学公式、表格布局与内嵌图片。在此基础上,仅用两个简单脚本,即可自动添加导航按钮并生成博客主页,实现“写完即发”、“快速笔记分享”的极简博客体验。

Tip

如果你追求效率、重视所见即所得的写作美感,这套方案使用Typora自带的导出HTML功能,因此能够完整保留Typora原生文章样式(其他构建工具所实现的Markdown转HTML功能会带来样式的渲染差异),快速将笔记转化为在线网页,并带有一个文章索引主页!

为导出的HTML文件添加页脚的跳转按钮

在Typora软件设置中,在工具栏选择文件—>偏好设置—>导出—>HTML

<body/>中添加处,键入以下示例内容:

image-20250925223935947

样式示例:

image-20250925233909793

为导出的HTML文件标题行前跳转按钮

✅ Code!

为Typora导出的HTML文件应用主页跳转按钮,来实现文档导航与网页极简博客构建。

实现该功能的typora2blog.py文件内容如下:

▶️ 使用方法

首先需要安装 beautifulsoup4:

在使用Typora软件进行HTML导出时,如果想实现自动化跳转按钮的添加,请在全局的Python环境中,安装beautifulsoup4而不是在虚拟环境中安装。

指定输出文件(修改原文件)

指定输出文件(不覆盖原文件)

自定义跳转 URL 和按钮文字(如不指定,按照源码的默认设置)

🔍 脚本功能特点

  1. 使用 BeautifulSoup 解析 HTML。

  2. 优先查找第一个 <h1> 标签。

  3. 若无 <h1>,则查找第一个 <h2>

  4. 创建一个 <p> 容器,内含 <a> 链接,样式与 Typora 导出风格一致。

  5. 使用 insert_before() 方法将按钮插入到目标标题之前

  6. 支持命令行参数,灵活配置 URL 和文本。

Important

⚠️ 注意事项

  • 如果既没有 h1 也没有 h2,脚本会输出提示并跳过修改。

  • 脚本会保留原始 HTML 的所有结构和样式。

  • 输出使用 utf-8 编码,兼容中文。

这个脚本非常适合批量处理文档(如 Typora 导出的 HTML,对 Typora 导出的HTML文档优化了样式),自动添加导航按钮,提升用户体验。

🌟 在导出时自动添加跳转按钮

在Typora软件设置中,在工具栏选择文件—>偏好设置—>导出—>HTML

勾选导出后运行自定义命令,键入以下示例内容:

python "你的typora2blog.py文件路径" "${outputPath}" --url "https://跳转链接(首页域名)" --text "跳转提示文本"

推荐跳转地址使用相对路径

generate_blog_index.py配合使用,以生成具有导航索引的 Web 博客。

示例设置界面:

image-20250925231149896

导出时的信息提示:

image-20250925230603275

样式示例:

image-20250926100907127

极简博客主页

极简的博客主页的创建,能够:

  1. 扫描当前目录下的 docs/ 文件夹;

  2. 读取其中所有的 .html 文件(包括子目录);

  3. 生成一个简洁美观的博客主页(index.html);

  4. 列出所有 HTML 文件,点击即可跳转。

样式示例:

image-20250925232758288


✅ Index Code!

实现相关功能的generate_blog_index.py 代码如下:

📁 目录结构示例

▶️ 使用方法

1. 基本使用(默认参数)

⚠️ 首次使用请安装依赖:pip install beautifulsoup4

2. 自定义参数

只指定输入目录

只指定输出文件

同时指定输入和输出

🌟 功能特点

💡 提示

运行后,直接用浏览器打开 index.html 即可浏览和跳转所有文章。

托管发布笔记为在线博客

完成本地博客页面的生成后,下一步便是将这些静态 HTML 文件部署到互联网上,让全世界都能访问你的笔记博客。得益于现代静态网站托管服务的普及,这一过程变得异常简单且成本低廉(甚至免费)。本章将指导你如何将 Typora 导出并经脚本优化后的博客内容,快速部署到主流托管平台。

在托管发布笔记为在线博客之前,这里回顾总结一下本地博客页面生成的流程:

🌟 本地博客页面生成的流程总结

本地页面生成的完整流程可总结为以下四个核心步骤:

1. 导出 HTML 笔记(Typora)

2. 增强页面导航(自动插入跳转按钮)

Note

通过 Typora 的导出设置,可以实现导出 HTML 时,自动插入跳转按钮,详见🌟 在导出时自动添加跳转按钮该节。

3. 生成博客主页(自动索引)

4. 本地预览与验证

5. 目录结构示例

脚本采用默认设置的情况下,基于上述几步,你应该能够获得类似的项目目录:

最终成果:一个结构清晰、导航完整、纯静态的本地博客网站,可直接用于后续的在线托管(如 GitHub Pages)。

🌐 为什么选择静态网站托管?

🚀 推荐托管平台

以下是三个广受开发者欢迎、支持免费部署的平台:

平台特点适用场景
GitHub Pages免费、集成 Git、自动构建、自定义域名支持开源项目、技术博客
Vercel极速部署、Git 自动同步、全球 CDN前端项目、静态博客
Netlify表单支持、重定向规则、一键回滚内容型网站、营销页面

本文以 GitHub Pages 为例进行详细说明,因其与本地 Git 工作流天然契合,且完全免费。

📦 准备部署目录结构

确保你的项目目录结构如下(与前文一致):

💡 提示:index.html 必须位于仓库根目录(或 docs/ 目录,取决于 GitHub Pages 设置)。

🛠️ 步骤 1:创建 GitHub 仓库

  1. 登录 GitHub

  2. 点击右上角 +New repository

  3. 仓库名建议为:your-username.github.io(例如 alice.github.io),这样 GitHub Pages 会自动启用。

    • 若使用其他名称(如 my-notes),后续需手动开启 Pages。

  4. 初始化时不要勾选“Add a README”(避免冲突)。

  5. 点击 Create repository

📤 步骤 2:推送本地内容到 GitHub

Important

需要预先有 Git 知识,网上有很多类似方面的教程,此处不再展开叙述。

在项目根目录执行以下命令:

⚠️ 注意:若仓库名不是 username.github.io,请将远程地址替换为你的实际仓库地址。

🌍 步骤 3:启用 GitHub Pages

  1. 进入你的 GitHub 仓库页面。

  2. 点击 Settings → 左侧 Pages

  3. Source 部分:

    • index.html根目录,选择 Branch: mainFolder: / (root)。(默认设置下选择这个)

    • 若你希望从 docs/ 目录发布(index.html文件位于docs目录,常见于项目文档),则选择 Folder: /docs

  4. 点击 Save

等待 1–2 分钟,页面会显示类似:

✅ Your site is published at https://your-username.github.io

点击链接即可访问你的在线博客!


🔁 自动化更新流程(可选但推荐)

每次在 Typora 中导出新笔记后,只需三步即可更新线上博客:

GitHub Pages 会在每次 push 后自动重新部署,无需手动操作。


🌐 自定义域名(进阶)

如果你拥有自己的域名(如 note.example.com),可在 GitHub Pages 中绑定:

  1. 在域名提供商处添加一条 CNAME 记录,指向 your-username.github.io

  2. 在仓库根目录创建 CNAME 文件(无扩展名),内容为你的域名:

  3. 在 GitHub Pages 设置中填写该域名。

完整指南见:GitHub Pages 自定义域名文档


✅ 验证部署效果

访问你的博客地址,应能看到:


🧩 其他平台快速部署(简要)

静态网页部署过程较为简单,网上有很多类似教程,这里不再对其他平台部署过程展开叙述。

Vercel

  1. 安装 Vercel CLInpm install -g vercel

  2. 在项目根目录运行:vercel

  3. 按提示登录并部署,自动获得 *.vercel.app 域名。

Netlify

  1. 拖拽整个 my-blog 文件夹到 Netlify Drop

  2. 自动部署并生成临时链接。


🎉 小结

通过本章,你已成功将 Typora 笔记转化为一个可公开访问的在线博客。整个流程只需:

  1. 导出 HTML(Typora)

  2. 添加导航typora2blog.py

  3. 生成主页generate_blog_index.py

  4. 推送部署(GitHub Pages)

从此,你的知识不再局限于本地,而是以网页形式永久存档、随时分享。

🏠 我的博客