PeiQinyi/dsh-diary:DeepSeek Harness 側欄裏的一本本地 Markdown 日記

前言

在 DSH 裏做側欄工具時,常見做法是把數據塞進某個後端、再走接口讀寫。這類方案寫起來省事,換來的是額外的服務、賬號和同步邏輯。如果你要的東西只是「把今天寫的東西落到本地文件」——比如日記——那整套就偏重了。

peiqinyi/dsh-diary 走的是另一條路線:給 Harness 側欄加一本日記,一天一篇,按月曆翻,寫完自動存成純文本 Markdown 文件。插件自己不做賬號、不做雲同步,也不做 AI 代寫,數據落在 ~/Documents/日記/,離開插件照樣能讀。下面介紹它的安裝、用法和數據格式。

這是什麼

一個 DeepSeek Harness 插件,由 PeiQinyi 維護,倉庫地址 https://github.com/PeiQinyi/dsh-diary ,目錄頁在 https://www.skillhub.cn/plugins/PeiQinyi/dsh-diary 。分類是「記憶」。解決的問題很窄:在 Harness 界面裏有一個順手的日記入口,落盤格式統一,文件歸用戶自己所有。

package.json 裏版本是 0.1.0,private: true,License 是 MIT(© 2026 Pei Qinyi)。

核心功能

README 列了五項能力:

  1. 寫:整頁書寫,停手 0.7 秒自動保存,回車就是普通換行(不是提交)。
  2. 翻:月曆導航,有記錄的日子打點,「今天」一鍵回今日。
  3. 找:Ctrl+K 全文搜索。
  4. 看:連續記錄天數、本月與累計篇數、總字數。
  5. 拿得走:數據默認在 ~/Documents/日記/2026.md,一年一個 Markdown 文件。

配套的鍵位:Ctrl+K(macOS ⌘K)全文搜索,Ctrl+S 立即保存,Esc 關閉搜索。右上角還有「導出」,把所有日記合成一個 Markdown 文件下載。

側欄圖標在「插件」「日程」下面,裝好即出現。

安裝與啓用

倉庫根目錄就是插件包本身,不需要構建。README 給了三種裝法,都用 plugin_manager 的 install_bundle,target 填對應的值。

第一種,從 GitHub 裝(建議鎖 commit,避免上游改動悄悄改變行爲):

git+https://github.com/PeiQinyi/dsh-diary.git#<commit>

第二種,本地目錄:先 git clone,再讓 install_bundle 的 target 指向該目錄的絕對路徑。

第三種,直接拷貝:把整個目錄放到任意位置,同樣用絕對路徑安裝。

配置數據目錄有兩種方式:設環境變量 DSH_DIARY_DIR,或改插件內 cordis.patch.yml 的 config.directory。數據目錄與插件代碼完全分開,卸載或升級插件都不會動日記。

注意,這個插件以當前 DSH 進程權限運行,會讀寫你指定的本地目錄。安裝前建議先過一遍源碼,確認 index.js、lib/route.js、cordis.patch.yml 的行爲符合預期。

典型用法

打開日記頁的流程:

  1. 點側欄的筆記本圖標打開日記頁。
  2. 光標直接落在正文裏,寫字即可;停手 0.7 秒自動保存。
  3. 左側月曆點日期切換,‹ › 翻月,「今天」回到今日。
  4. 需要查舊內容時按 Ctrl+K 全文搜索,改完按 Ctrl+S 立即保存。

數據格式是固定的,一年一個文件:

# 2026

## 2026-11-03

> ⛅ 多雲 · 🥱 疲憊

今天……

幾點要留意:

  • ## YYYY-MM-DD 是唯一的結構錨點,其餘內容按原樣保存。
  • 心情/天氣是緊跟標題的引用行,數據由 emoji 承載,後面跟的中文只是裝飾,改成 rain · exhausted 也能讀回。
  • 舊格式 <!-- {"mood":...} --> 仍能讀,下次保存時自動改寫爲引用行。
  • 行首空白在保存時去掉,正文一律頂格;空行兩側和純空白行會被規整。
  • 第一個日期標題之前的內容算「序言」,寫入時原樣保留。
  • 每次寫入前,上一版留在 <年>.md.bak;正文寫空且沒選心情/天氣時,該日條目整條刪掉。
  • 寫入是原子的:臨時文件加 rename,避免半截文件。

代碼結構與開發

插件分 Host 半和瀏覽器半:

文件 作用
index.js Host 入口:解析目錄、註冊路由
lib/store.js 年文件讀寫、解析、搜索、統計、導出(純 Node,可獨立測試)
lib/route.js POST /dsh-diary/api,按 action 分發,走宿主鑑權
client.js 瀏覽器半:側欄圖標 + 整頁界面
test/store.test.mjs 存儲層測試
PLAN.md 產品與格式的決策記錄

改完代碼後的驗證與重裝:

# 語法檢查 + 存儲層測試(30 項)
node --check index.js
node --check client.js
node --check lib/store.js
node test/store.test.mjs

# 改完重新安裝(profile 內生效)
# plugin_manager install_bundle,target = 本目錄

改 index.js(Host 半)需要重啓 Harness 纔會重新加載;改 client.js 後一般刷新頁面即可,沒生效再重啓。

適用場景與注意

適合想在 Harness 裏順手記點東西、又不接受把日記交給雲端或 AI 代寫的人。它只做純文本,不碰富文本、圖片、標籤、多日記本。想同步的話自己把目錄放進 OneDrive / iCloud。單個年文件在極端量級(一年幾十萬字)會變慢,屆時需要拆分——README 把這一條列在已知邊界裏。

README 記了幾個明確的設計取捨,正好解釋它爲什麼簡單:一年一個文件而不是一天一個(幾百個小文件不好翻、不好備份);純文本優先,正文就是 Markdown 原文,不做富文本也不做預覽層,離開插件能讀;不碰內容生成,只負責記錄與回收,不代寫、不潤色、不摘要;寫入原子化,舊版本留 .bak。

如果你需要的是帶標籤體系、富文本或雲同步的日記工具,這款不合適;如果只是需要一個留在本地、格式穩定的落盤點,它是夠用的那個。

來源與鏈接

  • 目錄頁:https://www.skillhub.cn/plugins/PeiQinyi/dsh-diary
  • GitHub:https://github.com/PeiQinyi/dsh-diary
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜