Skip to content
dsh.fish
Bundle

dsh-courseware

中小学课件生成技能包:拿用户自己的 .pptx 模板 + 课程大纲,产出套用模板风格的多页课件。由 DeepSeek Harness 的 courseware 技能 + pptxgen 引擎打包而成。

Source
lnsdlszsqxxx
License
MIT
Updated
Updated 12 hours ago

Readme

# dsh-courseware

把 DeepSeek Harness 的 **courseware 技能**(中小学课件生成)及其 **pptxgen 引擎**
打包成官方可安装的 DSH 插件包:`dsh plugin --profile <名字> add <本包>`。

安装后,profile 里每个 agent 的技能目录都会出现 `courseware` 技能:
拿用户自己的 `.pptx` 模板 + 一份课程大纲(教案/文档/纯文本),产出套用该模板
背景、配色、字体、页面骨架的课件 `.pptx`。

## 包内结构

```
dsh-courseware/
├── package.json          type:module + main:lib/index.js + dsh.bundle.patch(命门)
├── cordis.patch.yml      把本包插成一行,loader 才会加载它
├── lib/index.js          零依赖提供器:扫描 skills/ 注册进 ctx.skills
├── skills/courseware/    SKILL.md + workflows/ + references/
└── engine/               pptxgen 引擎源码 + pptxgen.sh + requirements.txt
```

## 安装

前置:已装 DeepSeek Harness + pnpm(`dsh plugin` 内部调用 pnpm)。

```sh
# 本地文件夹(pnpm 链接安装,改完重启 profile 即生效,适合开发)
dsh plugin --profile web add /路径/到/dsh-courseware

# 发布到 npm 后(推荐)
dsh plugin --profile web add dsh-courseware

# 或 GitHub / tarball
dsh plugin --profile web add https://github.com/你的账号/dsh-courseware.git
dsh plugin --profile web add /路径/to/dsh-courseware-0.1.0.tgz
```

安装后**重启 profile**(停掉重跑 `dsh web`,刷新浏览器),然后验证:

```sh
dsh --profile web --dump-config     # 输出里应出现 dsh-courseware 行
```

agent 的技能目录里应出现 `courseware`,可用 `skill` 工具加载。

卸载:

```sh
dsh plugin --profile web remove dsh-courseware
```

> 必须用 `dsh plugin` 形式安装。直接 `npm install` 只会把包当普通库装进当前
> 目录,不会注册进任何 profile,技能永远不会被加载。

## 首次使用:初始化引擎(一次性)

引擎需要 Python 3.10+,首次跑课件前初始化虚拟环境:

```sh
python3 -m venv "<引擎目录>/.venv"
"<引擎目录>/.venv/bin/pip" install -r "<引擎目录>/requirements.txt"
```

引擎目录 = 技能目录的上两级(agent 会自行按此规则定位);也可用环境变量
`PPTXGEN_ENGINE_HOME` 指向自备引擎。

另外,`check --render` 与 `preview` 需要本机装有 LibreOffice(macOS:
`/Applications/LibreOffice.app`);仅 `build` 不依赖它。模板用到的字体
(如 华文琥珀/微软雅黑)在目标机器上缺失时,字号会退化,建议装齐常用中文字体。

## 图片后端配置 —— 本包不含任何密钥

**包里没有任何 API key、也没有任何密钥配置**(引擎源码只有占位符;`~/.pptxgen/config.yaml`
在用户侧,不在包内)。每个使用者装好后自己配:

方式一:环境变量

```sh
export PPTXGEN_IMAGE_BASE_URL="https://你的服务商/v1"
export PPTXGEN_IMAGE_MODEL="你的模型名"
export PPTXGEN_IMAGE_API_KEY="你自己的 key"
```

方式二:用户配置文件 `~/.pptxgen/config.yaml`

```yaml
images:
  base_url: https://你的服务商/v1
  model: 你的模型名
  api_key: 你自己的 key
```

引擎的图片配置优先级:环境变量 > 课件 `options.images` > 用户配置文件。
生成配图时 agent 会先检查后端是否配好;没配就停下来提示你去配(不静默跳过)。

## 发布到 npm 的注意

- `package.json` 的 `files` 白名单已排除 `.venv/`、`__pycache__/`、`.git/` 等;
  发布前再跑一遍 `npm pack --dry-run` 确认包内**没有**任何密钥文件。
- 发布前先在干净的 profile 上本地安装验证一遍(上面"安装"节)。
- 包名 `dsh-courseware` 如与 npm 已有包冲突,可改成带 scope 的
  `@你的账号/dsh-courseware`(改 package.json 的 `name` 与 cordis.patch.yml 的
  `name` 两处即可)。
- 技能内容更新:改 `skills/courseware/` 后重新发布即可,无需改代码
  (提供器自动发现新技能/新文件)。
- 引擎更新:替换 `engine/pptxgen/` 内容后重新发布。

## License

MIT。技能内容与引擎源码版权归原作者。

Install

dsh plugin --profile web add github:lnsdlszsqxxx/dsh-courseware

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source