DeepSeek Harness LaTeX 代碼片段插件:dsh-math-snippets

前言

在 DeepSeek Harness (DSH) 的網頁編輯器中編寫數學公式時,手動輸入 LaTeX 代碼既繁瑣又容易出錯。dsh-math-snippets 插件通過引入觸發詞機制,實現了類似 LaTeX Suite 的代碼片段展開功能,能夠顯著提升公式輸入效率。

插件概述

該插件由用戶 huanglianqi 維護,是一個基於 MIT 許可證的開源工具。它通過將常用的數學符號映射爲簡短的觸發詞,在用戶輸入特定字符組合後,自動將其替換爲完整的 LaTeX 模板,並將光標定位到需要填寫的佔位符位置。

核心功能

1. 觸發詞展開

插件內置了一個包含 142 個標籤的觸發詞表,其中 138 個默認爲自動展開,4 個(如 \sum, \prod)需要配合 Tab 鍵使用。觸發詞的匹配規則與 Obsidian LaTeX Suite 保持一致,方便習慣該工具的用戶遷移。

2. Tab 鍵導航

當觸發詞展開後,光標會自動進入第一個佔位符。按 Tab 鍵可以依次跳轉到後續的佔位符(例如 $1, $2)。這允許用戶快速構建複雜的嵌套公式結構。

3. 外部觸發詞

除了數學符號內部,插件還支持在普通文本中觸發數學塊的插入。這使得用戶可以快速在段落中插入數學公式或獨立的顯示數學塊。

4. 可編輯的觸發詞表

插件的觸發詞表由插件在首次啓動時寫入到 ~/.dsh/math-snippets.json,並可通過編輯該文件來自定義觸發詞的行爲。

安裝與啓用

使用官方插件安裝命令:

dsh plugin --profile <profile> add dsh-math-snippets

安裝完成後,需要重啓 Harness(因爲配置列表在啓動時讀取),然後刷新網頁編輯器頁面即可生效。

使用示例

以下是常見觸發詞及其展開效果:

$//        → $\frac{}{}$
$sum       → $\sum_{i=1}^{n} $
$ff<Tab>   → $\frac{}{}$
mk         → $$
dm         → $$\n\n$$

在數學符號內部,輸入觸發詞後通常無需按 Tab 即可自動展開:

$@a        → $\alpha$
$sr        → $^{2}$

配置與自定義

在 ~/.dsh/math-snippets.json 文件中,可以添加或覆蓋內置的觸發詞。該文件是一個 JSON 對象,每個條目包含以下字段:

  • body: 展開後的 LaTeX 內容。$0, $1 等表示佔位符。
  • auto: 是否自動展開(默認爲 true)。
  • open: 是否允許在數學符號外觸發。
  • word: 是否要求觸發詞後必須是非單詞字符(防止誤觸)。
  • desc: 備註說明。

自定義示例:

{
  "snippets": {
    "capm": { "body": "$E[R_i]=R_f+\\beta_i(E[R_m]-R_f)$", "auto": true },
    "npv":  { "body": "\\mathrm{NPV}=\\sum_{t=0}^{n}\\frac{CF_t}{(1+r)^t}" },
    "par":  { "body": "\\frac{\\partial $0}{\\partial $1}", "auto": true }
  }
}

限制與注意事項

  1. 無實時預覽:插件在輸入時不會隱藏或渲染公式,也不會自動調整括號大小。
  2. 佔位符文本:${1:\infty} 等佔位符中的默認文本不會被自動選中,這是 Shell 環境的限制。
  3. 觸發詞規則:
    * 純字母觸發詞(如 ff)匹配的是完整的單詞(例如輸入 xff 不會觸發 ff)。
    * 非字母觸發詞(如 //, _)匹配的是精確字符。
    * LaTeX 命令本身(如 \sum)永遠不會被識別爲觸發詞。
  4. Tab 行爲:只有當匹配到有效的觸發詞時,Tab 纔會被消耗;否則 Tab 保留其默認功能。

生態背景

DeepSeek Harness 的核心設計理念是“一切皆插件”。本插件由社區維護,其目錄與 GitHub 倉庫地址如下:

  • 目錄: https://www.skillhub.cn/plugins/huanglianqi/dsh-math-snippets
  • 倉庫: https://github.com/huanglianqi/dsh-math-snippets
羽毛球分组比赛记分
小程序二维码

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

小夜