前言:

我曾经使用 WordPress+MySQL,还得买服务器,半夜被插件更新搞崩站,有时候MySQL 莫名其妙爆了,于是我在寻找有没有简单开箱易用还不需要服务器的方案。 这两天我发现了开箱即用的静态Markdown框架 - Quartz 4。 它几乎满足了我对“懒人”的全部幻想:不需要后端,轻量化,可以部署在任何静态托管平台!

平台名说明
Cloudflare Pages基于Cloudflare网络,全球超低延迟,性能极佳,除大陆以外
Github Page速度和Cloudflare Pages差不多,不推荐
Vercel和Netlify没什么特殊需求的话这两差不多的,都是每月带宽100G,构建时长或次数有限制。他们都可以自动从Git部署,倒是十分方便。还可以绑定自己域名,Vercel必须得绑定不然无法访问(大陆),速度其实挺快的,小网站挺推荐的,本教程用Vercel举例,如果你要使用Netlify应该是差不多的

一、基本部署流程

1.环境检测与说明

部署之前请先确保你电脑上有Git和 Node.js 版本限制: Node.js ≥ 20+ npm ≥ 10 在终端中输入以下命令检测

git --version
node -v && npm -v

如果都显示版本号而且满足要求则证明环境无误 以下教程仅针对Windows平台,其他平台部署请自行测试

2.开始部署

右键windows图标 选择PowerShell 资源管理器内新建一个项目文件夹 这里我使用C:\Users\Alpha\Desktop\VSCODE\MyBlogPage作为目录

在PowerShell中执行以下命令

cd C:\Users\Alpha\Desktop\VSCODE\MyBlogPage #进入目录文件夹 替换为你自己的
git clone https://github.com/jackyzha0/quartz.git my-quartz
cd my-quartz
npm install # 安装依赖
npx quartz build
npx quartz build --serve # 本地预览

首次运行前建议在content文件夹中新建一个index.md填入以下内容

---

title: XiaoLan的数字花园 # 浏览器标题

description: 记录日常·科技 #用于搜索引擎SEO

---

  

# 欢迎来到数字花园 👋

  

这里记录技术心得、生活碎碎念和一切有趣的东西。

  

随便逛逛吧~

预览地址默认为 http://localhost:8080,页面支持自动热重载,保存MD或配置文件后自动刷新

3.自定义配置

打开项目根目录下的quartz.layout.ts,参数如下

名字说明
baseUrl设置绑定的域名如 https://example.com/
theme控制颜色主题
pageTitle浏览器标签栏显示
locale语言和地区建议改为zh-CN
quartzConfig编码类型建议utf8 没有就自己新建一个
const config: QuartzConfig = {

  configuration: {

    fileNameEncoding: "utf8",

    pageTitle: "Quartz 4",

修改保存后,刷新本地页面即可

打开根目录下的quartz文件夹进入components文件夹找到Footer.tsx 建议修改即可去除默认版权信息 例如修改为

import { QuartzComponentConstructor, QuartzComponentProps } from "./types"

import style from "./styles/footer.scss"

import { version } from "../../package.json"

import { i18n } from "../../i18n"

  

interface Options {

  links: Record<string, string>

  text: string

}

  

export default (() => {

  function Footer({ displayClass }: QuartzComponentProps) {

    const year = new Date().getFullYear()

    const text = "© " + year + " XiaoLan 的数字花园 · 由 Quartz 强力驱动"

  

    return (

      <footer class={`${displayClass ?? ""}`}>

        <hr />

        <p style={{ textAlign: "center", margin: "2rem 0", color: "#666", fontSize: "0.9rem" }}>

          {text}

        </p>

      </footer>

    )

  }

  

  Footer.css = style

  return Footer

}) satisfies QuartzComponentConstructor

二、发布到公网

1.防止404

项目根目录下新建一个vercel.json文件填入即可

{"rewrites": [{ "source": "/(.*)", "destination": "/$1.html" }]}

3.使用Vercel自动部署

登录到Vercel主页 https://vercel.com Add New → Project → Import Git Repository → 选择你推送上去的仓库 → Import 在“Build & Output Settings”中填写以下内容: Framework Preset默认Other Build Command里面填写npx quartz build

设置完以后点击Deploy即可开始部署,稍等一会你就能获得一个 xxx.vercel.app 的访问链接,如果你没有魔法上网就会访问失败建议绑定自己的域名

4.绑定自定义域名

进入 Vercel对应的 项目页 → Settings → Domains,添加你自己域名

类型CNAME解析列表
官方推荐cname.vercel-dns.com
大陆优化cname-china.vercel-dns.com
抖音 CDN(未测试)cname-bytedance.vercel-dns.com

然后记得将 quartz.config.ts 文件中的 baseUrl 改为你的域名

至此,部署流程就完成了。每次 git push,Vercel 都会自动发布。