postext.dev
Try the Postext typesetting engine live: edit markdown, manage figures and tables, tune Knuth-Plass justification, and export print-ready PDF and EPUB — in the browser.
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 8 · Act 48 · Transact 5 · Score: Not yet scored
Tool inspector
sandbox_import_word
Bring a Word manuscript (.docx) into the book, as the Manuscript panel's Word import does: each Word style becomes a Postext construct (headings, paragraph styles, callouts, quotes, verse, captions; bold, italic, chips…), lists and footnotes are kept, pictures and tables become resources placed where they were. Run it first with dryRun: true — it changes nothing and answers with the quality report of the document, every style it uses with what each would become, the chapters and resources it would make, and the start of the Markdown; then correct what a style becomes with mapping, or the options, and run it for real. destination says where the text goes: chapter replaces a chapter's text (taken back with sandbox_undo_text), append adds new chapters after a chapter, book replaces every chapter of the book, which cannot be undone. Left out, the destination is book for a document the Sandbox exported as a whole book and chapter otherwise. For Markdown text, sandbox_write_text; for a .postext book, sandbox_import_book.
Page: /en/sandbox
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
file |
object | yes | The .docx file: where to fetch it (url) or its bytes (base64). A .doc file must be saved as .docx first. |
dryRun |
boolean | no | Change nothing: answer with the report, the mapping of every style, and what the import would make. |
destination |
string | no | chapter: the whole document replaces one chapter's text. append: new chapters after one chapter, a new chapter at every level-1 heading, the first one shown. book: every chapter of the book is replaced, a new chapter at every level-1 heading. |
chapter |
integer,string | no | chapter, append: the chapter to replace, or the one the new chapters follow (position from 1, title or id). The chapter on screen when left out. |
template |
string,object | no | The mapping to start from: the id of a saved template (sandbox_word_templates lists them), "embedded" (the one a .docx exported from the Sandbox carries), "auto" (none: every style is guessed from its name and its Word role) or a template object { paragraphs, characters, options }. Left out, as the dialog opens: the embedded one, else the template last used, else auto. |
mapping |
object | no | What Word styles become, by style name, on top of the template. paragraphs: { "<style name>": { kind, … } } with kind one of body, heading (level 1–6, style: a heading style id), paragraphs (style: a paragraph style id), verse (style optional), callout and calloutTitle (type: a callout type id), quote, caption, chapter (starts a chapter titled with the paragraph), markup (Postext Markdown kept as written) and drop. characters: { "<style name>": { kind, … } } with kind one of text, bold, italic, boldItalic, smallCaps, sup, sub, chip (style: a chip style id), markup and drop. The dry run lists the names and what each becomes, in this shape. |
lineBreaks |
string | no | Soft returns (Shift+Enter) inside a paragraph: a forced line break (the default), a space, or a new paragraph. |
directFormatting |
string | no | Bold, italic, small caps and scripts set by hand on runs: kept (the default) or left out. |
manualHeadings |
integer | no | Short bold paragraphs in body text (headings typed by hand) become headings of this level; 0 (the default) keeps them as paragraphs. |
pageBreaks |
string | no | Page breaks typed in Word: dropped (the default; the design decides where pages turn) or kept as :::pagebreak. |
images |
boolean | no | Pictures become resources placed where they were (default true). |
tables |
boolean | no | Tables become table resources placed where they were (default true). |
characterSpacing |
boolean | no | The character spacing (letter-spacing) of the Word styles in use is put, in em, on the book's paragraph styles, heading styles, heading levels and callout titles they map to, where the book sets none (what it sets itself stays). Default true when there is something to put; the dry run lists it under characterSpacing. |
saveTemplateAs |
string | no | Also keep the mapping used, with every style of the document written out, as a saved template of this name (the dialog's "Save as"); it becomes the template last used. Not on a dry run. |
previewCharacters |
integer | no | dryRun: how much of the converted Markdown to answer with (default 2000). |
wait |
boolean | no | Wait for the book to be laid out again and answer with the pages each chapter came to (default true). False answers at once. |
Raw JSON schema
{
"type": "object",
"properties": {
"file": {
"type": "object",
"description": "The .docx file: where to fetch it (url) or its bytes (base64). A .doc file must be saved as .docx first.",
"properties": {
"url": {
"type": "string",
"description": "An http(s) or data: URL the page can fetch."
},
"base64": {
"type": "string",
"description": "The bytes, base64-encoded."
},
"mimeType": {
"type": "string",
"description": "Its media type. Read from the response or the file name when left out."
},
"fileName": {
"type": "string",
"description": "Its file name, with its extension."
}
},
"additionalProperties": false
},
"dryRun": {
"type": "boolean",
"description": "Change nothing: answer with the report, the mapping of every style, and what the import would make."
},
"destination": {
"type": "string",
"enum": [
"chapter",
"append",
"book"
],
"description": "chapter: the whole document replaces one chapter's text. append: new chapters after one chapter, a new chapter at every level-1 heading, the first one shown. book: every chapter of the book is replaced, a new chapter at every level-1 heading."
},
"chapter": {
"type": [
"integer",
"string"
],
"description": "chapter, append: the chapter to replace, or the one the new chapters follow (position from 1, title or id). The chapter on screen when left out."
},
"template": {
"type": [
"string",
"object"
],
"description": "The mapping to start from: the id of a saved template (sandbox_word_templates lists them), \"embedded\" (the one a .docx exported from the Sandbox carries), \"auto\" (none: every style is guessed from its name and its Word role) or a template object { paragraphs, characters, options }. Left out, as the dialog opens: the embedded one, else the template last used, else auto."
},
"mapping": {
"type": "object",
"description": "What Word styles become, by style name, on top of the template. paragraphs: { \"<style name>\": { kind, … } } with kind one of body, heading (level 1–6, style: a heading style id), paragraphs (style: a paragraph style id), verse (style optional), callout and calloutTitle (type: a callout type id), quote, caption, chapter (starts a chapter titled with the paragraph), markup (Postext Markdown kept as written) and drop. characters: { \"<style name>\": { kind, … } } with kind one of text, bold, italic, boldItalic, smallCaps, sup, sub, chip (style: a chip style id), markup and drop. The dry run lists the names and what each becomes, in this shape.",
"properties": {
"paragraphs": {
"type": "object"
},
"characters": {
"type": "object"
}
},
"additionalProperties": false
},
"lineBreaks": {
"type": "string",
"enum": [
"break",
"space",
"paragraph"
],
"description": "Soft returns (Shift+Enter) inside a paragraph: a forced line break (the default), a space, or a new paragraph."
},
"directFormatting": {
"type": "string",
"enum": [
"keep",
"ignore"
],
"description": "Bold, italic, small caps and scripts set by hand on runs: kept (the default) or left out."
},
"manualHeadings": {
"type": "integer",
"minimum": 0,
"maximum": 6,
"description": "Short bold paragraphs in body text (headings typed by hand) become headings of this level; 0 (the default) keeps them as paragraphs."
},
"pageBreaks": {
"type": "string",
"enum": [
"drop",
"keep"
],
"description": "Page breaks typed in Word: dropped (the default; the design decides where pages turn) or kept as :::pagebreak."
},
"images": {
"type": "boolean",
"description": "Pictures become resources placed where they were (default true)."
},
"tables": {
"type": "boolean",
"description": "Tables become table resources placed where they were (default true)."
},
"characterSpacing": {
"type": "boolean",
"description": "The character spacing (letter-spacing) of the Word styles in use is put, in em, on the book's paragraph styles, heading styles, heading levels and callout titles they map to, where the book sets none (what it sets itself stays). Default true when there is something to put; the dry run lists it under characterSpacing."
},
"saveTemplateAs": {
"type": "string",
"description": "Also keep the mapping used, with every style of the document written out, as a saved template of this name (the dialog's \"Save as\"); it becomes the template last used. Not on a dry run."
},
"previewCharacters": {
"type": "integer",
"minimum": 0,
"maximum": 6000,
"description": "dryRun: how much of the converted Markdown to answer with (default 2000)."
},
"wait": {
"type": "boolean",
"description": "Wait for the book to be laid out again and answer with the pages each chapter came to (default true). False answers at once."
}
},
"required": [
"file"
],
"additionalProperties": false
}
Similar websites
morphus.myles4miles.chatgpt.site
Morphus is an AI-native workspace for designing worlds and generating playable game experiences.
damnpdfs.com
Install the DamnPDFs Codex plugin, pair a browser workspace and use PDF, image and file tools from your coding agent. Includes setup and privacy limits.
insignifi4nt.github.io
broCAD/M: local-first CAD and CAM for parametric design, wire EDM planning, simulation and controller export.
cabinet.varera.studio
The Cartographer's Cabinet