Render slide
render_slideFill one layout with your text and get back a finished, self-contained HTML document (theme, base and contract CSS inlined) that renders correctly when opened. Use it instead of get_layout when you already know the text: you do not assemble CSS or edit the markup yourself. Input: layout_id, optional theme_id (use the same one for every slide of a deck), slots, lang. Returns { layout_id, theme_id, html, warnings[], ok }. warnings[] lists missing required slots, text over max_chars, unknown slot ids and sample copy left behind, each with a fix; read them and call again after correcting, do not hand the user a slide that has errors. To validate without rendering use check_slots.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"layout_id": "<layout_id>",
"slots": "<slots>"
},
"name": "render_slide"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Document language. Pass the language the slide text is written in. | ko |
| slots | Yes | Slot id to text, e.g. {"title": "Revenue grew 40%"}. Ids and limits come from get_layout / list_layouts slots[]. Plain text only: it is HTML-escaped, and a newline becomes a line break. Pass "" to leave an optional slot blank; a slot you omit keeps the layout's sample copy. | |
| theme_id | No | Theme id or custom:<uuid>. Omit to use the layout's default theme, but pick one theme for the whole deck. | |
| layout_id | Yes | Layout id from list_layouts or suggest_deck. |