dsh-subjkit:DSH 学科排版与图示工作流

前言

在 DeepSeek Harness(DSH)里做学科会话时,常见痛点不是「模型不会解题」,而是成稿形态:根号写成 Unicode √ 时横线盖不住被开方式,分数写成 1/2 或斜杠式 (…)/(…),受力图、电路图只能另开工具手画。把这些步骤拆成多次复制粘贴,既慢又难保证打印清晰度。

dsh-subjkit 把同一套 Python 排版引擎挂进 DSH:会话里直接调用工具生成矢量公式、学科图示和可打印 PDF,并附带两个内置技能,说明何时用、公式与图示字段怎么写。下面介绍它是什么、能做什么,以及如何安装与启用。

这是什么

dsh-subjkit 是维护者 LoveElysiaFH 发布的 DSH 插件包(package.json 中声明 dsh.bundle.patch,入口 src/index.js 在 apply(ctx) 里向宿主注册工具),不是把技能文件改个名冒充插件。社区目录分类为工作流;GitHub 仓库 LoveElysiaFH/dsh-subjkit 当前 package 版本为 0.3.0。README 写明作者主要自用、环境以 Windows 为主,换机器时便于同步;使用前宜自行阅读源码与许可证。

定位:给 DSH 各学科会话用的排版 + 图示工具包——数学公式排成矢量图,物理/化学/生物/语文等图示按 JSON 规格输出,最终可输出可打印 PDF。

核心功能

三个会话工具

装上插件后,新会话中多出三个工具(参数与命令行选项一一对应):

工具 作用 主要参数
subject_pdf Markdown → 打印用 PDF;公式转矢量路径,可拆奇偶页、出 PNG 预览 input(必填)、output、split、preview、title、subtitle、footer
subject_figure 物理/数学/化学/生物/语文图示 → SVG / PNG spec(必填)、output、dpi
subject_check 找出正文里的裸符号、1/2、x^2,报「行:列 + 建议写法」 input(必填)

插件通过 spawn 调用同一套 Python CLI(subjkit.py),结果经 --result-json 临时文件回传;命令行与会话内跑的是同一套排版引擎。

两个内置技能

插件启动时一并注册技能,「装插件」与「装技能」在同一步完成:

  • math-typeset:公式排版、试卷 PDF、根号/分数修复;
  • subject-diagram:各科图示模板与字段约定。

工具负责执行;技能负责使用时机与写法说明。

排版与图示能力(README 已说明)

公式与 PDF:行内 $...$、独立 $$...$$;根号用 \sqrt{...},分数用 \frac{}{};支持标题、列表、表格、引用、图片、\newpage;--split 可额外生成奇数页/偶数页 PDF 便于单面打印。

图示类型(subject_figure / subjkit.py fig)包括:circuit、force、incline、optics、plot、geometry、numberline、venn、apparatus、molecule、cell、flow、grid 等;复杂图用 JSON spec,参数错误时返回中文说明与最小示例而非裸 traceback。

检查:subject_check / subjkit.py check 按 error/warn/info 分级;出 PDF 前默认跑 paper 档检查,有 error 会拒绝出图;学情类文档可用 --profile report 等选项避免误报比值与箭头。

安装与启用

环境要求

README 写明:Windows 10/11、Python 3.10+、Node.js 18+、Microsoft Edge(用于 HTML 转 PDF)。首次需在插件仓库根目录安装 Python 依赖与 Node 依赖,并跑自检:

python -m pip install -r requirements.txt
npm install
python subjkit.py doctor

doctor 会检查 Python 库、Node、MathJax、Edge 与图示模板是否可用。

装成 DSH 插件(推荐)

前提:上述依赖就绪,且 python subjkit.py doctor 全部通过。

在 DSH 会话中让助手调用插件管理器,将本仓库根目录的绝对路径装进当前 profile:

plugin_manager  action: install_bundle  target: <本仓库根目录的绝对路径>

管理器会完成 pnpm 安装与 bundle 选择,并报告 application: applied 或 restart-required。装完若工具未立刻出现,重启 DSH 即可。

等价手工做法:在 profile 目录(%USERPROFILE%\.dsh\profiles\<profile名>)的 package.json 的 dependencies 增加 "dsh-subjkit": "link:/path/to/dsh-subjkit",在 dsh.profile.bundles 增加 "dsh-subjkit",执行 pnpm install 后重启 DSH 应用。

卸载:plugin_manager 的 remove_bundle;或从 bundles 与 dependencies 删除后 pnpm install 并重启。

只装技能或只用 CLI

不需要工具、只要技能提示词时,可在仓库根目录执行:

python install.py

或 python install.py --project 装到当前工作区;此路径不注册工具,排版仍依赖命令行 subjkit.py。

插件以当前 DSH 进程权限运行子进程;安装前应检查仓库源码与 LICENSE,勿在未审阅的情况下指向不可信路径。

典型用法

试卷 Markdown → PDF

---
title: 数学 · 函数专项卷 02
subtitle: 满分 60 分 | 限时 40 分钟
footer: 第 1 页 / 共 2 页
---

## 一、选择题

1. 函数 $f(x)=\frac{\sqrt{x+1}}{x-2}$ 的定义域是(  )

命令行:

python subjkit.py pdf 试卷.md -o 试卷.pdf
python subjkit.py pdf 试卷.md -o 试卷.pdf --split
python subjkit.py pdf 试卷.md -o 试卷.pdf --preview

在 DSH 中对应 subject_pdf,参数 input、output、split、preview 等与上述选项一致。

图示 spec → SVG/PNG

{
  "type": "incline",
  "angle": 30,
  "block_label": "$m$",
  "decompose": true,
  "base_label": "$L$"
}
python subjkit.py fig --spec 斜面.json -o 斜面.svg
python subjkit.py fig --spec 斜面.json -o 斜面.png

会话内使用 subject_figure,必填 spec。

出 PDF 前检查

python subjkit.py check 试卷.md
python subjkit.py pdf 试卷.md --check-only

会话内使用 subject_check,必填 input。建议先改到 0 处 error 再生成 PDF。

适用场景与注意

适合:在 DSH 里反复出卷、重排含大量公式的 Markdown、按 JSON 批量画标准学科图,并希望模型在技能引导下统一用 $...$ 与 \frac、\sqrt 写法。

注意:

  • 作者 README 强调自用、主要维护 Windows;Linux/macOS 未在资料中作为官方支持环境列出,自行迁移需验证 Edge/PDF 链路与 doctor 结果。
  • 表格跨页时表头可每页重复;整块不跨页可在块前写 <!--keep-->。
  • 数据类文档(学情报告)勿用默认 check 档,应使用 --profile report 等,避免 274/450、→ 被误判为公式。
  • DSH 社区插件目录 skillhub.cn 上的 dsh-subjkit 页 为独立站点收录,与 DeepSeek / 幻方无官方从属关系;安装与运行责任在用户侧。

结尾

dsh-subjkit 把学科 PDF 矢量排版、多科图示和裸符号检查收进 DSH 工作流:三个工具加两个技能,底层与 subjkit.py CLI 共用一套引擎。需要详情、样张 PDF 与仓库内重排示例时,见 GitHub README 与 插件目录页。

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

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

小夜