工作區
在多個工作區中使用 Fumadocs MDX。
概覽
在 Fumadocs MDX 中,工作區指的是擁有獨立設定與內容的專案。
index.mdx
test.mdx
source.config.ts
welcome.mdx
source.config.ts
小提醒
Fumadocs MDX 的工作區並不侷限於套件管理工具中傳統意義上的工作區。
工作區不需要擁有自己的 package.json,只需要一個設定檔即可。
若要定義工作區,請加入:
import { defineConfig } from 'fumadocs-mdx/config';
export default defineConfig({
workspaces: {
'my-workspace': {
dir: 'my-workspace',
config: await import('./my-workspace/source.config.ts'),
},
},
});在工作區中撰寫內容時,請注意:
cwd指的是目前的工作區目錄。- 設定不會繼承,各個工作區一律彼此獨立。
執行 dev 或 build 伺服器後,您應該會看到所有工作區的集合項目都已產生。
存取集合
您可以透過 .source/{workspace}/* 存取工作區產生的檔案。例如:
import { docs } from 'collections/my-workspace/server';根工作區的輸出位置維持不變。
若要在 Fumadocs 中整合多個來源:
import { loader } from 'fumadocs-core/source';
import { docs } from 'collections/server';
import * as MyWorkspace from 'collections/my-workspace/server';
export const source = loader(
{
root: docs.toFumadocsSource(),
'my-workspace': MyWorkspace.docs.toFumadocsSource(),
},
{
baseUrl: '/docs',
},
);使用時機
在某些架構中,您可能會有多個 Fumadocs MDX 設定,各自擁有自己的內容目錄。
透過工作區,您可以將它們整合到同一個 Fumadocs MDX 設定中,並存取每個工作區的所有集合。
這對於將內容分散存放在多個儲存庫等使用情境來說至關重要,簡化後的架構如下:
- 將您的主要文件儲存庫設為 ,其他儲存庫設為 T_n
- 對於每個儲存庫 T_n:
- T_n 將 加入為 git submodule。
- T_n 定義自己的設定
source.config.ts,並獨立運作。 - 當 T_n 的內容有新的 commit 時,會觸發 GitHub Action (或 CI) ,在 上建立新的部署。
- 當 觸發部署時:
- Fumadocs MDX 會將每個 T_n 視為一個工作區來處理。
- 每個工作區會產生各自的集合項目,例如
collections/{repo}/server。 - Fumadocs
loader()會將多個來源整合為一個。
How is this guide?
最後更新於
