Arkhi CMS 是為 Arkhi 所設計的插件,主要是為了讓開發者能更方便地載入和處理 .md 和 .mdx 文件。以下是CMS的主要功能:
可以直接在頁面引入文章並使用metadata
import Article, { metadata } from "#/content/markdown.md";
export { Page };
function Page() {
return (
<p>{metadata.filePath}</p>
<Article />
);
}
可使用的 metadata 如下所列
title : 文件標題author : 文件的作者名tags : 字符串陣列,可用於對內容進行分類description : 文件的描述或摘要status : 文件的狀態(例如: 草稿 或 已發佈 )filePath : 文件的完整路徑fileName : 文件名稱(包含格式)readTime : 預估的閱讀時間(單位:秒)atime : 文件的上次訪問時間mtime : 文件的上次修改時間ctime : 文件的創建時間或metadata的最後修改時間createdAt : 文件的實際創建時間只要在文件開頭用以下方法就能自訂部分metadata,若沒有內容則默認為空
---
title:
author:
tags:
description:
status:
---
CMS主要依靠 arkhi/plugins 檔案夾裡的 cms.ts 和 virtual.d.ts 兩份程式完成功能。
使用另外撰寫的 transformMarkdownContent 函式轉換 Markdown 文件的內容。函式將會使用 matter 解析文件的 front matter ,分析內容並生成一些額外的metadata,最後使用 @mdx-js/mdx 將文件內容轉換為 JSX,使原本的 Markdown 文件可做為元件被載入。
為了使 TypeScript 能夠識別和理解如何處理特定的文件類型的宣告文件,此檔案會告訴 TypeScript 這些文件將導出什麼組件和metadata