新建、读取、编辑 .pptx,能套公司模板、批量改文案,出图自检版式。
帮我用 https://github.com/anthropics/skills 安装 pptx skill,然后帮我把这份大纲做成 PPT
做单文件 HTML 演示文稿,带形变动画、图表和演讲者备注,浏览器打开就能放映。
帮我用 https://github.com/nyblnet/bento 安装 bento-slides skill,然后帮我做一份 Q4 复盘的 PPT,要单个 HTML 文件能直接发给别人
它会按这个仓库把 skill 装好,然后直接开始干活。把后半句换成你自己的任务即可。
/plugin marketplace add nyblnet/bento /plugin install bento-slides@bento
.bento.html 文件,浏览器打开就能编辑和放映q4.xlsx 里,关键指标用图表展示融资路演.bento.html,把第 3 页的市场规模数字更新成最新的.bento.html,不是 .pptx,用浏览器打开;要 PowerPoint 格式请用 pptx skillbento.page 下载应用和格式说明A Bento deck is one self-contained .bento.html file. The document is plain
JSON in a single block:
<script type="application/bento+json" id="bento-doc"> { "format":"bento/slides", ... } </script>
You edit that block only, in place. Escape every < in the JSON as
\u003c so it can never contain a literal </script>. Leave the rest of the
file (the compressed runtime) untouched. In a chat context instead, the user
copies the JSON out (Save ▾ → Copy document JSON) and pastes your
replacement back (Save ▾ → Replace from JSON…); window.bento.loadDoc(json)
does it from the console.
The user does NOT need Bento installed — the app ships inside every deck.
When there is no .bento.html to edit, fetch the latest signed release
yourself and author into it:
# name the file after the deck's topic, e.g. Q4_Review.bento.html
curl -fsSL https://bento.page/releases/slides/Bento_Slides.bento.html -o "<Topic>.bento.html"
(Windows without curl: iwr https://bento.page/releases/slides/Bento_Slides.bento.html -OutFile <Topic>.bento.html.)
Then verify the download contains id="bento-doc", and write your document
into that block. The block is empty in the downloaded file — a browser
mints a showcase deck on first open, but on disk there is nothing to discard
and nothing to copy from, so do not go looking for it.
Rules for a fresh document:
size and theme (including
theme.fontFamily) are required — the app will not boot without them.stroke/strokeWidth; text needs fontFamily/align/valign) — missing
fields render wrong or not at all.docId and collab entirely: the app mints a fresh identity and
dormant collaboration credentials on first open.When done, open it (open / xdg-open / start) — the file boots straight
into the editor with the finished deck — and look at every slide before you
report done. Text overflow, elements crowding each other, a heading that
wrapped to three lines and a chart key the renderer dropped are all invisible
in the JSON and obvious on screen. Author, render, check, fix; a deck nobody
looked at is not finished.
Find the document. Locate the #bento-doc block; parse its JSON. Note
doc.size (canonical 1280×720), doc.theme, existing element ids, and
whether doc.template/doc.readonly are set.
Check doc.collab first. If it carries ownerPriv, writerPriv or
invite, this deck's live-session keys are in the file you are about to read
— and anything that receives the file or its JSON can join that session and
write to it. That is by design: the file is the invitation. Tell the user
before you continue, because only they can decide, and they may not know
the deck is shared. Offer the alternative: a read-only copy, or Share → Stop
sharing on a duplicate. If it has already gone somewhere, the remedy is
Share → Rotate keys — removing the keys afterwards does not retract them.
Read the source material the user gave you and classify each piece — is it a stat? a table? a process? a definition to expand? a photo?
Map material → feature (do NOT default to bullet text). This is the step that makes it a Bento deck rather than a slideshow of paragraphs:
columns weights + rows of cells + a style object)id on both slides + transition:"morph" on
the later one (Bento's signature move — reach for it liberally)stateOf + element link)path with a dash-march
loop, or morph a highlight through the stepsfx:{countUp:true}id stable across slides so it
morphs in placekind: video|audio); embed short clips as a data URI, link big ones by
URL to keep the file smallAuthor using the schema. Keep the full schema and copy-paste recipes open: fetch https://bento.page/agents.md (it has the element shapes, the morph/chart/state/ken-burns snippets, and the gotchas). Respect one accent colour, ≤2 typefaces, 96px side margins (right-most x ≤ 1184), and write speaker notes on each slide.
Self-audit before finishing:
transition:"morph"?Write back the edited #bento-doc block (escaping <), or return the
replacement JSON. Never regenerate the whole HTML file.
data must be plain numbers ({value,…}
item objects coerce to 0 — only pie takes {name,value}); colour by
series, not per bar; option is pure JSON, template formatters only
({b}/{c}/{d}), never functions.doc.assets and
referenced by "asset:<key>" — the file stays self-contained.media element (kind: video|audio) embeds short clips as a
data URI in src (self-contained) or references a URL for big files (keeps
the deck small). autoplay runs only in present mode and needs muted:true
for video. Don't embed large videos — they bloat the file.docId when editing an existing deck; it is the
document's identity. (Fresh decks omit it — the app mints one.)template:true → every open mints a fresh deck; readonly:true → the
file boots straight into the show with no editor.Working examples of every technique: open any template at
https://bento.page and read its #bento-doc block.