Docmino MDX Documentation

Created by
  • D
    docminoDocmino
  • Docmino MDX

    Docmino docs are MDX documents: normal markdown plus live components. Use markdown for durable explanation, then add components when readers should answer, calculate, submit, book, pay, compare, or reveal content.

    Page structure

    A Docmino doc has one root page and optional child pages. This source folder keeps the root page in overview.mdx and publishes the other files as child pages. The publisher stores page order from the manifest, so moving a page in the manifest changes navigation order in the product.

    Markdown basics

    Use headings, lists, tables, links, code fences, and markdown images.

    Sample Image

    Download a PDF

    Live components

    Every custom component is written as JSX. Interactive and form components should have stable id values when other components or conditions refer to them. If an ID is omitted on supported interactive fields, the backend adds one during publish.

    Use stable IDs

    Stable IDs keep conditions, triggers, submissions, and references intact across edits.

    <Callout id="overview-live-component" type="info" label="Use stable IDs"> Stable IDs keep conditions, triggers, submissions, and references intact across edits. </Callout>

    Conditional props

    Many components accept visibleWhen. Form fields also accept requiredWhen and disabledWhen. These props use expression objects that the runtime evaluates against document state.

    <Input.Text id="overview-name" name="name" label="Name" placeholder="Type a name" value="" /> <Callout id="overview-name-callout" type="success" label="Thanks" visibleWhen={{ "overview-name": true }} > This appears after the name field has a value. </Callout>

    Triggers

    Interactive components such as questions, polls, payments, and submit buttons can accept triggers. Use triggers when a component should cause an action after it is answered or completed.

    Which part should a new author learn first?
    <Poll id="overview-poll" prompt="Which part should a new author learn first?" options={["Markdown", "Inputs", "Conditions"]} />