secret-deus 4186647222
notebook-ci / build-push-deploy (push) Successful in 49s
docs: add Typecho red-team case study and Nutstore push helper
Summarize the Typecho XML-RPC to RCE to root attack chain as a
publishable security note, and add a small WebDAV PUT script to sync
individual notes to Jianguoyun KnowledgeBase.
2026-07-15 10:09:32 +08:00

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: falsedraft: 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(本机没有客户端)

  1. 打开 坚果云账户安全添加应用密码
  2. .env
NUTSTORE_WEBDAV_USER=你的邮箱
NUTSTORE_WEBDAV_PASS=应用密码
NUTSTORE_WEBDAV_PATH=你的库文件夹名
  1. 拉取:
npm run sync:nutstore -- --webdav

会先下载到 .cache/nutstore-vault,再写入 src/content/notes/

发布规则

会跳过 .obsidianprivatetemplates 等目录,以及 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 同步笔记
S
Description
Obsidian notes blog built with Astro
Readme 1.6 MiB
Languages
Astro 55.6%
JavaScript 21.1%
CSS 13.7%
TypeScript 9.2%
Dockerfile 0.4%