Skip to content
dsh.fish
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

  • 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.
Source