Bundle
dsh-ppt-studio
Generate HTML slideshow and editable PPTX from Markdown or attachments, with Settings for themes and Host-local pptx master path.
- Source
- Huauauaa
- License
- MIT
- Updated
- Updated 10 hours ago
Readme
# dsh-ppt-studio DSH plugin that turns Markdown (or agent-read attachments) into a self-contained HTML slideshow, an editable `.pptx`, and a JSON manifest. Web Settings pick a built-in theme, default language, and an optional company `.pptx` master. Not affiliated with DeepSeek. **Do not install alongside the community [`dsh-ppt`](https://github.com) plugin.** Both register tools named `ppt_create` and `ppt_themes`; only one can be active in a profile. ## Install From this repo (Web profile): ```bash dsh plugin --profile web add ./ ``` From GitHub (replace with the published clone URL): ```bash dsh plugin --profile web add github:<owner>/dsh-ppt ``` Node ≥22. Peer `@deepseek-ai/*` packages come from the Harness; `npm install` in this tree is only for local `npm test` / `npm run smoke`. ## Settings Open the Web Settings panel (bottom-left). **PPT Studio** is a `settings.section` page: - **Theme** — `data` / `swiss` / `velvet` / `soft` / `bold` (HTML look; PPTX uses the same palette unless a master is set) - **Language** — `zh` / `en` for player chrome - **Save defaults** — writes the Host settings document for namespace `dsh-ppt-studio` - **Master PPTX path** — absolute/relative path to a `.pptx` on the **Host** filesystem (not browser upload). **Apply master path** validates and stores it; **Clear master** clears it The card shows **Pending** while a settings write is in flight and **error** text on failure. It never treats local dropdown state as a durable save until you click Save / Apply. Tools also honor plugin entry config / sidecar `$DSH_HOME/ppt-studio/config.json` when settings are not composed. ## Tools | Tool | Role | | --- | --- | | `ppt_create` | Build HTML + PPTX + JSON from `title` + Markdown `content` or structured `slides`. Optional `theme`, `lang`, `outputDir`, `fileName`, `useMaster`. | | `ppt_themes` | List built-in themes. | | `ppt_templates` | Report default theme and master status. | Skill `dsh-ppt-studio` tells the agent to read attachments with existing file tools, then call `ppt_create`. Tool args override Settings defaults. ## Verify Local repo checks (no Harness required): ```bash npm test npm run smoke ``` `npm run smoke` writes `.smoke-deck/Smoke.html` (and `.pptx` / `.json`) from `smoke/sample.md`. With DeepSeek Harness installed, from this repo root: ```bash dsh plugin --profile web add ./ dsh --profile web --dump-config # confirm a bundle layer for dsh-ppt-studio dsh --profile web # optional: boot Web UI ``` **Settings:** Theme, language, and master path persist through the Host settings namespace `dsh-ppt-studio` (same wire as other Plugins settings). Master is a Host-local filesystem path — the browser does not upload binary files. ## Limitations - A custom master contributes **approximate theme colors** to HTML. PPTX generation appends text-box slides into the master zip; it does not map placeholders, charts, animations, or speaker notes. - Invalid masters are rejected (path missing, not a zip / missing `[Content_Types].xml` or `ppt/presentation.xml`). Missing theme XML still fills the PPTX and flags HTML fallback. - Master path must be readable on the Host process (the machine running `dsh`), not a path inside the browser sandbox. - No Slidev, no charts, no auto-translation. ## License MIT. See [LICENSE](LICENSE).
Install
dsh plugin --profile web add github:Huauauaa/dsh-ppt-studio
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-ppt-studio from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.