个人博客方案

个人博客方案

个人博客

概念

名词

名称全称渲染时机特点
SSRServer-Side Rendering运行时服务器渲染页面首屏快,SEO 友好
CSRClient-Side Rendering浏览器端渲染常规 Vue SPA 模式
SSGStatic Site Generation构建时渲染成静态 HTML无需服务器、速度极快、适合文档/博客类网站

很多人都以为 Vue 只能做 CSR(客户端渲染)或 SSR(服务端渲染),其实现在 Vue 生态已经支持 SSG(静态站点生成) 了,只是实现方式 不在 Vue 本体,而是在 Nuxt 等框架层面

元数据frontmatter

像 Hugo、Hexo、Jekyll 这类博客框架,需要知道除了正文以外的“元数据”,比如:

  • 文章标题(title)
  • 日期(date)
  • 标签(tags)
  • 分类(categories)
  • 作者、摘要等

这些信息就放在一个叫 Front Matter(前置区块) 的区域里。

博客框架推荐的写法(带元信息)

markdown
---
title: "个人博客"
date: 2025-10-10
tags: ["博客", "Markdown", "静态网站"]
---

## 从 markdown 生成网页

这是我的第一篇笔记。

这个“上半部分的三条横线 ------” 就是 Front Matter,告诉博客系统一些“文章属性”。

---(三条横线)如果放在正文中间,确实是代表一个水平分割线(horizontal rule)

--- 出现在文件开头时,它就被特殊识别为 “Front Matter”(前置数据区) 的边界。

这不是 Markdown 标准的一部分,而是静态博客生成器扩展的语法

位置作用是否显示在网页上
文件开头的 --- ... ---Front Matter(元数据块)❌ 不显示(仅用于配置)
文件中间的 ---水平分割线✅ 显示为一条线

image-20251010103732990输入数据:image-20251010103642047

用静态网页生成器

这些工具能自动把你的 Markdown 文件转成网页(HTML + CSS)。

工具语言特点适合人群
HugoGo超快、配置简单想快速上线、喜欢轻量的人
JekyllRubyGitHub Pages 原生支持想免费托管在 GitHub 上的人
HexoNode.js插件多、主题多前端基础好一点的人
AstroJS/TS现代框架、支持 React/Vue/Svelte想做现代化、可交互网站的人
VuePress / VitePressVue.js支持vue,是vue插件,解析MD
next.js/reactReact**Next.js是React 的通用应用框架(SSR、SSG、ISR、Edge Rendering等)
NuxtVue.jsVue 的通用应用框架(SSR、SSG、SPA一体)
RSpressRUSTRspress快如闪电的静态站点生成器
Docusaurus
Nextra使用 Next.js 和 MDX创建精美的网站

无论哪种生成器,大体流程是:

  1. 你写笔记(.md 文件);
  2. 博客框架读取这些 Markdown;
  3. 按模板(主题)渲染成 HTML;
  4. 最终生成静态网页(可部署到 GitHub Pages、Vercel、Netlify 等)。

我要自己解析Markdown

你要做的是这样一个流程:

.md 文件(Markdown 内容)

Markdown 引擎(解析器)

HTML 片段(可嵌入到你的网站模板)

网页(你自己设计结构 / 样式 / JS)

选择一个 Markdown 引擎

取决于你用什么语言写博客系统,这里给你几个主流选择:

语言Markdown 渲染库支持语法高亮 / KaTeX备注
Node.jsmarkdown-it✅ 插件多、可扩展性强最推荐
Pythonmarkdown✅ 有丰富扩展简洁稳定
Gogoldmark✅ Hugo 同款高性能
Rustcomrak✅ 支持 GFM稍重

Java 主流 Markdown 解析库对比

库名Maven 名称特点支持扩展
Flexmark-Javacom.vladsch.flexmark:flexmark-all✅ 最强大,功能最全(推荐)支持 GFM、表格、代码高亮、数学公式等
commonmark-javaorg.commonmark:commonmark轻量级、速度快功能基础,适合简单解析
pegdown(旧)已弃用⚠️ 不推荐老项目,已不维护

推荐使用 flexmark-java —— 它几乎等于 Java 版的 markdown-it

Hugo

Hugo 是一个用 Go 编写的静态网站生成器,其速度和灵活性都经过优化。凭借其先进的模板系统和快速的资源管道,Hugo 可以在几秒钟甚至更短的时间内渲染出一个完整的网站。

项目位置:https://github.com/gohugoio/hugo/

VitePress

VitePress 可以说就是 “Hexo 的现代化进化版 + 完全可嵌入 Vite/Vue 生态的轻框架”。 如果你已经熟悉 Vue 或 Vite,那它几乎是最自然、最干净的选择。

https://vitepress.dev/

VitePress 是一个静态网站生成器(SSG),旨在构建快速、以内容为中心的网站。简而言之,VitePress 会获取您用Markdown编写的源内容,应用主题,然后生成可轻松部署到任何地方的静态 HTML 页面。

Hexo

Hexo 本质上是一个Node.js 驱动的静态博客生成框架」。

它的目标是:让你用 Markdown 写文章,一键生成整站。

也就是说,它是“面向写作者”的工具,不是面向“网站开发者”的框架

Hexo 有三层核心结构:

内容层: content/*.md
模板层: themes/<your-theme>/
引擎层: Hexo 核心逻辑 (Node + EJS)

你能改的部分,主要在:

内容层(你自己的 Markdown)

主题层(可改模板样式、布局)

⚠️ Hexo 内部逻辑(很难改)

简单说:Hexo 是“你可以改主题,但不能改发动机”的系统。

Astro

https://astro.build/

内容驱动网站的网络框架

Astro 为世界上最快的营销网站、博客、电子商务网站等提供支持。

Astro是一个用于构建内容驱动型网站(例如博客、营销和电商)的Web 框架。Astro 以其开创性的全新前端架构而闻名,与其他框架相比,它能够降低 JavaScript 的开销和复杂性。如果您需要一个加载速度快且 SEO 表现优异的网站,那么 Astro 就是您的理想之选。

很高级很复杂!

Astro 的定制空间非常大 —— 它几乎给了你“自己造轮子”的自由, 但帮你免去了“打包、路由、优化、渲染”这些底层琐事。

层级定制空间示例是否推荐自己改
内容层🟢 完全自定义直接写 Markdown / MDX / JSON / API 请求✅ 100% 自由
页面结构🟢 完全自定义任意 .astro 文件定义页面模板
组件层🟢 任意框架混用React/Vue/Svelte 组件混搭
样式系统🟢 任意方案Tailwind / Sass / UnoCSS / CSS Modules
构建管线🟡 可定制可自定义 Vite 配置、插件⚠️ 不建议新手修改太多
路由机制🔵 文件系统路由(但可重写)动态路由 / catch-all✅ 可改
数据源🟢 高度开放从本地 / CMS / API / GitHub / Notion 拉数据
SSR / 混合渲染🟡 有支持可接入 Cloudflare / Vercel / Node 适配器⚠️ 进阶使用

从“HTML 到模板到组件”这一层,几乎 100% 可定制。 底层构建逻辑(比如 Vite、渲染管线)虽然能改,但一般没必要。

想法Astro 能做到吗?实现方式
想自定义文章 URL 结构,比如 /blog/yyyy/mm/titlesrc/pages/blog/[...slug].astro 处理路径
想自定义文章渲染(比如替换 Markdown 渲染器)remarkrehype 插件
想换成自己写的模板引擎(而不是 Astro 的语法)⚙️ 可行自定义 Vite loader(进阶)
想写插件扩展功能(自动生成 sitemap、RSS)用官方 integrations API
想接入评论系统 / 访客统计前端引入组件或脚本即可
想做全动态网站(像 Next.js 那样)Astro 4 支持 SSR 模式
你关注的点Astro 的表现
定制 HTML 模板✅ 完全可控
自定义样式 / JS✅ 任意方式
控制路由结构✅ 文件路由 + 动态路由
控制 Markdown 渲染细节✅ 可换渲染器、扩展 remark 插件
写前端交互组件✅ 用 React/Vue/Svelte 等
完全自由度🔥 几乎前端全栈自由度最高的静态引擎之一

怎么选择

目标推荐
想做博客 / 技术文档 / 个人主页(以 Markdown 为主)VitePress
想做个人网站 / 作品集 / 有交互组件 / 动态功能Astro
想完全自由控制结构和样式,甚至未来扩展成复杂站点Astro

核心理念对比

框架核心定位重点
VitePress“文档网站生成器”把 Markdown 变成漂亮的 Vue 网站
Astro“现代静态网站引擎”把任意内容(Markdown、API、CMS)编译成 HTML

VitePress:写文章、做知识库最舒服;

Astro:做网站、博客、作品集最灵活。

自由度对比(非常关键)

层级VitePressAstro
Markdown 渲染✅ 自由✅ 自由
页面模板⚠️ 限定(文档结构)✅ 完全自定义
导航 / 布局⚠️ 通过 config.js 配置✅ 手写组件或模板
样式系统✅ Vue 风格✅ 任意:Tailwind / SCSS / CSS Modules
插件生态⚠️ 少(主要是文档扩展)✅ 丰富(图像优化、RSS、搜索、CMS集成)
SSR / 动态功能❌ 静态✅ 支持 SSR & API Routes
用途广度博客 / 文档博客 / 商业站 / 作品集 / CMS 网站

学习文档

Astro.md

评论

评论加载中……

登录后再评论

注册要用邮箱收个验证码,只为确认邮箱能收信,不会拿去做别的。账号设置