dsh-simple-calc:把算式寫在紙上,算完直接顯示

前言

做智能體應用時,模型經常會需要算數:單位換算、百分比、匯率、日期間隔。系統自帶的計算器要麼功能不全,要麼要盯着一堆按鈕點,沒法「想算什麼直接寫」。dsh-simple-calc 把「寫」和「算」放在一起:一行一個算式,用 Enter 換行,結果即時顯示,算式歷史就是整張紙。

下面介紹這個插件的定位、安裝方式和具體用法。本文依據插件 README 與目錄頁信息整理,代碼與行爲請以倉庫實際版本爲準。

這是什麼

dsh-simple-calc 是一個 DSH 客戶端插件,維護者是 6e6e6e,分類爲客戶端,目錄頁顯示其 Star 數爲 0,版本號 0.2.3,許可證 MIT。它把 fend 計算引擎(1.5.9 的 wasm 構建,見 vendor/fend/)搬進 DSH 側邊欄,支持單位、百分比、貨幣、進制、大數和日期計算,並附帶變量賦值和本地緩存匯率。

它解決的是「邊寫算式邊出結果」的交互問題:不用記函數名,不用在按鈕上找符號,寫下來的就是算式,結果直接跟在後面。

核心功能

1、一行一個算式,逐行求值。行首按 Backspace 可以把當前行併到上一行,↑/↓ 用於在行間移動。
2、變量賦值。寫 x = 5,後面各行直接用 x * 2 得到 10。
3、單位換算。支持 100 km/h to mph、5'10" to cm、100 C to F 這類寫法。
4、百分比。20% of 80、200 * 15%;後者顯示結果爲 30,並標註原值 3000%。
5、貨幣換算。100 USD to CNY、100 CNY to USD、100 USD + 50 EUR to USD。匯率取自 Frankfurter(ECB 參考匯率),首次打開時更新一次,之後每 12 小時更新並做磁盤緩存,斷網時回退。
6、日期計算。如 @2026-11-01、today + 1 months、days until @2027-01-01。日期只支持 @YYYY-MM-DD,暫不支持時區。
7、大數與進制。2^100、0xff + 1,得益於 fend 的任意精度計算。
8、結果與導出。點擊結果直接複製,複製後提示「複製成功」;「複製全部」把整張紙導出成 表達式 = 結果 的純文本。

右上角的 ? 可以打開語法速查;界面帶 i18n,插件自帶 locale/*.json。

安裝與啓用

插件以 DSH 插件包的形式發佈,安裝依據是 Releases 裏的 dsh-simple-calc.tgz:在 DSH 插件面板中選擇安裝本地包,指向下載好的文件即可。

wget https://github.com/6e6e6e/dsh-simple-calc/releases/latest/download/dsh-simple-calc.tgz

這個固定地址永遠指向最新版。需要指定版本時,進 Release 頁面挑帶版本號的那個包。開發調試時也可以直接 clone,然後在插件面板裏指向該目錄:

git clone https://github.com/6e6e6e/dsh-simple-calc.git

安裝後在側邊欄點「極簡計算」進入計算頁面。

插件的宿主側入口 index.js 掛兩個服務:/api/dsh-simple-calc/fend.wasm 與 /api/dsh-simple-calc/rates,前者提供計算引擎,後者提供匯率數據。cordis.patch.yml 用於客戶端 bundle 的補丁配置。運行環境要求 Node.js >= 20。

典型用法

一段連續的日常計算,可以直接寫在一個頁面裏:

x = 5
x * 2
100 km/h to mph
20% of 80
100 USD to CNY
days until @2027-01-01
2^100

每行寫完即可看到結果,變量在後續行可用,日期行單獨成行、只接受整行表達式。

需要記匯率或單位時的使用方式是:先把常用換算寫在紙上,需要復現時點「複製全部」導出文本存檔,需要重算時直接重新輸入,匯率會自動按 12 小時週期刷新。

開發側的命令也一併說明,便於對照源碼:

npm test        # 37 個用例:日期、求值、格式化、匯率緩存、Host 路由、bundle 冒煙
npm run build   # 從 lib/ 和 vendor/ 生成 client.js

代碼改 lib/,client.js 是構建產物,由 scripts/build-client.mjs 把 date/core/fend 內聯進去。

適用場景與注意

適合在 DSH 客戶端裏需要一個順手算具的人:隨手算單位、百分比、匯率、日期,變量可以臨時存中間結果。對需要將計算嵌入智能體工作流的開發者來說,這是一個交互層很薄的計算視圖,宿主路由 /api/dsh-simple-calc/rates 和 /api/dsh-simple-calc/fend.wasm 是現成的接口。

使用前需要注意幾點:

  • 插件以當前 DSH 進程的權限運行,安裝前應打開源碼和許可證看過,重點留意 index.js 掛的路由與 lib/rates.js 的磁盤緩存行爲。
  • 插件 README 明確不支持解方程、微積分和矩陣,理由是爲避免引入大量函數符號;也不要期望日期參與普通算術。
  • 日期用法限制:只支持 @YYYY-MM-DD,暫不支持時區;日期行必須整行動作,d = @2026-11-05 這類賦值暫不支持,普通算式也不會把日期當數字。
  • 匯率時效:首次打開更新一次,之後 12 小時刷新並本地緩存,斷網時僅能用緩存值。
  • 計算引擎與插件本身均爲 MIT 許可,引擎原有許可證見 vendor/fend/LICENSE,插件 LICENSE 標註 Copyright (c) 2026 6e6e6e。

結尾

dsh-simple-calc 的定位很直接:不做科學計算器,不做函數符號集合,而是提供一個「紙上寫算式」的頁面,把單位、百分比、貨幣、進制、大數和日期都收進 fend 引擎裏。作爲 DSH 社區目錄中的客戶端插件,它適合作爲日常算數工具嵌入側邊欄。

目錄頁:https://www.skillhub.cn/plugins/6e6e6e/dsh-simple-calc

源碼:https://github.com/6e6e6e/dsh-simple-calc

羽毛球分组比赛记分
小程序二维码

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

小夜