15cdabb647e50efe3de6a7ea3c745746f70c80bf
notebook-ci / build-push-deploy (push) Successful in 36s
Remove panel/card borders and shadows for a flatter reading layout. Add SideDoodles with physics formulas/curves, random angles on load.
Notebook —— Obsidian 笔记博客(Astro)
用 Obsidian 写作,用 Astro 生成静态站点的个人笔记博客。
- 统一文章流(坚果云笔记也当文章发布)
- 支持
[[wikilink]]、目录树、标签、RSS、sitemap - 一键从 Vault / 坚果云 WebDAV 同步
快速开始
npm install
npm run dev
浏览器打开终端提示的地址(一般是 http://localhost:4321)。
npm run build # 产出到 dist/
npm run preview # 预览构建结果
内容放哪
| 路径 | 说明 |
|---|---|
src/content/posts/ |
全部文章(含 KnowledgeBase 同步内容) |
public/assets/ |
图片等静态资源 |
src/consts.ts |
站名、作者等 |
.env |
坚果云 WebDAV 凭证(不入库) |
文章示例 frontmatter
---
title: 标题
description: 摘要
pubDate: 2026-07-11
tags: [博客]
---
笔记示例 frontmatter
---
title: 标题
tags: [笔记]
publish: true
---
publish: false 或 draft: true 不会上线。
从 Obsidian / 坚果云同步
复制 .env.example 为 .env,按你的接入方式填写。
方式 A:本地路径(Obsidian 或坚果云同步盘)
# .env
# NUTSTORE_VAULT=D:/Nutstore/我的坚果云/你的库
# 或 OBSIDIAN_VAULT=C:/Users/admin/Documents/Obsidian Vault
npm run sync:vault
# 坚果云别名命令(相同逻辑,优先读 NUTSTORE_VAULT)
npm run sync:nutstore
npm run sync:nutstore -- --dry-run
npm run sync:nutstore -- --clean # 先清空 notes 再同步
方式 B:坚果云 WebDAV(本机没有客户端)
- 打开 坚果云账户安全 → 添加应用密码
.env:
NUTSTORE_WEBDAV_USER=你的邮箱
NUTSTORE_WEBDAV_PASS=应用密码
NUTSTORE_WEBDAV_PATH=你的库文件夹名
- 拉取:
npm run sync:nutstore -- --webdav
会先下载到 .cache/nutstore-vault,再写入 src/content/notes/。
发布规则
会跳过 .obsidian、private、templates 等目录,以及 frontmatter 里 publish: false / draft: true 的笔记。
双链
笔记正文中的 [[写作约定]] 会链到 /notes/写作约定/。
文件名与双链目标保持一致即可(中文文件名可用)。
自定义
- 站名 / 文案:
src/consts.ts - 配色 / 字体:
src/styles/global.css - 导航:
src/components/Header.astro - 布局:
src/layouts/ - Obsidian 语法插件:
src/plugins/remark-obsidian.mjs
Astro 本身可继续加 React/Vue、Tailwind、部署适配器等,自由度很高。
部署
构建产物在 dist/,可丢到:
- GitHub Pages / Cloudflare Pages / Netlify / 任意静态托管
- 改
astro.config.mjs里的site为你的域名
命令
| 命令 | 作用 |
|---|---|
npm run dev |
本地开发 |
npm run build |
生产构建 |
npm run preview |
预览构建 |
npm run sync:vault |
从 Obsidian 同步笔记 |
Description
Languages
Astro
55.6%
JavaScript
21.1%
CSS
13.7%
TypeScript
9.2%
Dockerfile
0.4%