2.4.3 快速開始
排除檔案
在 .notecraft/ignore.json 用 .gitignore 的寫法排除草稿、私人筆記或不相干的檔案,讓 NoteCraftApp 完全不讀它們。
本頁目錄
筆記資料夾常常就是專案原本的 docs/,裡面混著不想變成筆記的東西:CHANGELOG.md、文件範本、草稿、測試用的大 JSON。把它們寫進 .notecraft/ignore.json,NoteCraftApp 就不會讀。1.10.0 起支援。
寫一份 ignore.json
以專案根 my-project/、筆記資料夾 docs/ 為例,指令在 my-project/ 執行:
text
my-project/ ← 在這裡執行 npx notecraftapp view ./docs
├── .notecraft/
│ └── ignore.json ← 檔案放這裡
└── docs/ ← 規則以這裡為根
├── drafts/
├── adr/template.md
├── archive/
└── guide.md.notecraft/ignore.json
{
"$schema": "https://cdn.jsdelivr.net/npm/notecraftapp/schemas/ignore.schema.json",
"ignore": [
"# 草稿與私人筆記",
"drafts/",
"**/*.private.md",
"/adr/template.md",
"archive/*",
"!archive/keep-this.mdx"
]
}- 檔案的位置和
plugins.json一樣,在執行指令那個目錄的.notecraft/ - 規則的路徑以筆記資料夾為根:
drafts/指的是docs/drafts/。不要在前面加docs/ $schema選填,讓編輯器提示格式
規則怎麼寫
寫法和 .gitignore 相同:
| 寫法 | 意思 | 例子 |
|---|---|---|
CHANGELOG.md | 不含 /:任何深度的同名檔案或資料夾 | 也會排除 api/CHANGELOG.md |
/README.md | 開頭 /:只比對筆記資料夾的根目錄 | 不會排除 guides/README.md |
guides/old.md | 中間有 /:從筆記資料夾的根算起 | |
drafts/ | 結尾 /:只比對資料夾,底下全部排除 | |
*.test.mdx、**/tmp/ | *、?、[abc] 不跨資料夾,** 跨任意層 | |
!archive/keep-this.mdx | 把前面排除的再收回來,後寫的規則優先 | |
# 說明 | 註解 |
. 開頭的檔案與資料夾(.git/、.obsidian/…)、node_modules/、dist/ 不用寫,一律排除。
排除之後
被排除的檔案 NoteCraftApp 完全不讀:
- 不會成為筆記,不出現在 Sidebar、筆記列表、搜尋、儀表板
- 不會被 Plugin 認領,就算
plugins.json的files有寫到 - 不會出現在「新增筆記」的資料夾選單,也不能在被排除的位置新增筆記
- 被筆記引用的圖片不會複製進 build 產物,
view也不提供 - 改了不會觸發
serve的 rebuild,也不會讓build的快取失效
連到被排除的筆記、引用被排除的圖片、系列裡的章節被排除時,build log 都會提醒,但不會讓 build 失敗。
改了之後
存檔就生效:view 會自動重新啟動 dev server,serve 會重新 build 一次。啟動時 build log 會印一行摘要,確認規則有讀到:
text
[ignore] .notecraft/ignore.json:6 條規則,排除 1 個資料夾、3 個檔案(另有內建排除)格式寫錯(不是合法 JSON、ignore 不是字串陣列)時 build 會失敗並指出是哪一條,避免規則默默失效、讓私人筆記上站。
完整規格見 ignore.json。