`. Use this to keep API/MCP payloads compact while reusing shared styles. |
| `sections` | ✓ | Array of content sections (flow or page type) |
| `defaults` | — | Global styling defaults (fonts, colors, spacing, header/footer) |
| `variables` | — | Template variable definitions |
| `abbreviations` | — | Abbreviation definitions |
| `citations` | — | Bibliography entries (CSL-JSON) |
## Related Resources
* [Sections & Elements Schema](/automation/llm-resources/sections-schema) — focused schema for section and element types
* [Defaults Schema](/automation/llm-resources/defaults-schema) — styling configuration
* [Developer API](/api-reference/introduction) — use this schema to generate documents via the API
For AI agents, Extended Markdown plus `stylePresetId` is usually easier than generating the full JSON shape. The full schema remains available for clients that need complete structural control.
# Document Settings Schema
Source: https://docs.autype.com/automation/llm-resources/document-settings-schema
JSON Schema for page settings — output format, page size, margins, orientation, and metadata.
The document settings schema defines page-level configuration for a document.
JSON Schema (draft-07) — output format, page size, margins, orientation, metadata
## Key Fields
| Field | Description |
| ----------------------------- | ---------------------------------------------- |
| `type` | Output format: `pdf`, `docx`, or `odt` |
| `size` | Page size: `A4`, `A3`, `A5`, `Letter`, `Legal` |
| `orientation` | `portrait` or `landscape` |
| `marginTop/Bottom/Left/Right` | Page margins in cm |
| `title` | Document title (metadata) |
| `author` | Document author (metadata) |
| `subject` | Document subject (metadata) |
| `filename` | Output filename (without extension) |
## Related Resources
* [Complete Document Schema](/automation/llm-resources/document-schema)
# Autype Extended Markdown Reference
Source: https://docs.autype.com/automation/llm-resources/markdown-syntax
Complete reference for Autype Extended Markdown — all directives, attributes, and examples for LLMs.
Autype Extended Markdown (AEM) is Autype's semantic document language, not plain Markdown. This reference is optimized for LLMs and covers its standard-Markdown base plus every supported Autype structure and extension.
For API and MCP usage, pair this Markdown content with a `stylePresetId` whenever possible. The style preset is resolved by Autype during rendering, so agents can focus on content while reusing organization typography, spacing, headers, footers, table styles, and chart defaults.
Markdown file — all syntax elements with one example each, optimized for LLM consumption
## What's Covered
* Inline formatting extensions (`++underline++`, `==highlight=={#color}`, `text`, `~~strikethrough~~`)
* Math inline and block (`$...$`, `$$...$$`)
* Variables (`{{varName}}`) and citations (`@[key]`)
* Internal references and anchors
* Page layout directives (page breaks, spacers, flowing columns, page sections)
* Semantic 1–4 column layouts with independently editable column content
* Fixed canvas compositions with positioned text, images, and shapes
* Pagination controls, advanced typography, image crop/focal point, and page backgrounds
* Images with attributes
* Tables with captions, block alignment, column widths, and Markdown separator alignment (`:---`, `:---:`, `---:`)
* Form fields, choice groups, variable binding, field styling, and fields in table cells
* Reusable block references and snapshots
* Code blocks and diagram rendering (Kroki)
* Charts (Chart.js)
* QR codes
* Styled blockquotes
* Indices (TOC, list of figures, bibliography)
## Full Syntax Documentation
For the complete human-readable reference, see the **[Markup Reference](/markup-reference/overview)** tab.
# LLM Resources
Source: https://docs.autype.com/automation/llm-resources/overview
Machine-readable schemas and references for LLMs and AI agents to work with Autype documents.
## Overview
Autype provides machine-readable resources specifically designed for LLMs, AI agents, and automation tools. These resources enable AI systems to construct valid Autype documents, understand the extended Markdown syntax, and work with the full document schema — without any manual configuration.
All resources are publicly accessible at **[autype.com/llm-resources/](https://autype.com/llm-resources/index.json)** and are always up to date.
## Available Resources
Full JSON Schema (draft-07) covering all element types, styling, variables, citations, abbreviations, and sections.
Complete Zod schema as TypeScript source. Use for validation in TypeScript/JavaScript projects.
Full reference for Autype's extended Markdown syntax with all directives, attributes, and examples.
JSON index of all available LLM resources with descriptions and URLs.
## Sub-Schemas
These focused schemas cover individual parts of the document structure. Use them when you only need to work with a specific area.
Fonts, colors, spacing, heading, table, block quote and form-field styles, header/footer, citation style.
Template variables: text, number, image, list, and table types. Use `{{varName}}` in text.
Abbreviation definitions mapping short forms to full text.
Bibliography entries in CSL-JSON format. 6 citation styles supported.
Page size, margins, orientation, output format (PDF/DOCX/ODT), and metadata.
All public content element types, including text, tables, images, charts, code, math, QR codes, form fields, and reusable block references.
Typography, tokens, master-page variants, reusable regions, and page decoration.
One flat default, first, odd, even, section-first, or blank page entry.
A reusable multi-row and multi-column header or footer grid.
One text, image, field, variable, rule, spacer, QR code, or shape block.
Atomic targeted edits without regenerating a complete style bundle.
## Usage with AI Agents
### MCP Server
The [Autype MCP Server](/automation/integrations/mcp/overview) has built-in access to these schemas. When an AI agent connects via MCP, it can generate documents directly.
### Direct API Integration
For custom AI integrations, point your LLM to the resource index:
```
https://autype.com/llm-resources/index.json
```
The LLM should fetch the Markdown reference first and use Extended Markdown for
normal document authoring. The complete JSON schema remains available for
advanced clients that need direct access to the canonical document model.
### Example: System Prompt
```text theme={null}
You are a document generation assistant. Author document content as Autype
Extended Markdown. Use compact request metadata for variables, document
settings, and a stylePresetId. Use raw document JSON only when explicitly
required by the client.
Markdown syntax: https://autype.com/llm-resources/markdown-syntax.md
Advanced JSON schema: https://autype.com/llm-resources/document-schema.json
```
# Sections & Elements Schema
Source: https://docs.autype.com/automation/llm-resources/sections-schema
JSON Schema for all document section types and content elements.
This schema defines all section types and the 21 content element types that can appear inside them.
JSON Schema (draft-07) — FlowSection, PageSection, and all 21 element types
## Section Types
| Type | Description |
| ------ | -------------------------------------------------------------- |
| `flow` | Flowing content across multiple pages (standard) |
| `page` | Positioned content on a single page (cover pages, title pages) |
## Element Types
| Type | Description |
| -------------------------- | -------------------------------------------------------- |
| `h1`–`h6`, `text`, `text2` | Headings and paragraphs |
| `image` | Image with dimensions and alignment |
| `table` | Data table with headers and rows |
| `list` | Ordered or unordered list |
| `chart` | Chart.js chart (bar, line, pie, etc.) |
| `code` | Code block with syntax highlighting or diagram rendering |
| `math` | LaTeX math block |
| `blockquote` | Styled block quote container |
| `qrcode` | QR code (url, wifi, vcard, text) |
| `pageBreak` | Page break with optional orientation change |
| `spacer` | Vertical spacing |
| `toc` | Table of contents |
| `listOfFigures` | List of figures |
| `listOfTables` | List of tables |
| `listOfCodeListings` | List of code listings |
| `listOfAbbreviations` | List of abbreviations |
| `bibliography` | Bibliography |
| `variableRef` | Block-level variable reference |
## Related Resources
* [Complete Document Schema](/automation/llm-resources/document-schema) — full document structure
* [Markdown Syntax Reference](/automation/llm-resources/markdown-syntax) — how to write these elements in Markdown
# Variables Schema
Source: https://docs.autype.com/automation/llm-resources/variables-schema
JSON Schema for template variable definitions — text, number, image, list, and table types.
Variables allow dynamic content replacement in documents using `{{varName}}` syntax.
JSON Schema (draft-07) — string, number, image, list, and table variable types
## Variable Types
| Type | Description |
| -------- | ---------------------------------- |
| `string` | Simple text replacement |
| `number` | Numeric value |
| `image` | Image URL or base64 |
| `list` | Array of text values |
| `table` | Tabular data with headers and rows |
## Built-in Variables
| Variable | Description |
| ---------------- | --------------------- |
| `{{pageNumber}}` | Current page number |
| `{{totalPages}}` | Total number of pages |
| `{{date}}` | Current date |
## Related Resources
* [JSON Syntax: Variables](/api-reference/json-syntax/variables)
* [Complete Document Schema](/automation/llm-resources/document-schema)
# Integrations
Source: https://docs.autype.com/automation/overview
Connect Autype to your AI agents, automation platforms, and developer workflows
Autype integrates with the tools you already use — from AI coding assistants and agents to no-code automation platforms. Generate documents, render PDFs, and manage content directly from your workflows.
Connect any MCP-compatible AI agent or IDE to Autype. Generate documents, render PDFs, and manage content directly from Claude, Cursor, Windsurf, and more.
Trigger document generation from Make scenarios. Connect Autype to thousands of apps without writing code.
Automate document workflows with Zapier. Connect Autype to your CRM, forms, spreadsheets, and more.
Build self-hosted document automation workflows with n8n's visual editor and Autype's community node.
Machine-readable schemas and references for LLMs and AI agents to construct valid Autype documents.
## Why integrate Autype?
Autype stores a complete structured JSON document, but integrations and AI
agents should normally author **Extended Markdown plus compact metadata**.
This keeps requests readable and token-efficient while preserving lossless
conversion to the internal model. Advanced clients can still read and render
the full JSON structure.
Agents use the shared Extended Markdown reference and focused tools for long-document retrieval, patching, styles, blocks, and records.
Render jobs complete asynchronously and notify your integration via webhook — no polling required.
Every integration is built on top of the same REST API. Use it directly or through an integration layer.
## Getting started
All integrations require an API key. You can create one in the [Dashboard](https://app.autype.com) under **Settings → API Keys**.
API keys are scoped to your organization. Keep them secret — never commit them to version control or expose them in client-side code.
Once you have an API key, choose your integration and follow the setup guide.
# AI workflows
Source: https://docs.autype.com/getting-started/concepts/ai
Generate complete documents from a goal and source files, or use the document-aware assistant and inline AI for focused edits.
Autype uses structured agent workflows instead of sending the complete JSON
schema with every request. Agents work with Extended Markdown and focused tools
for content, styles, variables, citations, reusable blocks, records, images,
uploaded files, and web research. Every proposed document is converted to the
central document model and validated before it is saved.
## Generate a complete document
Describe the result in the workspace input. You can select a project and style,
attach source files, or type `/` to reference an existing document. The agent
determines whether to create a new document, fill an existing one, or reuse a
similar document and asks a focused question when the intent or required values
are unclear.
During a run, the agent can:
* read PDF, DOCX, spreadsheet, image, Markdown, JSON, and text attachments,
* search within large source files instead of placing every file in one prompt,
* use web research when current external information is required,
* find organization styles and reusable blocks,
* generate protected document images,
* write or patch Extended Markdown in one or more steps, and
* validate and repair the result before creating the document.
A selected organization style is applied directly. With **Auto style**, the
agent can reuse a suitable existing preset or create a matching document
style.
## Document assistant
The AI assistant lives in a chat sidebar within the editor. It can complete
multi-step changes instead of being limited to one predefined action. You can
ask it to:
* **Generate content** — "Write an executive summary for this report"
* **Edit and restructure** — "Move the conclusion before the appendix"
* **Adjust formatting** — "Make all headings blue and centered"
* **Explain and improve** — "Simplify this paragraph for a non-technical audience"
The assistant maps large documents into addressable regions and reads only the
content needed for the current task. It can search and reread resources during
a run, patch specific Markdown ranges, and update document metadata without
rewriting unrelated content. Long conversations are compacted before they
exceed the model context limit.
### Inline and selection-based actions
Use **Edit with AI** from a selected text range, or choose **Write with AI**
from the slash/insert menu to generate a new block. A preview appears before
anything is inserted; selection edits include a diff that you can accept or
discard.
* Rewrite a paragraph in a different tone
* Translate selected content
* Expand bullet points into full paragraphs
* Summarize a long section
## Style generation
Describe the look you want in plain language, and the AI generates matching style definitions:
* "Corporate design with dark blue headings and a clean sans-serif font"
* "Academic paper style with serif fonts and numbered headings"
* "Modern report with accent colors and large section headers"
The generated styles are applied instantly to your document and can be saved as reusable presets.
## Image generation
Generate illustrations and graphics directly within the editor:
* Describe what you need in natural language
* The AI creates the image and inserts it at the correct position
* Images are automatically sized and captioned
AI documents, assistant tasks, translations, and AI images use separate
monthly allowances from your plan. Automation credits are reserved for the
Developer API and bulk generation. See [Pricing](/getting-started/pricing).
## Why Autype is AI-native
Most document editors store content in proprietary binary formats that AI
models cannot safely patch. Autype separates a readable authoring format from a
complete structured model:
| Traditional editors | Autype |
| ------------------------------------ | --------------------------------------------------- |
| Binary/XML formats (`.docx`, `.odt`) | Extended Markdown plus compact metadata |
| AI rewrites whole files | Agents retrieve and patch relevant ranges |
| Edits may break formatting | Markdown is converted and schema-validated |
| Limited to text generation | Focused tools update content and document resources |
The complete JSON model remains the conversion and persistence base and is
still available through the Developer API. Markdown-first agent tools keep the
normal AI workflow smaller, clearer, and more reliable.
# Collaboration and organizations
Source: https://docs.autype.com/getting-started/concepts/collaboration
Optional Markdown collaboration, contextual comments, organization roles, and document version history.
Autype keeps normal single-user editing simple: both the visual editor and
Markdown editor save directly through the API. Real-time collaboration is an
explicit document mode for teams that need to edit the same Markdown document
together.
## Real-time co-editing
Enable collaboration from the document toolbar when several users need to work
on the same document. A document uses one collaboration mode at a time, which
prevents the visual and Markdown editors from maintaining competing real-time
states.
See exactly where each collaborator is working in real-time. Cursors are color-coded per user.
See what text others have selected. Useful for discussions and reviews — you always know what someone is looking at.
CRDT-based updates synchronize Extended Markdown while collaboration is active.
Documents without an active collaboration room use API autosave and manual Ctrl/Cmd+S saves without connecting to the real-time service.
## Comments and discussions
Comments are a core part of the Autype workflow — not an afterthought. Use them for reviews, feedback, and team discussions directly inside the document.
Markdown comments attach to lines; visual-editor comments attach to the selected content block.
Start a discussion on any comment. Threaded replies keep conversations organized and in context — no separate chat tool needed.
Mark comments as resolved when the feedback has been addressed. Reopen them if something needs another look.
Perfect for client reviews, team approvals, and editorial feedback. Share a document, collect comments, iterate — all in one place.
## Organizations
Every Autype account is part of an organization. Organizations are the top-level container for everything:
* **Projects and documents** — All content belongs to the organization
* **Team members** — Invite colleagues and assign roles
* **Reusable styles** — Define your corporate design once, apply it across all documents
* **API keys** — Scoped to the organization for automation
* **Plan and automation balance** — Shared organization entitlements and automation credits
* **Settings** — Billing, branding, and preferences
### Roles and permissions
| Role | Capabilities |
| ---------- | ------------------------------------------------------- |
| **Owner** | Full access. Manage billing, members, and all settings. |
| **Admin** | Manage members and projects. Cannot change billing. |
| **Editor** | Create and edit documents within assigned projects. |
| **Viewer** | Read-only access to documents. |
### Invitations
Invite team members by email. They receive a link to join your organization. You can also set a default role for new members.
## Version history
Autype automatically tracks changes to your documents:
* **Automatic snapshots** — Captured by the active persistence path
* **Manual versions** — Save named snapshots at any time (e.g., "Final Draft", "Client Review")
* **Diff view** — Compare any two versions side by side
* **One-click restore** — Roll back to any previous version instantly
Version history is per-document. Each document maintains its own independent history, so restoring one document never affects others.
For details on managing organizations, inviting members, and configuring roles, see the [Guides](/getting-started/guides/overview) section.
# Features
Source: https://docs.autype.com/getting-started/concepts/features
Autype's full feature set: Markdown syntax, citations, automatic indices, reusable styles, page layouts, charts, variables, collaboration, automation, and more.
A complete overview of what Autype can do — from writing and styling to automation and security.
## Editor and authoring
Autype supports familiar Markdown syntax with extensions for professional documents. You can also use the visual editor if you prefer clicking over typing — switch between views anytime.
**What you can write**: Headings, paragraphs with rich formatting, ordered and unordered lists, tables, LaTeX math, highlighted code, images, interactive form fields, and more.
## Citations and bibliography
Academic-grade citation management built right into the editor. Add citations with a simple inline syntax and Autype handles the rest.
* **7 citation styles** — APA 7, Harvard, IEEE, Chicago, MLA, Vancouver, ABNT
* **Import your existing bibliography** — BibTeX, RIS, EndNote XML, Zotero
* **Automatic bibliography** — Only cited sources appear, always in the correct format
* **Cross-references** — Reference any heading, figure, or table by anchor. Autype keeps them correct as your document changes.
Broken references and missing citations are highlighted immediately in the editor — no need to export first to find errors.
## Automatic indices
Autype generates and maintains all indices automatically as you write:
* **Table of contents** — with configurable depth
* **List of figures** — auto-numbered with clickable links
* **List of tables** — auto-numbered, same as figures
* **List of abbreviations** — define once, reference everywhere
* **Bibliography** — generated from your citations
All indices update in real-time. Page numbers are inserted on export.
## Reusable document styles
Define your corporate design once — fonts, colors, heading styles, headers, footers — and apply it across every document in your organization.
* **Global defaults** — Set font, size, color, and element styles for the entire document
* **Custom headers and footers** — Three-column layout with logos, titles, and page numbers
* **Style presets** — Save and share styles across your team. Apply with one click.
* **AI-generated styles** — Describe the look you want in plain language, and AI generates the matching style
## Flexible page layouts
Mix portrait and landscape orientations within the same document. Full control over how content flows across pages.
* **Page orientation per section** — Switch between portrait and landscape anywhere in the document
* **Page sections** — Flow sections, multi-column layouts, and precise positioning
* **Semantic layouts** — Independently editable columns with width, background, border, padding, and vertical alignment
* **Fixed canvas** — Layered text, image, and shape items for covers, certificates, and title panels
* **Page backgrounds** — Color or image backgrounds with fit, focal position, opacity, and per-page margins
* **Page breaks** — Insert breaks with optional orientation changes
* **Pagination hints** — Keep blocks together, keep with the next element, or start them on a new page
## Embedded visualizations
Create charts and QR codes directly in your document — no external tools needed.
* **Charts** — Bar, Line, Pie, Doughnut, Radar, Polar, Scatter, Bubble
* **QR codes** — For URLs, WiFi credentials, vCards, and custom data
* **Auto-captioned** — Figures are numbered and appear in the list of figures automatically
## Dynamic variables
Insert placeholders anywhere in your document and fill them dynamically — via the UI, API, or bulk import.
* **Text variables** — Names, dates, amounts, any text
* **Image variables** — Logos, signatures, photos
* **List variables** — Dynamic bullet points from data
* **Table variables** — Invoice rows, product lists, any tabular data
* **Built-in variables** — Page number, total pages, and more
Variables make every document a reusable template. Fill them once in the UI, or fill them thousands of times via API.
## Form fields
Add input controls directly to documents without building a separate form
layout. Text, number, multiline, date, checkbox, select, signature, and initials
fields can use global styling or local overrides and can also be placed inside
table cells.
* **Interactive PDF output** — fields become AcroForm widgets
* **Variable binding** — prefill controls from document variables
* **Choice groups** — single or multiple selection, square or circular controls
* **Consistent styling** — outline, underline, borderless, colors, inset, radius, and spacing
Signature and initials controls are form widgets; cryptographic and qualified
electronic signing workflows are a separate future capability.
## Reusable blocks and records
* **Reusable blocks** keep organization-approved clauses and standard sections
centrally maintained. Insert them as linked references or editable copies.
* **Records** store customer or case values against a document version, report
compatibility when variable definitions change, and keep previous export
history available.
* **Import and bulk** share one workflow: create persistent records from source
data or run a temporary batch without retaining every row.
## Language variants
Generate read-only translations only when you need them. Variants remain linked
to the source revision, preserve structure and formatting, and are marked
outdated when the original document changes. Preview the translated PDF or
export PDF, DOCX, and ODT without creating parallel editable documents.
## Real-time collaboration
Eligible plans can activate collaboration for a document in either Write or
Markdown mode. When collaboration is not active, the editor uses direct API
autosave instead of routing solo editing through the realtime service.
* **Live cursors** — See where everyone is editing
* **Comments** — Anchored to Markdown lines or visual blocks, with threaded replies and resolve/reopen workflow
* **Mode safety** — One collaboration mode is active for the document at a time
## Version history
Every change to your document is tracked — automatically. Autype creates **automatic versions** in the background so you always have a safety net, even if you never think about versioning.
Need more control? Create **named versions** at any point — before a major rewrite, after a milestone, or before sending to a client.
* **Automatic versions** — created in the background as you work, no action required
* **Manual named versions** — create a snapshot with a custom name at any time
* **One-click rollback** — restore any previous version instantly
* **Side-by-side diff** — compare any version against the current document to see exactly what changed, in Markdown or JSON view
* **Author tracking** — every version records who made the change and when
Unlike Google Docs (limited history, no named snapshots) or Word (no built-in versioning at all), Autype gives you **full version control** with named versions, rollback, and diff — built right into the editor. No plugins, no external tools.
## Export formats
Export your documents to the format you need:
| Format | Use case |
| -------- | --------------------------------------------- |
| **PDF** | Final documents, print-ready output |
| **DOCX** | Further editing in Microsoft Word |
| **ODT** | Open-source compatible (LibreOffice) |
| **PNG** | Lossless page images for review or publishing |
| **JPEG** | Smaller page images for sharing |
Before exporting, Autype can check document metadata, language, image
descriptions, heading order, and table headers. PDF output profiles include
standard PDF, PDF/A-1b, PDF/A-2b, PDF/A-3b, and PDF/UA-1. See
[Export readiness](/getting-started/guides/export-readiness) for limitations and
profile behavior.
## Automation and bulk generation
Autype is built for automation from the ground up:
* **Complete document generation** — Create entire documents via REST API
* **Records and bulk jobs** — retain customer/case data or generate one-off batches from CSV, Excel, or JSON
* **Template variables** — Fill templates dynamically via UI, API, or bulk import
* **Webhooks** — Get notified when jobs complete
* **No-code integration** — Works with n8n, Make, Zapier, and any HTTP-capable platform
## Real-time validation
Autype validates your document as you type — no waiting for a compile or export to discover errors:
* **Broken references** — highlighted immediately
* **Undefined abbreviations** — flagged as you type
* **Missing citations** — caught before export
* **Invalid syntax** — instant feedback
## Security and hosting
All data is stored and processed on **secured servers within the European Union**. Autype is fully GDPR-compliant with encryption at rest and in transit, role-based access control, and audit logs.
# What is Autype?
Source: https://docs.autype.com/getting-started/concepts/overview
Autype is a structured document editor with visual and Extended Markdown authoring, reusable resources, professional exports, and automation.
## The problem with documents today
Creating professional documents shouldn't be this hard. Yet teams everywhere struggle with the same issues:
Formatting drifts between documents. Cross-references break silently. Styles are inconsistent across teams. And there's no way to automate generation — mail merge is the best you get.
LaTeX produces beautiful output, but the learning curve is steep. Cryptic errors, complex toolchains, and slow compilation make it impractical for most business use cases.
Word and Google Docs have no meaningful API. Generating 100 personalized documents means 100 times copy-paste. No-code platforms like n8n or Make can't produce professional documents.
## How Autype solves this
Autype is a **structured document editor** with a visual block experience and
an Extended Markdown view over the same content. It produces consistent PDF,
DOCX, ODT, PNG, and JPEG output and exposes Markdown-first automation while
retaining the full JSON document model for advanced clients.
Visual authoring by default, Extended Markdown when needed, opt-in collaboration, document comments, autosave, and version history.
Agentic document generation and editing use focused tools for content, styles, variables, references, reusable blocks, files, images, and web research.
Generate and patch Extended Markdown through API or MCP, render records, run bulk jobs, and integrate with n8n or Make.
All data stored and processed on secured servers in the EU. GDPR-compliant. Encrypted at rest and in transit. Role-based access control.
## Who is Autype for?
* **Teams and agencies** — One template, unlimited personalized documents. Reusable styles ensure consistent corporate design across everything. Bulk generation from CSV or API.
* **Consultants and freelancers** — Professional proposals in minutes instead of hours. Variables for client data, instant PDF export. Comments for client feedback.
* **Developers and no-code builders** — Markdown-first REST and MCP workflows, full JSON access for advanced clients, scoped API keys, and webhooks.
* **Technical writers** — Extended Markdown syntax with automatic indices, cross-references, and citation management. No more manual index maintenance.
* **Students and researchers** — Academic-grade citations with BibTeX import, automatic bibliography, cross-references, and fast rendering. No LaTeX complexity.
## Next steps
See what Autype can do in detail.
Learn about Autype's built-in AI capabilities.
Real-time editing, comments, organizations, and roles.
How documents, versions, and variables are organized.
# Projects
Source: https://docs.autype.com/getting-started/concepts/projects
Projects organize related documents while each document owns its content, variables, records, versions, and assets.
A **project** is an organization-owned folder for related documents. It helps
teams group contracts, reports, or customer material without coupling the
individual documents to one shared set of variables or versions.
## What a project contains
A project can contain multiple independently maintained documents.
Dynamic placeholders like `{{company}}` or `{{logo}}` are defined per document.
Snapshots and named versions belong to the document they describe.
Protected images, source files, and generated media stay associated with their document and organization.
## Project structure
```
Project
├── Document A
│ ├── Extended Markdown + JSON document model
│ ├── Variables and records
│ ├── Styles, citations, and abbreviations
│ ├── Assets and language variants
│ └── Version history
└── Document B
└── Independent document data
```
## Projects and organizations
Projects always belong to an organization. This means:
* All team members with the right role can access the project
* API keys scoped to the organization can interact with any project
* Plan allowances and automation credits are scoped to the organization
## Working with projects
### In the editor
You create and manage projects from the workspace. Search can find documents
across projects, while each project view supports server-side filtering and
pagination for larger workspaces.
### Via the API
The Developer API provides endpoints to list projects and use them for rendering:
* **List projects** — `GET /projects` returns all projects in your organization
* **Get variables** — `GET /documents/{id}/variables` returns the variable definitions for a document
* **Render** — `POST /render/document/{id}` generates a persistent document with optional variable overrides
* **Bulk render** — `POST /bulk-render` generates multiple documents with different variable sets
For step-by-step instructions on creating and managing projects, see the [Guides](/getting-started/guides/overview). For API details, see the [Developer API](/api-reference/introduction).
# Syntax Cheatsheet
Source: https://docs.autype.com/getting-started/concepts/syntax-cheatsheet
Quick reference for all Autype markup syntax — standard Markdown and extended features at a glance.
A compact overview of every syntax element supported by Autype. For detailed documentation, see the [Markup Reference](/markup-reference/overview).
## Block elements
| Element | Standard Syntax | Extended Syntax |
| -------------- | ---------------- | ---------------------------------------------------- |
| Heading | `# Text` | `Text
` |
| Paragraph | `Text` | `Text
` |
| Text2 | `\| Text` | Secondary paragraph style |
| Ordered list | `1. Item` | — |
| Unordered list | `- Item` | — |
| Image | `` | `{width=200 align=center}` |
| Code block | ` ```lang ` | ` ```lang{renderAsImage=true} ` |
| Math (block) | `$$...$$` | `$${align=center}...$$` |
| Block quote | `> Text` | `> {backgroundColor="#EEE" borderColor="#999"} Text` |
| Table | `\| H1 \| H2 \|` | `:::table{caption="..." headerBg="#f0f0f0"}` |
| Chart | — | `:::chart{type="bar"}...:::` |
| QR Code | — | `:::qrcode{type="url"}...:::` |
| Page break | `---` | `---pagebreak{orientation="landscape"}---` |
| Spacer | — | `---spacer{height=2}---` |
| Page section | — | `---page{align=center}---...---/page---` |
## Inline formatting
| Format | Syntax |
| ----------------- | ------------------------ |
| Bold | `**text**` or `__text__` |
| Italic | `*text*` or `_text_` |
| Bold Italic | `***text***` |
| Underline | `++text++` |
| Strikethrough | `~~text~~` |
| Highlight | `==text==` |
| Highlight (color) | `==text=={#color}` |
| Inline code | `` `code` `` |
| Link | `[text](url)` |
| Line break | `
` |
## References & special inline elements
| Element | Syntax |
| -------------------------- | ------------------------- |
| Heading anchor | `# Title {#anchor-id}` |
| Internal ref (auto) | `[](#anchor)` |
| Internal ref (numbered) | `[Figure {num}](#anchor)` |
| Internal ref (custom) | `[Custom text](#anchor)` |
| Citation | `@[key]` |
| Citation (locator) | `@[key, p. 42]` |
| Citation (suppress author) | `@[-key]` |
| Citation (author only) | `@[key!]` |
| Abbreviation | `~ABK~` |
| Variable | `{{name}}` |
| Date variable | `{{date/DD.MM.YYYY}}` |
## Automatic indices
| Index | Syntax |
| --------------------- | ------------------------------------ |
| Table of Contents | `::toc{title="Contents" maxLevel=3}` |
| List of Figures | `::lof{title="Figures"}` |
| List of Tables | `::lot{title="Tables"}` |
| List of Abbreviations | `::loa{title="Abbreviations"}` |
| Bibliography | `::bibliography{title="References"}` |
# Editor
Source: https://docs.autype.com/getting-started/editor/editor-overview
The Autype document editor — write visually or in Extended Markdown, verify the PDF preview, and manage reusable document resources.
The editor is where you write and design documents. **Write** mode is the
default visual block editor; **MD** mode exposes the same content as Extended
Markdown. The preview opens in PDF mode by default, and the sidebar manages
variables, records, reusable blocks, references, images, styles, and history.
***
## Layout
The editor has three main areas:
| Area | Position | Description |
| ------------------- | -------------- | -------------------------------------------------------------------------- |
| **Toolbar** | Top | Formatting buttons, block type selector, insert menus, export |
| **Document Editor** | Center | Visual rich text by default, or Extended Markdown with syntax highlighting |
| **Preview** | Right | Live-rendered preview of your document (Web or PDF mode) |
| **Sidebar** | Far left/right | Panels for variables, styles, citations, images, and more |
On mobile, the editor and preview are shown as separate tabs — switch between them with the **Editor** / **Preview** toggle.
***
## Toolbar
The toolbar provides quick access to formatting and inserting elements. Hovering over any toolbar button shows a **tooltip** describing its function.
### Block type selector
A dropdown at the left of the toolbar lets you change the current block type:
| Block type | Markdown prefix |
| -------------- | ----------------- |
| Paragraph | *(none)* |
| Paragraph 2 | `\| ` |
| Heading 1–6 | `# ` to `###### ` |
| Code block | ` ``` ` |
| Unordered list | `- ` |
| Ordered list | `1. ` |
### Inline formatting buttons
To apply formatting, **select the text** you want to format first, then click the corresponding button. To remove formatting, select the formatted text (including the Markdown syntax characters) and click the button again.
| Button | Action | Markdown syntax |
| ----------------------------- | ------------- | --------------- |
| | Bold | `**text**` |
| | Italic | `*text*` |
| | Underline | `++text++` |
| | Strikethrough | `~~text~~` |
| | Highlight | `==text==` |
| | Insert link | `[text](url)` |
### Insert menus
The toolbar includes additional buttons and dropdown menus for inserting:
* **Bullet List** / **Numbered List** — toggle list formatting
* **Table** — insert a table with a size picker
* **Image** — standard Markdown image or image directive
* **Code Block** — insert a fenced code block
* **Spacer** — insert vertical spacing (1–3 lines or custom px)
* **Page Break** — insert a page break (portrait or landscape)
* **Page Section** — insert a page section with alignment (top, center, bottom)
* **Indices** — TOC, list of figures, list of tables, list of abbreviations, bibliography
* **Math** — insert a block math expression
* **QR Code** — URL, WiFi, or vCard
* **Variable** — insert an inline variable reference
* **Date** — insert a dynamic date variable with format, offset, and timezone
* **Chart** — bar, line, pie, doughnut, radar, polar, scatter, bubble
* **Form Field** — text, number, date, choice, signature, and initials controls
* **Write with AI** — generate a block from a prompt and preview it before insertion
In Rich Text mode, a page section's background is represented by the color
swatch at the start of its **Page Section** chip. The editor intentionally does
not fill the editable content area with that color, because the rich-text
surface is for editing structure rather than simulating the final page. Click
the swatch to change the page color and use the PDF preview for the
authoritative rendered result.
***
## Preview modes
The preview pane supports PDF and Web modes. PDF is the default and the source
of truth for page layout. The Web preview is a faster structural approximation.
### Web preview (HTML)
* Renders your document as styled HTML **in real time** — updates instantly as you type
* Shows **variable placeholders** as-is (not yet processed), so you can see where variables are used
* Best for **everyday writing and editing** — the instant feedback makes it ideal for checking that your Markdown syntax is interpreted as expected
* Shows a close approximation of the final output, though page layout details (margins, headers, footers, page breaks) are not represented
### PDF preview
* Shows the **fully rendered document** exactly as it will look when exported — including page layout, margins, headers, footers, and page breaks
* Best for **fine-tuning layout** and verifying the final appearance of your document
* A new render is triggered after saving (either via the auto-save interval or a manual save)
* A **refresh indicator** shows when a new render is in progress
Rendering time depends on document size and current server load — it can take up to **1 minute** for large documents. Documents with many images will take longer to render.
***
## Auto-save
When you work alone, changes are saved directly through the API after a short
autosave delay. The editor coalesces rapid edits instead of sending every
keystroke as a full document update.
You can trigger a manual save by pressing **⌘S** (Mac) or **Ctrl+S** (Windows/Linux), or by clicking the **save icon** next to the document name in the top bar.
### Save icon states
The save icon next to the document name indicates the current sync status:
| Icon | State | Description |
| -------------------- | -------------------- | ------------------------------------------------------------------------------- |
| | **Synced** | All changes have been saved successfully |
| | **Auto-save active** | Auto-save is enabled — changes will be saved automatically at the next interval |
Versions are created independently from autosave and remain available through
the [Version History](/getting-started/editor/sidebar-history) panel.
Wait for the saved indicator before closing the page on an unstable
connection. Use the manual save shortcut whenever you want an immediate API
save.
***
## Real-time validation
The editor highlights syntax errors and warnings directly in the code. **Clicking on an error or warning** navigates you directly to the line where the problem occurs. Hover over an underlined section to see the error message in a tooltip.
### Errors
**Red underlines** indicate syntax errors — for example, invalid attribute values or unclosed directives. Documents with errors **cannot create a new version** and will **not trigger a new PDF render** or any other export format.
### Warnings
**Yellow underlines** indicate warnings — for example, missing citation references or undefined abbreviations. Documents with warnings can still be **saved and rendered** normally, but you should review them to ensure the output is as expected.
***
## Real-time collaboration
Real-time collaboration is activated per document and requires an eligible
plan. A document uses one collaboration mode at a time: Write or Markdown.
Documents without active collaboration continue to use normal API autosave.
When multiple users have the same document open, their **avatars** appear in the top bar so you can see who is currently active.
Inside the editor, each collaborator has a **colored cursor** and their **text selections** are visible to everyone. Hover over a cursor to see who is typing. All changes from other users appear in real time.
***
## Export
Click the **download button** in the top bar to export your document:
| Format | Description |
| -------- | ---------------------------------------------------------------------- |
| **PDF** | Portable Document Format — most common for sharing |
| **DOCX** | Microsoft Word format — editable in Word, Google Docs |
| **ODT** | Open Document Format — editable in LibreOffice |
| **PNG** | Page images; multiple pages are downloaded as a ZIP archive |
| **JPEG** | Compressed page images; multiple pages are downloaded as a ZIP archive |
The exported document will look virtually identical to the **PDF preview** (\~99% match). Minimal differences may occur if a font is rendered slightly differently between the preview and the export engine.
***
## Sidebar panels
The sidebar on the left provides access to all document management panels. Click an icon to open the corresponding panel.
| Icon | Panel | Description |
| ------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
| | [Documents](/getting-started/editor/sidebar-documents) | Switch between documents in the current project |
| | [Version History](/getting-started/editor/sidebar-history) | View and restore previous versions |
| | [Variables](/getting-started/editor/sidebar-variables) | Manage document variables |
| | [Records](/getting-started/editor/sidebar-records) | Save variable datasets, import rows, and render historical outputs |
| | [Reusable Blocks](/getting-started/editor/sidebar-reusable-blocks) | Insert shared content as a reference or copy |
| | [Translations](/getting-started/editor/sidebar-translations) | Generate, preview, export, and refresh read-only language variants |
| | References | Manage abbreviations and citations in one panel |
| | [Images](/getting-started/editor/sidebar-images) | Upload and manage document images |
| | [Styles](/getting-started/editor/sidebar-styles) | Manage and apply document style presets |
| | [AI Assistant](/getting-started/editor/sidebar-chat) | Chat with AI to edit your document |
| | [Comments](/getting-started/editor/sidebar-comments) | Add and manage inline comments |
### Advanced JSON view
Enable **Advanced view** in Editor settings to inspect the raw JSON document
schema. JSON remains the complete internal model and a fully supported API
format, while Write and Markdown are the recommended interactive modes.
Only edit the JSON if you have a solid understanding of JSON and the document schema format. Invalid changes can break your document. JSON editing is **not available during live collaboration sessions** to prevent inconsistent document states between collaborators.
### Footnotes
Place the cursor after a statement and choose **Add → Footnote** to insert an
automatically numbered note. Select the visible number to edit or remove it.
Write, Markdown, JSON, DOCX, and PDF use the same footnote definition; see the
[Footnotes guide](/getting-started/editor/footnotes) for syntax and behavior.
# Footnotes
Source: https://docs.autype.com/getting-started/editor/footnotes
Add, edit, number, and export document footnotes in Write or Markdown mode
Footnotes add supporting detail without interrupting the main document flow.
Autype assigns their visible numbers from the order in which references first
appear. Moving a reference therefore updates its number automatically.
## Add a footnote in Write mode
1. Place the cursor immediately after the text that needs a note.
2. Select **Add → Footnote** in the editor toolbar. You can also type `/footnote`.
3. Enter the note in the modal and select **Insert footnote**.
The editor displays the reference as a compact numbered link such as `[1]`.
Select that link to edit or delete this occurrence. If the same footnote is
referenced more than once, editing its text updates every occurrence.
Footnote text supports inline formatting, links, and line breaks. A note must
not contain another footnote.
## Markdown syntax
Use `[^id]` in the document text and provide one matching definition:
```markdown theme={null}
The figures were independently verified[^audit].
[^audit]: **External audit**, completed 12 March 2026.
```
IDs start with a letter and may contain letters, digits, `_`, and `-`. Continue
a longer definition on lines indented with four spaces or a tab:
```markdown theme={null}
[^audit]: First line of the note.
Second line with [supporting material](https://example.com).
```
Footnotes are separate from citations (`@[key]`) and internal links
(`[label](#anchor)`). Missing, duplicate, empty, and nested definitions are
reported before a document is rendered.
## JSON and export
In JSON, definitions are stored once in the top-level `footnotes` array while
references remain `[^id]` inside text-capable elements. See the complete
[Footnotes schema reference](/api-reference/json-syntax/footnotes).
DOCX import and export preserve footnotes as native Microsoft Word footnotes.
PDF output places them in the document's normal footnote area. Repeated
references keep one shared definition and a stable visible number.
# Using Autype
Source: https://docs.autype.com/getting-started/editor/overview
From sign-up to document export — everything you need to know about the Autype application.
This section covers the full Autype application — from creating your account to exporting finished documents.
Create your account with email, Google, or GitHub. Verify your email and sign in.
AI document generation, project and document management, search, filters, and view modes.
Profile, appearance, billing, team members, and API keys.
Write visually or in Extended Markdown, verify the PDF preview, and manage reusable document resources.
# Settings
Source: https://docs.autype.com/getting-started/editor/settings
Manage your profile, appearance, editor preferences, team members, and API keys from the settings modal.
Open settings by clicking your **user icon** in the sidebar. The settings modal has five tabs.
***
## Profile
Manage your personal account information.
| Field | Description |
| ------------------- | ---------------------------------------------------------------------------------------------------- |
| **Profile Picture** | Upload a JPG, PNG, GIF, or WebP image (max 2 MB). Click the camera icon on your avatar to change it. |
| **Display Name** | Your name shown in documents and to collaborators |
| **Email Address** | Read-only. Contact support to change your email. |
| **Bio / Role** | Brief description used in document metadata (e.g., author role) |
At the bottom of the profile tab:
* **Log Out** — end your current session
* **Request Account Deletion** — permanently delete your account and all data (sends an email to support)
***
## Appearance
Choose the visual theme for the Autype interface.
### Default themes
| Theme | Description |
| --------- | ----------------------------------------------- |
| **Light** | Clean & bright — white backgrounds, dark text |
| **Dark** | Easy on the eyes — dark backgrounds, light text |
### Custom themes
| Theme | Description |
| ----------- | --------------------------------- |
| **Classic** | Elegant & warm tones |
| **Neon** | Cyberpunk-inspired vibrant colors |
A live **preview card** at the bottom shows how buttons and text look in the selected theme.
The theme setting applies to the Autype interface only. It does not affect the styling of your exported documents.
***
## Editor
Configure editor-specific behavior and defaults.
### Spellcheck
Enable or disable the browser's built-in spellchecker for the Markdown editor. When enabled, misspelled words are underlined directly in the code editor.
| Option | Description |
| --------------------- | ------------------------------------------------------------- |
| **Enable Spellcheck** | Toggle the browser spellchecker on/off in the Markdown editor |
### Default preview mode
Choose which preview mode opens by default when you open a document:
| Mode | Description |
| ------- | ----------------------------------------------------------------------- |
| **Web** | HTML preview — fast, instant updates as you type |
| **PDF** | Document preview — exact page layout with margins, headers, and footers |
***
## Team Members
Manage who has access to your organization.
Team management is available on the **Team** plan and above. Engine, Editor,
and Pro are single-seat plans.
### Organization ownership
Currently, each user can only **own and manage one organization**. This is due to how billing is structured — the organization owner is responsible for the subscription and all credit usage within the organization.
However, a user can be a **member of multiple organizations** and switch between
them freely. Billing and member administration depend on the user's role in the
active organization.
### Inviting members
1. Enter the email address of the person you want to invite
2. Select their role: **Admin** or **Member**
3. Click **"Send Invite"**
The invited person receives an email with a direct link to join your
organization. Team subscriptions start with five seats and are billed centrally
through the organization owner's subscription. Seat assignment and member
access are managed from this page.
### Roles
| Role | Permissions |
| ---------- | -------------------------------------------------------------- |
| **Owner** | Full access, billing, delete organization. Cannot be changed. |
| **Admin** | Manage members, projects, and settings. Cannot manage billing. |
| **Member** | Create and edit documents within assigned projects. |
### Managing members
Click the **⋮** menu next to a member to:
* **Change role** — promote or demote between Admin and Member
* **Remove** — revoke access to the organization
***
## API Keys
Create and manage API keys for programmatic access to Autype.
API keys are **scoped to a specific organization**. If you are a member of multiple organizations, you can create separate API keys for each one. Select the desired organization before creating a key.
### Creating an API key
1. Select the organization the key belongs to
2. Click **"Create API Key"**
3. Enter a name for the key (e.g., "Production", "CI/CD")
4. Select the scopes (permissions) the key should have
5. Optionally set an expiration date
6. Click **"Create"**
The full API key is only shown **once** after creation. Copy it immediately and store it securely. You will not be able to see it again. If you lose the key, you must delete it and create a new one.
### Managing API keys
Each key shows:
* **Name** and **key prefix** (first characters for identification)
* **Scopes** — which operations the key can perform
* **Created date** and **last used date**
* **Expiration** — when the key becomes invalid (if set)
Click **"Revoke"** to permanently disable a key.
See the [Developer API documentation](/api-reference/introduction) for how to use API keys in your integrations.
# AI Assistant Panel
Source: https://docs.autype.com/getting-started/editor/sidebar-chat
Chat with the AI assistant to edit, rewrite, or extend your document content — directly from the sidebar.
The **AI Assistant** panel () runs a
document-aware agent. It can plan and complete multi-step changes, retrieve
only the relevant parts of long documents, and use focused tools for content,
abbreviations, citations, variables, reusable blocks, and styles.
***
## Sending messages
Type your message in the input field and press **Enter** to send (use **Shift + Enter** for a new line). The assistant analyzes your document and responds with text, proposed changes, or both.
Each chat conversation is stored in the **chat history**. You can start a new chat with the button or browse previous conversations via the button.
***
## File attachments
Click the button to attach a file to your message. The assistant can read and analyze the file content as part of the conversation.
| Format | Extensions | Max size |
| --------------- | --------------------------------------------------------- | -------- |
| **Images** | JPG, PNG, GIF, WebP | 10 MB |
| **PDF** | PDF | 20 MB |
| **Word** | DOCX | 15 MB |
| **Excel** | XLSX, XLS | 10 MB |
| **CSV** | CSV | 5 MB |
| **Text / Code** | TXT, MD, JSON, JS, TS, JSX, TSX, PY, HTML, CSS, XML, YAML | 2 MB |
## Editor selection
You can select text in the editor and send it as context to the assistant:
1. **Select text** in the editor — an overlay button appears above the selection.
2. Click **Add to Chat** — the sidebar switches to the Assistant panel and the selection is attached to your next message.
The selection context is shown as a badge above the input field. You can remove it with the button.
***
## Proposed changes
When the assistant modifies your document, it shows a **change preview** below its response. The preview summarizes what was changed — sections added, updated, or deleted, as well as changes to variables, abbreviations, citations, or style defaults.
You can:
* **Accept** — applies the changes to your document
* **Decline** — discards the proposed changes
* **View diff** — expand the change preview to see a detailed before/after comparison
* **Full diff** — open a full-screen modal showing the complete document diff with all changes highlighted
Click the expand button to open the full document diff in a modal view:
If you send a new message while changes are still pending, the pending changes are automatically declined.
***
## What the assistant can do
The assistant is not limited to editing text content. It can modify multiple areas of your document:
| Area | Examples |
| ---------------------- | ------------------------------------------------------------------------------------- |
| **Content** | Write, rewrite, extend, summarize, or restructure sections |
| **Variables** | Add, update, or remove document variables |
| **Abbreviations** | Add or modify abbreviation definitions |
| **Citations** | Add or update bibliography entries |
| **Reusable blocks** | Find and insert approved blocks when requested or after confirmation |
| **Styles** | Apply a preset or adjust fonts, colors, spacing, captions, and other defaults |
| **Document settings** | Change page size, orientation, margins |
| **Files and research** | Read attached files and retrieve supporting web information when the task requires it |
***
## Billing
Completed assistant tasks use the monthly assistant allowance of your plan.
They do not consume automation credits. A task can contain multiple internal
tool steps; it counts as one assistant task from the product perspective.
For details on credit pricing and plan limits, see [Pricing](/getting-started/pricing).
# Comments Panel
Source: https://docs.autype.com/getting-started/editor/sidebar-comments
Add contextual comments in Markdown or visual mode, reply to threads, and coordinate reviews.
The **Comments** panel () lets you add
comments to Markdown lines or visual-editor blocks. Use threads for feedback,
questions, and review decisions without moving the discussion outside the
document.
***
## Creating a comment in Markdown
To add a comment, hover over the area between the line number and the text in the editor. A button appears on the current line.
Click the button to open the **Add Comment** modal. The modal shows the target line number and a text field for your comment. Press **⌘ + Enter** (or **Ctrl + Enter**) to submit, or click **Add Comment**.
The comment is now anchored to that line and appears in the sidebar.
## Creating a comment in Write mode
Right-click the visual block you want to discuss and choose **Add comment**.
The same comment modal opens and stores an anchor adjacent to the corresponding
Extended Markdown element. A comment icon appears to the right of the visual
editor. Select it to open the Comments panel with that thread active.
***
## Comment anchor placement
Comment anchors are invisible markers embedded directly in your Markdown source. Where exactly the anchor is placed depends on the type of content you comment on:
* **Single-line elements** (headings, paragraphs, list items, etc.) — the anchor is inserted on the same line, at the end of the text.
* **Multi-line elements** (code blocks, tables, lists, blockquotes, etc.) — the anchor is placed on a **new line directly below** the element. Commenting on any item within a list or any row within a table will place the anchor after the entire block. This is because inserting a marker inside a multi-line block would break its syntax.
### Anchor movement during editing
Because anchors live inside the document text, they behave like any other character when you edit around them:
* **Pressing Backspace** at the beginning of the line below the comment icon will delete the anchor. This happens because the anchor marker is stored at the end of that line — pressing Backspace merges the lines and removes the anchor in the process.
* **Deleting lines** above the anchor shifts it upward.
* **Adding lines** above the anchor shifts it downward.
This means the comment may appear to "move" to a different line after edits — it is still attached to the same position in the text, but the line number changes as surrounding content shifts.
If the anchor ends up in an unexpected position after editing, you can always click the comment in the sidebar to jump to its current location in the editor.
***
## Viewing comments
The sidebar lists all comment threads for the current document. Each card shows the author's avatar, name, timestamp, and the comment text.
Only the comments of the **selected** (expanded) thread are fully visible. Collapsed threads show a reply count if they have replies — click a thread to expand it.
### Filter tabs
When comments exist, three filter tabs appear at the top:
| Tab | Shows |
| ------------ | ----------------------- |
| **All** | All comment threads |
| **Open** | Unresolved threads only |
| **Resolved** | Resolved threads only |
***
## Navigating between editor and comments
Comments and the editor are linked **bidirectionally**:
* **Sidebar → Editor**: Click a thread to jump to its Markdown line or visual block.
* **Editor → Sidebar**: Click the amber comment icon in the Markdown gutter or beside the visual editor to open and select the thread.
***
## Thread actions
Hover over a comment thread and click the menu to access actions:
* **Resolve** — marks the thread as resolved. Resolved threads appear grayed out and move to the **Resolved** filter tab. You can reopen a resolved thread from the same menu.
* **Delete** — permanently removes the thread (only available for your own comments).
### Replies
When a thread is expanded (selected), a reply input appears at the bottom. Type your reply and press **Enter** to send. You can also use quick emoji reactions (👍 ❤️ 🎉 👀) via the button when the input is empty.
***
## Orphan comments
Comment anchors are embedded in your document as hidden markers. If you delete the line that contains an anchor, the comment loses its position in the document.
When a comment anchor is removed (e.g., by deleting the line), the comment is **not** automatically deleted. It remains in the sidebar but is grayed out with an amber "Removed from document" warning. You can still read it, but replying is disabled. To fully remove it, delete the thread manually via the menu.
# Documents Panel
Source: https://docs.autype.com/getting-started/editor/sidebar-documents
Quickly access your most recently edited documents from the sidebar — without leaving the editor.
The Documents panel () gives you a quick way to switch between your **recently edited documents** without navigating back to the workspace.
***
## How it works
When you open the Documents panel, it shows up to **15 of your most recently edited documents** across all projects. Each entry displays:
* **Document title**
* **Project name** the document belongs to
* **Last edited date and time**
The **currently open document** is highlighted with an accent border and a colored icon so you can always see which document you're working on.
***
## Switching documents
Click any document in the list to open it directly in the editor. The switch happens instantly — there's no need to go back to the workspace, find the project, and then open the document.
This is especially useful when you're working on multiple documents at the same time — for example, a main report and an appendix, or several related templates.
# Version History Panel
Source: https://docs.autype.com/getting-started/editor/sidebar-history
View, compare, and restore previous versions of your document — with automatic and manual snapshots.
The Version History panel () tracks every change to your document. Autype automatically creates snapshots in the background, and you can create named versions manually at any time.
***
## Automatic snapshots
Autype creates **automatic snapshots** at regular intervals as you work. You don't need to do anything — they are created silently in the background whenever your document is saved.
The last **50 snapshots** are retained per document. Older snapshots are automatically removed to keep the list manageable. Automatic snapshots are grouped under the **"Auto-saved"** section and labeled with a timestamp, the author, and a version number.
***
## Manual (named) versions
In addition to automatic snapshots, you can create **named versions** at any point — for example, before a major rewrite, after completing a section, or before sending a document to a client.
Click the **"+ Create Version"** button at the top of the panel to open the dialog:
Enter a descriptive name (e.g., *"Before refactor"*, *"Version 2.1"*, *"Final draft"*) and click **Create**. The named version appears in its own **"Named Versions"** section above the auto-saved snapshots.
Named versions are never automatically deleted. Use them to mark important milestones you may want to return to later.
***
## Version actions
Each version entry shows the **version name or message**, **author avatar and name**, and **relative timestamp**. When you hover over a version, three action buttons appear:
| Button | Action | Description |
| -------------------------- | ------------- | ---------------------------------------------------------------------------- |
| | **View diff** | Opens a side-by-side comparison of this version against the current document |
| | **Restore** | Restores the document to this version (with confirmation) |
| | **Delete** | Permanently deletes this version (with confirmation) |
***
## Diff view
Clicking the button opens a full-screen **side-by-side diff view** powered by Monaco Editor.
* **Left side** — the selected version (the older state)
* **Right side** — the current document (the latest state)
Changes are highlighted inline: **red** for removed content, **green** for added content. You can scroll through the entire document to review all differences.
### Markdown / JSON toggle
In the top-right corner of the diff dialog, a toggle lets you switch between **Markdown** and **JSON** view:
| Mode | Shows |
| ------------ | ------------------------------------------------------------------------------------------------ |
| **Markdown** | The human-readable Markdown content — best for reviewing text changes |
| **JSON** | The raw document schema — useful for inspecting structural changes (variables, styles, metadata) |
From the diff view, you can also click **"Restore this version"** to restore directly without closing the dialog first.
***
## Restoring a version
When you restore a version (either from the hover action or from the diff view), Autype:
1. **Creates a new snapshot** of the current document state — so you can always undo the restore
2. **Replaces the document content** with the selected version's content
A confirmation dialog is shown before the restore is applied.
Restoring a version is **not available during live collaboration sessions** with other active users to prevent conflicting document states. If other users are currently editing, you'll see an error message.
# Images Panel
Source: https://docs.autype.com/getting-started/editor/sidebar-images
Upload, manage, and insert images into your document from the sidebar panel.
The **Images** panel () lets you upload, generate, and browse images for your document. It has three tabs: **My Images**, **AI Gen**, and **Stock**.
***
## My Images
This tab shows all images uploaded to the current document. At the top is a drop zone where you can **click or drag & drop** files to upload.
**Upload limits:**
| Constraint | Value |
| ------------------------ | -------------------- |
| **Formats** | PNG, JPG, JPEG, WebP |
| **Max file size** | 25 MB |
| **Max files per upload** | 5 |
### Inserting images into your document
There are two ways to insert an uploaded image:
1. **Copy markdown** — hover over an image and click the **Copy** button. This copies the full markdown syntax to your clipboard, ready to paste into the editor.
2. **Drag & drop** — drag an image directly from the panel into the editor. The markdown syntax is inserted automatically at the drop position.
When hovering over an image, two buttons appear:
* **Copy** — copies Markdown image syntax with the protected `/image/{assetId}` source
* **Delete** — permanently removes the image from the document
### Markdown image syntax
Images use standard Markdown syntax:
```markdown theme={null}

```
The text inside the square brackets becomes the **figure caption**. Captions are auto-numbered (e.g., *Figure 1: Caption text*).
If the square brackets are empty (``), **no caption** is generated for the image.
You can customize caption appearance (prefix, font size, font style, alignment) or disable captions entirely in the [Styles panel](/getting-started/editor/sidebar-styles#figure-captions).
For the full image syntax reference including sizing, alignment, anchors, and the image directive, see [Markup Reference → Images](/markup-reference/images).
***
## AI Gen
Generate images using AI directly from the sidebar. Enter a prompt, choose an aspect ratio, and optionally specify a style.
**Options:**
| Setting | Values |
| ---------------- | ---------------------------------------------------------------------- |
| **Aspect Ratio** | 1:1 (Square), 16:9 (Wide), 9:16 (Tall), 4:3 (Standard), 3:4 (Portrait) |
| **Style** | Optional — e.g., `cartoon`, `photorealistic`, `watercolor` |
Generated images are automatically added to your **My Images** library and can be inserted into the document the same way as uploaded images.
AI image generation uses one image from your plan's monthly AI image
allowance. The panel shows the requirement before generation.
***
## Stock
Search for free high-quality photos powered by **Unsplash**. Enter a search term and browse the results.
Stock images can be inserted via **drag & drop** or by clicking the **Copy** button (copies the markdown with the public Unsplash URL). An button opens the full-resolution image in a new tab.
Photographer credits are shown on hover at the bottom of each image.
# Records
Source: https://docs.autype.com/getting-started/editor/sidebar-records
Save reusable variable datasets for a document, check compatibility, render historical outputs, and import data in bulk.
Records store one named set of variable values for a document, such as one
customer, offer, contract, or case. They let you reuse a single maintained
document without creating a separate document copy for every output.
## Create a record
1. Open **Records** in the document sidebar.
2. Click the add button.
3. Enter a label for the customer or case.
4. Fill the form generated from the document's current variables.
5. Review the live preview, save the record, and choose an export format when
you are ready to render.
Text, number, image, list, and table variables use type-specific controls.
Images can be uploaded as protected document assets; tables can be edited as a
grid rather than raw JSON.
## Edit and preview
Open an existing record to edit its typed values next to a live document
preview. Preview changes are rendered against the document version pinned to
that record and do not overwrite the saved values until you explicitly save.
This makes it possible to verify an older customer output even after the source
document has evolved.
Each successful export stores the resolved input snapshot and output metadata
with the record. Re-exporting an old record therefore remains traceable instead
of silently adopting unrelated current defaults.
## Compatibility when variables change
Records remain associated with the document version they were created for.
Autype compares their values with the current variable definitions and reports:
* missing values,
* unused values,
* type mismatches, and
* missing variable definitions.
You can update a record for the current document or keep an older record pinned
to its historical version and export it again. This prevents later variable
changes from silently changing an old customer output.
## Import and bulk
The second view in the Records panel supports two workflows:
| Workflow | Result |
| ------------------------- | ------------------------------------------------------- |
| Temporary bulk generation | Render many rows without keeping each row as a record |
| Import | Create persistent records from CSV, Excel, or JSON data |
Use temporary bulk output for one-off batches. Use imported records when the
customer/case data and its render history must remain available.
# Reusable Blocks
Source: https://docs.autype.com/getting-started/editor/sidebar-reusable-blocks
Create, organize, edit, and insert organization-wide content blocks from the document editor.
The **Reusable Blocks** sidebar contains organization-wide content that can be
shared across documents: legal clauses, product descriptions, standard terms,
disclaimers, and other repeated sections.
## Create and edit a block
1. Open **Reusable Blocks** in the editor sidebar.
2. Click the add button.
3. Enter a name, optional description, category, and tags.
4. Write the content in **Rich text** or **Markdown** mode.
5. Optionally add a short changelog note and save the block.
Blocks are stored as Extended Markdown and versioned when their content is
updated. Metadata-only edits such as changing a category do not create an
unnecessary version. Categories and tags make larger libraries searchable.
You can also right-click a supported block in the visual editor and choose
**Save as reusable block**. Autype opens the same create flow with that
document section as the initial content.
## Insert into a document
Place the editor cursor where the block should appear, then choose:
| Action | Behavior |
| ------------- | ----------------------------------------------------------------------------------- |
| **Reference** | Inserts a linked, read-only block. Updates can follow the selected library version. |
| **Copy** | Inserts an editable snapshot that is independent from future library changes. |
Referenced blocks display their name and resolved content in the rich text
editor. Edit the source block from the sidebar instead of modifying the linked
content directly.
You can also drag a block from the sidebar to the current editor position.
Drag-and-drop always creates a **Reference**, never a copied snapshot.
## History, restore, and detach
Open **Library → Reusable blocks** for a searchable table of all blocks. Choose
**History** on a row to review every published version, its changelog note,
timestamp, rendered preview, and source Markdown.
Choose **Restore this version** to return to earlier content. Restore never
deletes or overwrites history: it copies the selected content into a new current
version and records which version it came from. This keeps existing pinned
references deterministic and makes every rollback auditable.
A reference can follow the block's **latest** version or stay **pinned** to one
specific version. When a newer version exists, update the pinned reference from
its context toolbar. To customize linked content only for the current document,
choose **Detach**; the resolved block becomes ordinary editable document
content and no longer receives library updates.
The document stores fallback content with a reference so conversions and
previews remain deterministic even if the library item is temporarily
unavailable. Organization permissions still control access to the source block.
Use references for centrally maintained content. Use copies when the inserted
text must be customized for one document.
# Styles Panel
Source: https://docs.autype.com/getting-started/editor/sidebar-styles
Create, manage, and apply document style presets — control fonts, colors, spacing, headers, footers, and more.
The **Styles** panel () lets you create, manage,
preview, and apply organization-wide document style presets. Styles control
fonts, colors, spacing, headers, footers, tables, form fields, charts, and more.
The visual **Page Design** workspace supports document styling master
pages, first/odd/even variants, reusable multi-row regions, mirrored margins,
backgrounds, and repeating page decoration. Existing documents and presets
remain fully supported. Legacy rendering remains available until a style is
explicitly upgraded. See
[Document Styling](/api-reference/json-syntax/document-styling).
***
## How styles work
Styles in Autype follow a **copy-on-apply** model:
1. You create a **style preset** (or choose a template) that defines fonts, colors, spacing, headers, footers, etc.
2. When you click **Apply** or **Use Template**, the style configuration is **copied into the document**. The document now has its own independent copy of that style.
3. You can further customize the document's style via **Edit Document Style** at the top of the panel. These changes only affect the current document.
### Permissions and shared assets
Company styles and their images are readable across the organization so team
members can consistently reuse logos, backgrounds, headers, and footers.
Creating or changing a company style requires a licensed organization member;
changing the organization default requires an organization owner or
administrator.
Applying a style never grants additional document access. The user must already
have edit permission for the target document. Images used by a company style
are copied into that document during application, which keeps existing
documents independent from later preset changes.
Autype prevents deletion of a company image while any style preset still
references it. Remove or replace the image in those presets first. For users
who belong to multiple organizations, the target organization must be selected
explicitly when creating styles or uploading style images.
If you later edit a style preset, documents that were previously styled with it are **not** updated automatically. You must re-apply the style to propagate changes. This is by design — otherwise modifying a shared preset would unexpectedly alter all documents that use it.
***
## Sidebar overview
The panel has two main areas at the top:
* **Document Style** — click **Edit Document Style** to open the Style Editor and modify the current document's styling directly. Changes apply only to this document.
* **Create New Style** — creates a reusable style preset that can be applied to any document.
Below that, two sub-tabs organize your styles:
### My Styles
Lists style presets available to your organization. Each card includes a cached
PDF preview, name, description, page size, and default font. Actions per style:
* **Apply / Re-apply** — applies the style to the current document
* **Edit** — opens the Style Editor to modify the preset
* **Delete** — permanently removes the preset
### Templates
Autype ships 30 complete schema-version-2 system styles covering executive
reports, consulting and sales proposals, legal memoranda, research papers,
journal manuscripts, ESG and nonprofit reports, clinical reports, financial
statements, audit and compliance reports, whitepapers, product requirements,
employee handbooks, invoices, policy briefs, investment memos, brand
brochures, board minutes, and operations playbooks.
Each system style includes typography, element styles, page geometry,
background decorations, reusable header/footer regions, tables, forms,
charts, references, and PDF/DOCX-safe defaults. Choose **Use Template** in a
document to attach the immutable built-in style directly; no workspace copy is
created. Choose **Customize** in the Workspace Library only when you want an
editable, independently named preset. The built-in source is never modified.
The thumbnails are prerendered from the exact shared definitions with the
production document renderer. A catalog manifest hashes both definition and
image, and the image hash is used as the browser/CDN cache key. Production
builds fail when a definition changes without regenerating its preview, so
users never receive a stale or per-card runtime placeholder.
***
## Style Editor
The Style Editor is a full-screen design studio. **Page Design** uses a large,
zoomable page canvas. Click the page, header, or footer to open only the tools
for that area; close the inspector to use the full canvas width. Typography,
text elements, tables, fields, charts, code, and references remain focused
setting areas with a rendered PDF preview. The style name is always available
in the top bar, so it is not hidden inside one tab.
On Pro, Team, and Enterprise plans you can generate a complete style using
AI. Click **Generate with AI**, describe
the look you want, and the same strong text model used by the document agent
returns a complete current `StyleDefinition`: document setup, typography,
page variants, page objects, reusable regions, and element styles. Legacy
`header`/`footer` output is rejected. The result must pass schema, physical
layout, PDF, and DOCX compatibility checks before it reaches the editor.
***
### Page Design
**Page Design** is the primary workspace for physical page layout:
* switch directly between **Master**, **First page**, **Odd**, **Even**,
**Section first**, and **Blank**;
* use the always-visible **Page setup** control to choose A3, A4, A5, Letter,
or Legal format and portrait or landscape orientation;
* click the dashed content area, header, or footer directly on the page to open
its contextual editor;
* drag the blue margin guides on the page or enter exact millimetre values;
* drag the two horizontal handles on a selected header or footer to change its
distance from the page edge and its minimum height;
* zoom the editing canvas in or out without changing the document;
* switch to a two-page spread to review odd and even pages together;
* set page background colors, gradients, images, content columns, and classic
side strips;
* create a header or footer from the visible empty area on the page, or reuse
an existing region;
* empty headers, footers, and region cells remain visible as dashed click/drop
targets, so adding the first element does not require finding a form field;
* choose a visual one-, two-, three-column, or two-row layout in the region
inspector;
* drag text, fields, images, lines, variables, spacing, QR codes, and shapes
from the persistent element palette into any header or footer column;
* drop several elements into the same column to stack or arrange them there;
* select an element directly on the page to edit, reorder, replace, or remove
it in the contextual inspector;
* click an individual header or footer cell to set its horizontal
left/center/right/stretch alignment and vertical top/middle/bottom/stretch
alignment;
* use custom grid controls only when the visual presets are insufficient;
* undo and redo local changes while structural, physical-layout, DOCX, and PDF
compatibility feedback remains visible in the bottom bar.
The same palette also places free page objects directly on the selected master
or variant. Text, fields, images, lines, and shapes can be dragged onto the
page, then moved, resized, rotated, duplicated, locked, reordered, or removed.
The contextual object inspector exposes physical millimeter coordinates,
page/content anchoring, left/right/stretch constraints, background/foreground
layers, opacity, mirroring on even pages, clipping and overlap intent, image
fit and focal point, per-edge shape borders, arrows, and multi-stop linear or
radial fills. The Layers panel remains usable for background objects covered by
the gray content guide.
Existing current styles are read without rewriting their constraint representation:
right-anchored and stretched frames, token color references, gradient stops,
object IDs, locking, and layer order remain intact until the corresponding
value is edited. On First/Odd/Even/Section/Blank variants, inherited objects
are labelled as coming from Master. The first variant-specific edit creates an
explicit copy of the effective object list; **Edit Master instead** keeps the
shared design linked. Design starters such as double rails, page frames,
corner marks, top/bottom bands, and watermarks insert ordinary editable page
objects rather than a second template data structure.
Use **Output preview** to switch the center workspace from the fast editing
canvas to the authoritative rendered PDF, then return with **Edit canvas**.
Before a current style is applied, Autype validates the complete merged document and
renders a temporary DOCX/PDF preview with the active renderer. The new document
snapshot is written only after that preflight succeeds. If rendering fails, the
existing document remains unchanged and copied style assets are rolled back.
The editor also blocks Apply/Save while a page object or background still
contains an unfinished image selection or an unsafe physical layout.
The gray dashed rectangle is the document content area. It is deliberately not
a document preview: it makes margins and repeating page elements easy to edit
without pretending to be the final renderer. DOCX/PDF rendering remains the
authoritative output.
Odd and even margin controls update the master's mirrored inside/outside
margins. Office formats cannot safely change section geometry on alternating
page variants. Different page size, orientation, columns, or section margins
therefore use an advanced section layout assigned to that section.
For a legacy style the canvas initially shows a lossless preview and a warning.
Merely opening and closing the editor does not migrate or rewrite it. Choose
**Convert to visual design** explicitly before editing. The conversion stores
the current page data while legacy import, validation, and rendering remain
supported.
***
### Typography
Set the global default font and configure heading numbering, figure captions, table captions, and code captions.
**Default Font** — applies to all text unless overridden by element-specific styles:
| Setting | Description |
| --------------- | ------------------------------------- |
| **Font Family** | Choose from a wide selection of fonts |
| **Font Size** | Size in points |
| **Color** | Text color |
| **Line Height** | Line spacing multiplier (e.g., 1.5) |
**Heading Numbering** — automatically numbers headings using a format string:
| Character | Style |
| --------- | ---------------------------- |
| `1` | Numeric (1, 2, 3) |
| `a` | Lowercase letters (a, b, c) |
| `A` | Uppercase letters (A, B, C) |
| `i` | Roman lowercase (i, ii, iii) |
| `I` | Roman uppercase (I, II, III) |
| `α` | Greek letters |
Example: `1.1.a` produces headings like *1. Title*, *1.1 Section*, *1.1.a Subsection*.
**Figure Captions** — controls how image and chart captions are rendered:
| Setting | Description |
| --------------- | ------------------------------------------------------- |
| **Prefix** | Text before the number (e.g., `Figure`, `Abb.`, `Fig.`) |
| **Size** | Font size in points |
| **Font Family** | Override or inherit from defaults |
| **Weight** | Normal or Bold |
| **Style** | Normal or Italic |
| **Color** | Caption text color |
| **Align** | Left, Center, or Right |
| **Spacing** | Space between the image/chart and the caption |
| **Disable** | Turn off figure captions entirely |
A figure caption renders as: **Figure 1: Your caption text**. The number is auto-incremented across the document. Set the prefix to `"Abb."` for German documents or `"Fig."` for abbreviated English.
**Table Captions** — same options as figure captions but for tables. A table caption renders as: **Table 1: Your caption text** (prefix defaults to `Table`).
**Code Captions** — same options as figure captions but for code blocks. A code caption renders as: **Listing 1: Your caption text** (prefix defaults to `Listing`). Code blocks with a caption are automatically collected in the [List of Code Listings](/markup-reference/indices#list-of-code-listings).
Diagram code blocks (e.g., `mermaid`, `plantuml`) use the **Figure Captions** style when rendered as images. The **Code Captions** style applies when `renderAsImage=false` or for non-diagram code blocks.
***
### Header & Footer
Existing legacy left, center, and right values are normalized into the visual
canvas without changing the stored style. Click the header or footer directly
on the page to inspect it. Choose **Convert to visual design** before making
changes; the legacy fields remain supported by import, validation, and
rendering.
The old three-position form is no longer a separate navigation item. This
avoids presenting two competing header/footer editors for the same style.
Drag one or more blocks from the persistent element palette into a header or
footer column:
| Type | Description |
| ------------ | --------------------------------------------------------------------------------------- |
| **Text** | Multi-line text with font size, weight, color, and alignment |
| **Field** | Page number, total pages, document title, author, section title, chapter title, or date |
| **Image** | Upload a managed style asset with its own dimensions |
| **Line** | Horizontal or vertical separator |
| **Variable** | A document variable with optional fallback |
| **Space** | Explicit spacing between blocks |
| **QR** | QR code generated from text or a URL |
| **Shape** | A reusable decorative shape |
**Available variables for text mode:**
| Variable | Output |
| ------------------------- | -------------------------------- |
| `{{pageNumber}}` | Current page number |
| `{{totalPages}}` | Total number of pages |
| `{{date}}` | Current date (DD.MM.YYYY) |
| `{{date/YYYY-MM-DD}}` | Custom date format |
| `{{date/DD.MM.YYYY/+7d}}` | Date with offset (+/-Nd, Nm, Ny) |
| `{{date/HH:mm//+01:00}}` | Date with timezone |
Use the **First page** variant to hide, replace, or redesign the header or
footer on the title page. Variants inherit the master until they are changed.
***
### Text Elements
Configure the typography for each heading level (H1–H6) and two body text styles (Text, Text 2). Each element can override the global defaults.
Per element:
| Setting | Description |
| ------------------------ | ---------------------------------------------------- |
| **Font Family** | Override or inherit from defaults |
| **Size** | Font size in points |
| **Weight** | Normal, Bold, or Inherit |
| **Color** | Text color |
| **Align** | Left, Center, Right, Justify, or Inherit |
| **Line Spacing** | Line spacing multiplier, e.g. 1.5 (body text only) |
| **Space Before / After** | Spacing in points |
| **Page Break Before** | Start a new page before this heading (headings only) |
**Text** is the default body style. **Text 2** is a secondary paragraph style activated by the `| text` prefix in Markdown. Both support the same properties but can be configured independently — useful for distinguishing regular paragraphs from supplementary text like annotations or side notes.
***
### Tables
Control the visual appearance of tables in your document.
**Borders:**
| Setting | Options |
| ---------------- | ---------------------------------------------- |
| **Outer Border** | Width (pt), Style (Solid/Dashed/Dotted), Color |
| **Inner Grid** | Width (pt), Style (Solid/Dashed/Dotted), Color |
**Header Row** — background color and text color for the first row.
**Cell Padding** — top, right, bottom, left padding in points.
**Spacing** — space before and after the table element.
***
### Form Fields
The **Form Fields** section controls document-wide defaults for text, number,
date, multiline, choice, signature, and initials controls.
| Setting | Description |
| ------------------------------ | --------------------------------------------- |
| **Border mode** | Outline, underline, or no border |
| **Line style / width / color** | Solid, dashed, or dotted field border |
| **Background / text color** | Field surface and entered text colors |
| **Font size** | Text size inside controls |
| **Inset / radius** | Inner padding and corner radius |
| **Checkbox shape** | Square or circle |
| **Checkbox border** | Independent checkbox border mode |
| **Container / hints** | Show or hide editor-only framing and metadata |
| **Spacing** | Space before and after form field blocks |
These values are stored in `defaults.styles.formField` and
`defaults.spacing`. A field can override them locally from its context toolbar.
***
### Charts
Configure the color palette used for chart series.
Define up to 5 series colors, each with a **fill color** and a **border color**. These colors are applied to bar charts, line charts, pie charts, and other chart types.
***
### Code Blocks
| Setting | Description |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Render as Image** | When enabled, code blocks are rendered as PNG images. This improves compatibility in DOCX exports where syntax highlighting may not be preserved natively. |
***
### Equations
| Setting | Description |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Render as Image** | When enabled, math equations are rendered as PNG images. This improves compatibility in DOCX exports where LaTeX rendering may not be supported natively. |
***
### References & Citations
Configure the styling for reference links, the List of Abbreviations, and the bibliography.
**Reference Links** — style for internal cross-reference links (e.g., `[](#anchor)`):
| Setting | Options |
| -------------- | --------------------------------- |
| **Link Color** | Color picker |
| **Text Style** | Bold, Italic, Underline (toggles) |
**List of Abbreviations:**
| Setting | Options |
| --------------- | -------------------------------- |
| **Sort Order** | Alphabetical or Document Order |
| **Separator** | Dash, Hyphen, Colon, Equals, Tab |
| **Font Size** | Size in points |
| **Font Family** | Override or inherit |
**Bibliography & Citations:**
| Setting | Options |
| ------------------ | --------------------------------------------------- |
| **Citation Style** | APA 7, Harvard, IEEE, Chicago, MLA, Vancouver, ABNT |
| **Font Family** | Override or inherit |
| **Font Size** | Size in points |
| **Entry Spacing** | Space between entries in points |
| **Hanging Indent** | Indent for continuation lines in cm |
***
### JSON Editor
For advanced users, the JSON Editor provides direct access to the raw configuration object. Changes are applied live as you type.
The editor uses Monaco (the same engine as VS Code) with syntax highlighting, folding, and validation. This is useful for fine-tuning values that are not exposed in the visual UI or for copying configurations between documents.
# Language Variants
Source: https://docs.autype.com/getting-started/editor/sidebar-translations
Generate read-only language variants, preview and export them, and regenerate variants when the source document changes.
The **Translations** panel creates language variants that remain linked to one
source document. A variant is generated only when you request it, does not
create another editable document, and can be previewed or exported as PDF,
DOCX, or ODT.
## Generate a language variant
1. Open **Translations** in the document sidebar.
2. Click **Generate translation**.
3. Search for a language or navigate the list with the arrow keys.
4. Select the language and wait for the translation to complete.
Autype checks the job while the panel is open. Closing the panel stops UI
polling but does not cancel the server-side translation.
Supported languages are English, German, French, Spanish, Italian, Portuguese,
Dutch, Polish, Swedish, Danish, Norwegian, Finnish, Czech, Romanian, Hungarian,
and Turkish.
## Preview and export
Completed variants are read-only. Use **Preview** to inspect the rendered PDF,
or export the variant as PDF, DOCX, or ODT. The original document remains the
single editable source of truth.
If you need an independently editable translation, use the translated output
as the starting point for a separate document instead of changing the linked
variant.
## Outdated variants
When the source document changes, existing variants are marked **Outdated**.
Choose **Regenerate** to translate the current source revision. Previous
exports are not modified.
Autype preserves document structure, styles, variables, citations, formatting,
page sections, tables, and form fields. It translates human-readable document
text in context and validates that variable placeholders remain unchanged.
Long documents are translated in ordered chunks with neighboring context.
Content from referenced reusable blocks, code and formulas, diagram and QR
sources, URLs, and variable values is not translated. Detach a reusable block
first if its resolved text must become part of the translated document.
# Variables Panel
Source: https://docs.autype.com/getting-started/editor/sidebar-variables
Define and manage document variables — text, numbers, images, lists, and tables — for reusable content, bulk generation, and API automation.
The Variables panel () lets you define **named placeholders** that can be used throughout your document. Instead of repeating the same value in multiple places, define it once as a variable and reference it with `{{variableName}}` — when the value changes, every occurrence updates automatically.
***
## Why use variables?
* **Central updates** — Change a company name, logo, or document number in one place and it updates everywhere in the document.
* **Bulk generation** — Variables serve as the template for [bulk document creation](/automation/overview). Define default values in the editor, then override them per document via CSV or API.
* **API automation** — When generating documents via the [REST API](/api-reference/introduction), variables are passed as JSON. The values defined in the panel act as defaults that can be overridden at render time.
***
## Variable types
Autype supports five variable types. Use the buttons at the top of the panel to add a new variable:
| Type | Icon | Use case |
| ---------- | ------------------------- | ------------------------------------------------- |
| **Text** | | Short inline values — names, dates, labels |
| **Number** | | Numeric values — amounts, counts, IDs, chart data |
| **Image** | | Logos, signatures, photos — anything visual |
| **List** | | Ordered or unordered lists of items |
| **Table** | | Structured data with named columns and rows |
When creating a variable, you choose a **name** that must start with a letter or underscore and can only contain letters, numbers, and underscores (e.g. `companyName`, `logo_image`, `featureList`). The name cannot be changed after creation.
***
## Text variables
A text variable holds a single string value (max 1,000 characters). Use it for anything that appears inline in your document — company names, author names, dates, etc.
**Insert into document:**
```markdown theme={null}
Dear {{companyName}}, please find attached...
```
Text variables can be placed **anywhere inline** — inside paragraphs, headings, table cells, or list items.
***
## Number variables
A number variable holds a single numeric value (integer or decimal). Use it for amounts, counts, IDs, or any dynamic numeric content.
**Insert into document:**
```markdown theme={null}
Total: {{totalAmount}} EUR
```
Number variables are automatically converted to their string representation when used inline. They are especially useful in **chart data arrays**, where they are resolved to numeric values at render time.
For chart variable substitution details, see the [JSON Syntax — Charts](/api-reference/json-syntax/sections/media#variable-substitution-in-charts) reference.
***
## Image variables
An image variable stores a reference to an image file along with optional **width**, **height**, and **caption** properties.
You can either enter an image path manually or click the button to upload an image directly. Uploaded images are stored as project assets.
| Field | Required | Description |
| ----------- | -------- | ----------------------------------------------------------- |
| **Source** | Yes | Image path (e.g. `/image/assetId`) or external URL |
| **Width** | No | Width in pixels (10–2,000) |
| **Height** | No | Height in pixels (10–2,000) |
| **Caption** | No | Caption text displayed below the image (max 200 characters) |
**Insert into document:**
```markdown theme={null}
{{companyLogo}}
```
Image variables must be placed on their **own line** — they cannot be used inline within a paragraph.
***
## List variables
A list variable holds an ordered or unordered list of text items (up to 100 items, each max 1,000 characters). Toggle between **Unordered** and **Ordered** using the switch at the top of the variable.
Use **+ Add Item** to add entries and the button to remove individual items.
**Insert into document:**
```markdown theme={null}
{{featureList}}
```
List variables must be placed on their **own line** — they cannot be used inline within a paragraph.
***
## Table variables
A table variable stores structured data with **named columns** and **rows** (max 100 rows × 20 columns, cell content max 1,000 characters). Click **Edit Table Data** to open the table editor modal.
In the modal you can:
* **Edit column headers** — click directly on the header cells to rename them
* **Edit cell values** — click any cell to change its content
* **Add / remove rows and columns** — use the buttons below the table
* **Delete individual rows** — click the button on each row
The modal also shows the syntax hint for referencing individual columns: `{{TableName.columnName}}`.
**Insert into document:**
```markdown theme={null}
:::table{dataSource="PerformanceTable"}
| 2024 | 2025 | 2026 |
| --- | --- | --- |
:::
```
The column headers in the Markdown must match the column names defined in the variable. The `| --- |` separator row is required. At render time, the table is populated with the data from the variable.
Table variables use the directive syntax and must be placed on their **own line** — they cannot be used inline.
***
## Inserting variables
Every variable in the panel has a **copy button** that copies the correct insertion syntax to your clipboard:
| Variable type | Copied syntax |
| ------------- | ------------------------------------------------------ |
| **Text** | `{{variableName}}` |
| **Number** | `{{variableName}}` |
| **Image** | `{{variableName}}` |
| **List** | `{{variableName}}` |
| **Table** | `:::table{dataSource="variableName"}` + column headers |
Paste the copied syntax directly into your document at the desired position.
In Markdown mode the syntax remains visible. In Write mode Autype recognizes a
known variable and displays it as a visual variable token instead of raw
Markdown.
You can also drag a variable from the sidebar into either editor. Autype inserts
it at the drop position and preserves the required inline or block-level form
for that variable type.
You can also type `{{` manually in the editor and enter the variable name. The toolbar provides a searchable variable picker, including an option to create a new variable.
***
## Variables and bulk generation
The variables you define in the panel serve as the **default template values**. When you use [bulk generation](/automation/overview) or the [API](/api-reference/introduction), you can override any variable per document:
1. **Define variables** in the sidebar with sensible defaults
2. **Reference them** throughout your document with `{{variableName}}`
3. **Override values** per document via CSV upload (bulk) or JSON payload (API)
Any variable not overridden in a bulk job or API call keeps its default value from the panel.
For a full reference on variable syntax — including built-in variables like `{{date}}`, date formatting, and block-level usage — see the [Markup Reference: Variables](/markup-reference/variables).
# Signup & Login
Source: https://docs.autype.com/getting-started/editor/signup-login
Create your Autype account or sign in — with email/password or OAuth providers.
## Create an account
To get started with Autype, create an account at [app.autype.com/register](https://app.autype.com/register). New accounts can explore Engine in read-only mode, start a 14-day Pro trial, or activate headless jobs with permanent pay-as-you-go credits.
You can sign up using:
* **Google** — one-click sign up with your Google account
* **GitHub** — one-click sign up with your GitHub account
* **Email & Password** — enter your name (optional), email, and a password (min. 8 characters)
After signing up with email, you'll receive a **verification email**. Click the link in the email to activate your account.
If you don't see the verification email, check your spam folder. You can also request a new verification link from the verification page.
### Email verification
After registering with email, you are redirected to the verification page. Once you click the link in your inbox, your account is activated and you are automatically redirected to the workspace.
***
## Sign in
Go to [app.autype.com/login](https://app.autype.com/login) to sign in to your existing account.
### Supported sign-in methods
| Method | Description |
| -------------------- | ----------------------------------------------- |
| **Google** | Sign in with your Google account via OAuth |
| **GitHub** | Sign in with your GitHub account via OAuth |
| **Email & Password** | Sign in with your registered email and password |
### Forgot password
If you forgot your password, click **"Forgot password?"** on the login page.
1. Enter your email address
2. Click **"Send Link"**
3. Check your inbox for a password reset email
4. Click the link and set a new password
OAuth users (Google/GitHub) don't need a password. If you signed up via OAuth, simply use the same provider to sign in.
# Workspace
Source: https://docs.autype.com/getting-started/editor/workspace
Your central hub — create documents with AI, manage projects, switch organizations, and navigate your documents.
The workspace is the first screen you see after signing in. It combines AI-powered document creation with project and document management.
***
## AI document generation
At the top of the workspace, you'll find the **AI input field** — describe the document you want to create and Autype generates it for you.
### How to generate a document
1. **Select a project** — choose the target project from the folder dropdown (bottom-left of the input)
2. **Describe your document** — type a prompt like *"Create a business proposal with executive summary, problem statement, solution, and pricing"*
3. **Choose a writing style** — select from Professional, Academic, Casual, or Technical
4. **(Optional) Attach files** — attach up to 5 source files (PDF, DOCX, Excel, CSV, Markdown, text, JSON, or images) as reference material
5. **Choose a document style** — optionally select a reusable workspace or built-in style; otherwise the agent selects or creates a suitable style
6. **Reference an existing document** — type `/` in the prompt and choose a document with the keyboard or mouse
7. **Click the send button** — the agent may ask focused questions before it creates the document; open the result when generation completes
Successful AI document generations use the monthly document allowance of
your plan. Automation credits are used only for Developer API and bulk jobs.
See [Pricing](/getting-started/pricing).
### Quick prompts
Below the input field, four **prompt cards** offer ready-made starting points:
* **Business Proposal** — executive summary, problem statement, solution, pricing
* **Technical Documentation** — API overview, authentication, endpoints, examples
* **Project Report** — introduction, methodology, findings, conclusion
* **Project Plan** — timeline, milestones, risks, resources
Click any card to fill the input with the prompt text, then customize it before generating.
### Writing styles
| Style | Description |
| ---------------- | ----------------------------------- |
| **Professional** | Formal, business-appropriate tone |
| **Academic** | Scholarly, research-oriented style |
| **Casual** | Friendly, conversational tone |
| **Technical** | Precise, detailed technical writing |
| **Marketing** | Persuasive, benefit-focused copy |
***
## Organization switcher
If you belong to multiple organizations, use the **organization switcher** at the top of the workspace to switch between them.
Each organization has its own projects, documents, settings, and subscription. Your role (Owner, Admin, Member) is displayed next to each organization name.
***
## Projects & documents
Autype organizes content in a two-level hierarchy: **Projects** contain **Documents**.
### Projects view
When no project is selected, the workspace shows your projects in a compact
list by default. **Last modified** reflects the newest document change inside
each project, not only the project record itself.
Each project row or card shows:
* **Project name**
* **Last modified** date
* **Lock icon** for private projects
### Creating a project
Click the **"+ New Project"** card to create a new project.
| Option | Description |
| --------------- | ------------------------------------------------------------- |
| **Name** | Project name (required) |
| **Description** | Optional description |
| **Visibility** | `Public` (visible to all org members) or `Private` (only you) |
### Project actions
Open the **⋯** menu for a project to:
* **Rename** the project
* **Delete** the project (and all its documents)
### Documents view
Click a project to see its documents. A **"← Back to Projects"** button appears at the top.
### Creating a document
Inside a project, click **"+ New Document"** to create a blank document.
You can also:
* **Import** an existing `.aud` file (Autype's native format)
* **Import** a PDF, DOCX, or ODT file. DOCX uses the validated editable
roundtrip importer; any unavoidable normalizations are reported after import.
### Document actions
Hover over a document card and click the **⋯** menu to:
* **Rename** the document
* **Duplicate** the document
* **Download** the `.aud` file
* **Delete** the document
***
## Tabs: Documents & Templates
The workspace has two tabs:
| Tab | Content |
| ---------------- | --------------------------- |
| **My Documents** | Your projects and documents |
| **Templates** | Reusable document templates |
### Templates
Templates are public starting points that anyone can browse. The template grid
uses cached first-page previews so large catalogs remain fast to scan. Open
**Details** to inspect the complete rendered PDF, page count, category, and
template information. **Use template** copies the template into a project as a
normal document that you can edit independently.
Template owners can upload or update templates. Autype renders the full PDF and
regenerates the cached preview when the template source changes; existing
document copies are unaffected.
***
## Search, sort & view modes
### Search / filter
Use the **search field** in the controls bar to find documents across projects.
When the query is empty, the projects list is shown. Search and filters are
applied server-side before pagination, so matches are not limited to the
currently loaded page. Inside a project, the same control searches that
project's documents.
### Sort
Click the **sort dropdown** to order items by:
* **Last Modified** (default)
* **Name**
* **Date Created**
Click the same sort option again to toggle between ascending and descending order.
### View modes
Toggle between two view modes using the icons in the controls bar:
| Mode | Description |
| -------- | ---------------------------------------------------------------------- |
| **Grid** | Card-based layout with visual previews |
| **List** | Compact table layout with columns for name, date, and author (default) |
Projects, documents, and templates are loaded in server-side pages. Moving to
another page does not change the active search, category filter, or sort order.
***
## Sidebar & navigation
The workspace sidebar (visible on desktop) provides quick access to:
* **Workspace** — return to the main workspace
* **Settings** — open the settings modal
* **Theme toggle** — switch between light and dark mode
* **User menu** — profile, sign out
# Export readiness and PDF profiles
Source: https://docs.autype.com/getting-started/guides/export-readiness
Check document semantics and export tagged, archival, or accessible PDF profiles.
Autype includes a source-level **Export Readiness** check for documents created in the editor, through the Developer API, and through MCP.
The check currently covers semantic source risks such as:
* document title, author, and BCP 47 language metadata
* alternative text or descriptive captions for images
* heading hierarchy and skipped heading levels
* visible, meaningful table headers
* configured fonts that may not be portable to every renderer
* footnote and footer combinations that may collide after pagination
* circular charts whose dimensions could distort the result
* repeated inline styling that should be moved into a reusable style
The reported score is a **semantic source score**, not a visual approval of
the rendered document. Even a score of 100 still requires inspection of the
actual PDF, DOCX, or ODT output. Check pagination, overflow, collisions,
dynamic fields, fonts, charts, headers, and footers separately for every
target format.
## Check a document in the editor
Open **Export** and select **Check export readiness**. The report shows the
semantic source score, status, errors, warnings, and the document elements that
were inspected. Many metadata, portability, and layout findings are advisory;
actual structural errors can still block export. Edit the name and export
metadata under **Editor options → Document settings**; the same dialog can save
and run the readiness check.
## Check Extended Markdown through the API
Use `POST /api/v1/dev/render/readiness/markdown` with the same body accepted by Markdown rendering:
```json theme={null}
{
"content": "# Quarterly report\n\nReport content.",
"document": {
"type": "pdf",
"title": "Quarterly report",
"author": "Acme GmbH",
"language": "de-DE"
}
}
```
The equivalent advanced JSON endpoint is `POST /api/v1/dev/render/readiness`.
## Check through MCP
Use the Markdown-first `check_export_readiness` tool before `render_document`.
It performs the semantic source check without rendering and without consuming
credits. Its response identifies the scope as `semantic_source`, labels the
score as `semantic_source_score`, and sets `requiresRenderInspection` to `true`
so clients do not mistake source validation for visual QA.
## Choose a PDF profile
In the editor, open **Export → Export PDF** and choose the profile that matches the destination:
| Profile | Use it for | Form fields |
| ---------------- | ----------------------------------------------------------- | ----------- |
| **Standard PDF** | Sharing, printing, and forms that should remain interactive | Interactive |
| **PDF/A-2b** | Recommended archival output for most workflows | Flattened |
| **PDF/A-1b** | Conservative compatibility with older archives | Flattened |
| **PDF/A-3b** | Archival workflows that may embed source files | Flattened |
| **PDF/UA-1** | Accessible, tagged output based on the document structure | Flattened |
Compliance profiles flatten interactive form fields before export. This prevents a later AcroForm post-processing step from invalidating the profile metadata or tag structure. Use **Standard PDF** when recipients must complete the PDF interactively.
The Developer API accepts `pdfProfile` on PDF render requests:
```json theme={null}
{
"content": "# Accessible report\n\nReport content.",
"document": {
"type": "pdf",
"title": "Accessible report",
"author": "Acme GmbH",
"language": "en-US"
},
"pdfProfile": "pdfua-1"
}
```
Supported values are `standard`, `pdfa-1b`, `pdfa-2b`, `pdfa-3b`, and `pdfua-1`. MCP exposes the same choice as `pdf_profile` on `render_document` and `render_json`.
## Conformance scope
Autype verifies the requested profile marker and tagged-PDF flag after rendering. This is a technical safeguard, not an independent legal certification or a replacement for a specialized conformance validator in regulated workflows.
PDF/A-1b, PDF/A-2b, PDF/A-3b, PDF/UA-1, and tagged standard PDF are available without an external service. Their practical quality still depends on correct metadata, heading order, image descriptions, table headers, and reading order in the source document. Always inspect the rendered output in its target format; successful source validation cannot detect every pagination, font-substitution, or geometry issue.
Cryptographic PAdES signing is not generated by these profiles. It requires a certificate, private-key handling, and usually a qualified trust-service integration. Autype signature fields remain available as form controls, but they are not a PAdES signature by themselves.
# Guides
Source: https://docs.autype.com/getting-started/guides/overview
Step-by-step guides for real-world workflows — from your first document to bulk generation at scale.
Guides combine the visual editor, Extended Markdown, reusable resources, and
exports into complete workflows.
## Getting started
Create your first project, write a document, and export it as PDF — in under 5 minutes.
Start from a public template, customize the copied document, and use variables and records for repeatable output.
Generate read-only translations, detect outdated variants, and export them without forking the source document.
Check metadata and structure, then choose the appropriate PDF output profile.
## Use-case walkthroughs
Build a proposal template with corporate styling, client variables, and one-click PDF export. Perfect for consultants and agencies.
Set up citations with BibTeX import, automatic bibliography, cross-references, and all required indices (TOC, list of figures, list of tables).
Prepare a template, upload a CSV with recipient data, and generate up to 100 personalized documents in one job.
Create a style preset with your brand fonts, colors, headers, and footers. Share it across your organization so every document looks consistent.
## Automation & integration
Create an API key, send your first render request, and download the result. A minimal end-to-end example.
Trigger document generation from no-code platforms. Includes ready-to-use workflow examples.
# Autype Documentation
Source: https://docs.autype.com/getting-started/index
Create structured documents visually or with Extended Markdown, reuse styles and content, export to professional formats, and automate the workflow through API and MCP.
## Stop fighting your document tools
Autype combines a visual block editor with **Extended Markdown**, reusable
organization resources, professional exports, and automation. Write visually,
switch to Markdown when useful, and keep the complete structured JSON model
available for advanced clients and conversions.
Write in the visual editor or switch to Extended Markdown. Both modes edit the same structured document.
Generate complete documents, attach source files, edit selections, and use document-aware AI without exposing the full JSON schema to every prompt.
Use Markdown-first API and MCP workflows, records, reusable blocks, styles, bulk generation, and the full JSON model when needed.
## Why Autype?
| | Word / Google Docs | LaTeX | **Autype** |
| ------------------------------ | ------------------ | ----------- | ----------------------------------------------- |
| **Easy to use** | Yes | No | Yes |
| **Consistent styling** | Hard to maintain | Yes | Yes, by design |
| **Cross-references** | Break silently | Yes | Yes, with real-time validation |
| **API & automation** | No | No | Full REST API + bulk jobs |
| **Bulk document generation** | No | No | Up to 100 documents per job |
| **LLM / AI integration** | Limited | No | Agentic generation + Markdown-first API/MCP |
| **Real-time collaboration** | Limited | No | Opt-in per document, with live cursors |
| **Version history & rollback** | Limited | No | Auto + named versions, diff, one-click rollback |
| **Markdown syntax** | No | No | Yes, with extensions |
| **EU hosting & privacy** | Varies | Self-hosted | Yes, GDPR-compliant |
## Security and privacy
All data is stored and processed on secured servers within the European Union. Fully GDPR-compliant.
Encrypted data at rest and in transit. Role-based access control. API keys scoped to your organization. Audit logs for compliance.
## Get started
Understand the core ideas and who Autype is for.
Editor, citations, charts, variables, styling, and export capabilities.
Learn how to use the Autype document editor.
Full syntax reference for Autype's extended Markdown.
## Automate and integrate
Complete document generation, bulk jobs, template variables, and no-code integrations.
REST API for rendering, bulk export, image management, and project access.
# Pricing and usage
Source: https://docs.autype.com/getting-started/pricing
Autype separates editor and AI allowances from permanent automation credits for the Developer API and bulk generation.
Autype separates interactive product usage from automation usage:
* **AI allowances** cover AI document generation, assistant tasks, translations, and AI images. They reset monthly and depend on the subscription plan.
* **Automation credits** are used only for Developer API operations and bulk generation. Purchased top-ups never expire.
## Plans
Headless document automation without the online editor. - Read existing
resources and results - Activate API, MCP, VS Code, and runs with the first
permanent credit top-up - No monthly subscription required
Professional document editing with small AI allowances. - Unlimited projects
and documents - All import and export formats - 1 AI document and 10
assistant tasks/month - 2 translations and 5 AI images/month
AI-assisted document work and automation for professionals. - Everything in
Editor - 10 AI documents and 100 assistant tasks/month - 20 translations and
30 AI images/month - 6,000 automation credits/month - Developer API and bulk
generation
Shared document workflows for teams of five or more. - Everything in Pro -
Real-time collaboration and team management - AI allowances and automation
credits scale per seat - 5-seat minimum
Annual billing is available for Editor, Pro, and Team:
| Plan | Monthly | Yearly |
| ---------- | --------------- | --------------- |
| **Editor** | \$9.90/month | \$69/year |
| **Pro** | \$29.90/month | \$219/year |
| **Team** | \$39/month/seat | \$279/year/seat |
EUR checkout is also available. Enterprise plans add custom governance, SLA, and optional on-premises deployment. [Contact sales](mailto:service@centerbit.co) for details.
## AI allowances
Interactive AI is measured by successful tasks rather than automation credits.
| Allowance per month | Engine | Editor | Pro | Team (per seat) |
| ------------------- | ------ | ------ | --- | --------------- |
| **AI documents** | 0 | 1 | 10 | 10 |
| **Assistant tasks** | 0 | 10 | 100 | 100 |
| **Translations** | 0 | 2 | 20 | 20 |
| **AI images** | 0 | 5 | 30 | 30 |
A first-time subscriber can start a **14-day Pro trial** with a payment method.
The trial can only be redeemed once and includes 2 AI documents, 15 assistant
tasks, 2 translations, 5 AI images, and **500 one-time automation credits**.
Developer API, MCP, VS Code, and bulk generation are available during the
trial, so the complete Pro workflow can be evaluated before the first charge.
## Automation credits
Automation credits apply to successful Developer API and bulk-generation
operations. Pro includes 6,000 credits per month; Team includes 6,000 pooled
credits per licensed seat per month. Engine is activated by its first successful
top-up; Editor can add the same headless automation capabilities with a top-up.
| Permanent top-up | Price |
| ------------------ | -------------- |
| **2,500 credits** | **\$10 / €10** |
| **7,500 credits** | **\$25 / €25** |
| **25,000 credits** | **\$75 / €75** |
Purchased credits never expire and remain on the organization after plan changes or cancellation. Top-ups are unavailable during the Pro trial.
### Automation operation costs
| Operation | Credit cost |
| --------------------------------------------------------------------------------- | --------------: |
| Upload, download, status, read, patch, records, blocks, validation without render | Free |
| Single render | 1 per document |
| Bulk render | 1 per document |
| Standard PDF tools and format conversions | 1 per operation |
| Lens OCR to plain Markdown | 2 per page |
| Lens classification | 6 per request |
| Lens filename generation | 6 per request |
| Lens structured field extraction | 14 per page |
| Lens recovery to Extended Markdown or document JSON | 18 per page |
### PDF limits
Tool uploads are limited to **50 MB per file**. Engine supports PDFs up to 20
pages. Editor, Pro, the Pro trial, and Team support PDFs up to **150 pages**.
Enterprise page limits are custom or unlimited.
## Plan comparison
| | Engine | Editor | Pro | Team | Enterprise |
| --------------------------- | ----------------------------------------------- | ----------- | --------- | --------- | ---------- |
| **Online editor** | — | Included | Included | Included | Included |
| **Projects and documents** | Read-only until activated; then API/MCP managed | Unlimited | Unlimited | Unlimited | Custom |
| **PDF export** | With top-up | Included | Included | Included | Included |
| **DOCX and ODT export** | With top-up | Included | Included | Included | Included |
| **DOCX/PDF import** | With top-up | Included | Included | Included | Included |
| **AI allowances** | — | Small | Extended | Per seat | Custom |
| **Developer API** | With top-up | With top-up | Included | Included | Included |
| **Bulk generation** | With top-up | With top-up | Included | Included | Included |
| **Real-time collaboration** | — | — | — | Included | Included |
| **Seats** | 1 | 1 | 1 | 5 minimum | Custom |
## Subscription changes
* Upgrades and a switch from monthly to yearly billing can be started from workspace billing settings.
* A downgrade or switch from yearly to monthly becomes available after the paid subscription period ends. Schedule cancellation in the Stripe billing portal first.
* Purchased automation credits remain available across upgrades, downgrades, and cancellations.
* Invoices and payment methods are managed in the Stripe customer portal.
# Quickstart
Source: https://docs.autype.com/getting-started/quickstart
Create your first Autype document in under 5 minutes — from sign-up to PDF export.
Get from zero to your first exported PDF in under 5 minutes.
## 1. Create your account
Go to [app.autype.com](https://app.autype.com) and sign up with your email or use Google / GitHub OAuth.
After verifying your email, you'll land in your **Workspace**.
## 2. Create a project
Click **New Project** in your workspace. Give it a name — for example, "My First Document".
Projects are folders for related documents. Variables and version history stay
with each document, so templates and customer outputs remain independently
maintainable.
## 3. Create a document
Inside your project, click **New Document**. You'll be taken directly into the editor.
## 4. Write your content
Start typing in the visual **Write** editor. Switch to **MD** whenever you want
to edit the same content as Extended Markdown.
Here's a simple example to get you started:
```markdown theme={null}
# My First Report
## Introduction
This is my first document in Autype. It supports **bold**, *italic*, and much more.
## Key Findings
- Finding one with important details
- Finding two with supporting data
- Finding three with conclusions
| Metric | Value | Change |
|--------|-------|--------|
| Revenue | €150,000 | +12% |
| Customers | 1,200 | +8% |
| Satisfaction | 94% | +3% |
## Conclusion
Autype makes document creation simple and consistent.
```
You'll see your content rendered in real-time as you type.
## 5. Export as PDF
Click the **Export** button in the top toolbar and select **PDF**. Your document will be rendered and downloaded in seconds.
You can also export as DOCX, ODT, PNG, or JPEG. Multi-page image exports are
delivered as a ZIP archive.
## What's next?
Citations, charts, variables, automatic indices, and more.
Full syntax reference for Autype's extended Markdown.
Invite collaborators, assign roles, and work together in real-time.
Generate documents programmatically and integrate with your workflows.
# Abbreviations
Source: https://docs.autype.com/markup-reference/abbreviations
Define abbreviations inline with ~ABK~ syntax and generate an automatic list of abbreviations.
Abbreviations let you mark short forms in your text. They are collected automatically and can be rendered as a List of Abbreviations.
## Syntax
Wrap an abbreviation in single tildes:
```markdown theme={null}
The ~WHO~ recommends regular exercise.
The ~EU~ has strict data protection laws (~GDPR~).
```
### Rules
* Must start with a letter (including Unicode letters like ä, ö, ü, é, etc.)
* Can contain letters and numbers after the first character
* Case-sensitive: `~WHO~` and `~who~` are different abbreviations
* Examples: `~WHO~`, `~GDPR~`, `~API~`, `~REST~`, `~KfW~`, `~GmbH~`
Do not confuse with strikethrough (`~~text~~` — double tildes). Abbreviations use **single** tildes.
## Abbreviations inside formatted text
Abbreviations work inside bold, italic, and other formatting marks:
```markdown theme={null}
**The ~WHO~ recommends this approach.**
*According to the ~EU~ directive...*
```
## List of Abbreviations
Generate an automatic list of all abbreviations used in the document:
```markdown theme={null}
::listOfAbbreviations{title="List of Abbreviations"}
```
**Short alias:**
```markdown theme={null}
::loa{title="Abbreviations"}
```
### Attributes
| Attribute | Values | Description |
| ----------- | -------------------------- | ------------------------------ |
| `title` | String | Title displayed above the list |
| `sortOrder` | `alphabetical`, `document` | Sort order of abbreviations |
* **`alphabetical`** — sort abbreviations A–Z (default)
* **`document`** — list abbreviations in the order they first appear in the document
### Example
```markdown theme={null}
::loa{title="Abkürzungsverzeichnis" sortOrder=alphabetical}
```
The abbreviation definitions (what each abbreviation stands for) are managed in your document settings, not in the Markdown source. The `~ABK~` syntax only marks where abbreviations are used.
# Block Quotes
Source: https://docs.autype.com/markup-reference/blockquotes
Styled block quotes with optional properties for borders, backgrounds, alignment, and typography.
## Basic block quote
Use `>` at the start of each line:
```markdown theme={null}
> This is a block quote.
> It can span multiple lines.
```
Consecutive `>` lines are merged into a single block quote. A blank line (or a line without `>`) ends the block quote.
## Multi-paragraph block quotes
Block quotes can contain multiple paragraphs — separate them with a blank `>` line:
```markdown theme={null}
> First paragraph of the quote.
>
> Second paragraph, still inside the same block quote.
```
## Inline formatting
Block quote content supports all [inline formatting](/markup-reference/inline-formatting):
```markdown theme={null}
> This quote has **bold**, *italic*, and ++underlined++ text.
> It can also contain [links](https://example.com) and `inline code`.
```
## Styled block quotes
Add properties on the first line using `{ key=value }` syntax to customize the block quote's appearance:
```markdown theme={null}
> {backgroundColor="#E8F5E9" borderColor="#4CAF50"} This is a styled block quote
> with a green background and green left border.
```
### Available properties
| Property | Type | Default | Description |
| ----------------- | ------------------------------------ | --------- | ---------------------------------------------- |
| `fontFamily` | string | inherited | Font family (e.g., `"Georgia"`) |
| `fontSize` | number | inherited | Font size in pt (6–72) |
| `fontWeight` | `normal`, `bold` | `normal` | Font weight |
| `fontStyle` | `normal`, `italic` | `normal` | Font style |
| `color` | hex color | inherited | Text color (e.g., `"#333333"`) |
| `align` | `left`, `center`, `right`, `justify` | `left` | Text alignment |
| `backgroundColor` | hex color | — | Background color (supports alpha: `#RRGGBBAA`) |
| `borderWidth` | number | `3` | Border width in px (0–20) |
| `borderColor` | hex color | `#CCCCCC` | Border color |
| `borderTop` | boolean | `false` | Show top border |
| `borderBottom` | boolean | `false` | Show bottom border |
| `borderLeft` | boolean | `true` | Show left border |
| `borderRight` | boolean | `false` | Show right border |
| `indentLeft` | number | `10` | Left indent in mm (0–100) |
| `indentRight` | number | `0` | Right indent in mm (0–100) |
| `spacingBefore` | number | — | Space before the block quote in pt |
| `spacingAfter` | number | — | Space after the block quote in pt |
Properties are only applied from the **first line** of the block quote. All subsequent `>` lines inherit the same styling.
## Examples
### Callout-style box
```markdown theme={null}
> {backgroundColor="#FFF3E0" borderColor="#FF9800" borderWidth=3} **Note:** Please review the attached
> documents before the meeting on Friday.
```
### Centered italic quote
```markdown theme={null}
> {align="center" fontStyle="italic" color="#555555"} "The best way to predict the future is to invent it."
```
### Box with all borders
```markdown theme={null}
> {borderTop=true borderBottom=true borderLeft=true borderRight=true borderColor="#1976D2" backgroundColor="#E3F2FD"} This block quote
> has borders on all four sides, creating a box-like appearance.
```
### Custom indent
```markdown theme={null}
> {indentLeft=20 indentRight=20} This block quote is indented further
> from both sides, creating a narrower text area.
```
## Defaults
Configure default styles for block quotes via `defaults.styles.blockquote` in your document configuration:
```json theme={null}
{
"defaults": {
"styles": {
"blockquote": {
"fontFamily": "Georgia",
"fontStyle": "italic",
"color": "#444444",
"backgroundColor": "#F5F5F5",
"borderColor": "#999999",
"borderWidth": 3,
"indentLeft": 15
}
}
}
}
```
Block quote defaults are applied to all block quotes in the document. Properties set directly on a block quote override the defaults.
# Charts
Source: https://docs.autype.com/markup-reference/charts
Create bar, line, pie, doughnut, radar, polar area, scatter, and bubble charts with the chart directive.
Autype supports 8 chart types using the `:::chart` directive. Charts are rendered as images in the exported document.
## Basic syntax
```markdown theme={null}
:::chart{type="bar" title="Monthly Sales"}
labels: Jan, Feb, Mar, Apr, May, Jun
dataset: Sales | 120, 150, 180, 140, 200, 220
:::
```
Every chart needs:
* A `type` attribute
* `labels:` line (except scatter/bubble charts)
* One or more `dataset:` lines
## Chart types
### Bar chart
```markdown theme={null}
:::chart{type="bar" title="Monthly Sales"}
labels: Jan, Feb, Mar, Apr, May, Jun
dataset: Sales | 120, 150, 180, 140, 200, 220
:::
```
### Line chart
```markdown theme={null}
:::chart{type="line" title="Temperature Trend"}
labels: Mon, Tue, Wed, Thu, Fri, Sat, Sun
dataset: Temperature | 22, 24, 23, 25, 27, 26, 24
:::
```
### Pie chart
```markdown theme={null}
:::chart{type="pie" title="Market Share"}
labels: Product A, Product B, Product C, Others
dataset: Share | 35, 25, 20, 20
:::
```
Pie, doughnut, and polar area charts automatically assign colors from a built-in palette if no colors are specified.
### Doughnut chart
```markdown theme={null}
:::chart{type="doughnut" title="Budget Distribution"}
labels: Development, Marketing, Operations, Support
dataset: Budget | 40, 25, 20, 15
:::
```
### Radar chart
```markdown theme={null}
:::chart{type="radar" title="Skills Assessment"}
labels: JavaScript, Python, SQL, Design, Communication
dataset: Alice | 90, 70, 85, 60, 80 | #3b82f6
dataset: Bob | 75, 85, 70, 90, 65 | #ef4444
:::
```
### Polar area chart
```markdown theme={null}
:::chart{type="polarArea" title="Activity Distribution"}
labels: Running, Cycling, Swimming, Hiking
dataset: Hours | 12, 8, 5, 15
:::
```
***
## Multiple datasets
Add multiple `dataset:` lines to compare data series:
```markdown theme={null}
:::chart{type="bar" title="Quarterly Comparison"}
labels: Q1, Q2, Q3, Q4
dataset: 2023 | 100, 120, 140, 160 | #3b82f6
dataset: 2024 | 110, 135, 155, 180 | #22c55e
:::
```
## Dataset syntax
```
dataset: Label | value1, value2, value3 | #color
```
| Part | Required | Description |
| ------ | -------- | ---------------------------- |
| Label | Optional | Dataset name shown in legend |
| Values | Yes | Comma-separated numbers |
| Color | Optional | Hex color (e.g., `#3b82f6`) |
### Multiple colors per dataset
For pie/doughnut charts, provide comma-separated colors:
```markdown theme={null}
:::chart{type="pie" title="Revenue Split"}
labels: Product, Service, Consulting
dataset: Revenue | 50, 30, 20 | #3b82f6, #22c55e, #f59e0b
:::
```
### Simple data syntax
For single-dataset charts, use `data:` instead of `dataset:`:
```markdown theme={null}
:::chart{type="bar" title="Simple Chart"}
labels: A, B, C, D
data: 10, 20, 30, 40
:::
```
***
## Scatter charts
Scatter charts use coordinate pairs instead of simple values. Labels are not needed.
### Using dataset syntax
```markdown theme={null}
:::chart{type="scatter" title="Correlation Analysis"}
dataset: Group A | (10,20), (15,25), (20,30), (25,28) | #3b82f6
dataset: Group B | (12,15), (18,22), (22,18), (28,25) | #ef4444
:::
```
### Using series + point syntax
An alternative syntax for scatter charts:
```markdown theme={null}
:::chart{type="scatter" title="Data Points"}
series: Measurements | #3b82f6
point: 10, 20
point: 15, 25
point: 20, 30
series: Predictions | #ef4444
point: 12, 22
point: 18, 28
:::
```
`series:` starts a new dataset with a label and optional color. `point:` adds an x,y coordinate to the current series.
***
## Bubble charts
Bubble charts extend scatter charts with a third value for the bubble radius:
```markdown theme={null}
:::chart{type="bubble" title="Market Analysis"}
dataset: Products | (10,20,15), (25,30,25), (15,15,10) | #3b82f6
:::
```
The format is `(x, y, radius)`.
Using series + point syntax:
```markdown theme={null}
:::chart{type="bubble" title="Portfolio"}
series: Stocks | #3b82f6
point: 10, 20, 15
point: 25, 30, 25
series: Bonds | #22c55e
point: 5, 10, 8
point: 15, 12, 12
:::
```
***
## Figure captions
Add a `caption` attribute for auto-numbering in the List of Figures:
```markdown theme={null}
:::chart{type="bar" caption="Quarterly Revenue 2024"}
labels: Q1, Q2, Q3, Q4
dataset: Revenue | 150000, 180000, 220000, 195000 | #3b82f6
:::
```
This renders with: *Figure 1: Quarterly Revenue 2024*
The caption prefix (e.g., `"Figure"`, `"Abb."`) and styling (font, alignment, color) are configured in your document's [style settings](/getting-started/editor/sidebar-styles#figure-captions). Charts share the same figure caption style as images.
### Anchors for cross-references
Add an `anchor` attribute to reference the chart from elsewhere:
```markdown theme={null}
:::chart{type="bar" anchor="chart-sales" caption="Sales 2024"}
labels: Q1, Q2, Q3, Q4
dataset: Sales | 100, 150, 200, 175 | #3b82f6
:::
```
Then reference it:
```markdown theme={null}
As shown in [Figure {num}](#chart-sales), sales grew steadily.
```
***
## Attribute reference
| Attribute | Values | Description |
| ------------ | --------------------------------------------------------------------------- | --------------------------------- |
| `type` | `bar`, `line`, `pie`, `doughnut`, `radar`, `polarArea`, `scatter`, `bubble` | Chart type (required) |
| `title` | String | Title displayed on the chart |
| `caption` | String | Figure caption for auto-numbering |
| `anchor` | String | Anchor ID for cross-references |
| `width` | Number (pixels) | Chart width |
| `height` | Number (pixels) | Chart height |
| `align` | `left`, `center`, `right` | Horizontal alignment |
| `showLegend` | `true`, `false` | Show/hide the legend |
| `showGrid` | `true`, `false` | Show/hide grid lines |
## Default color palette
When no colors are specified, charts use this built-in palette:
| Index | Color | Hex |
| ----- | ------ | --------- |
| 1 | Blue | `#3b82f6` |
| 2 | Red | `#ef4444` |
| 3 | Green | `#22c55e` |
| 4 | Amber | `#f59e0b` |
| 5 | Violet | `#8b5cf6` |
| 6 | Cyan | `#06b6d4` |
| 7 | Pink | `#ec4899` |
| 8 | Orange | `#f97316` |
| 9 | Teal | `#14b8a6` |
| 10 | Indigo | `#6366f1` |
# Citations & Bibliography
Source: https://docs.autype.com/markup-reference/citations
Inline citations with page, chapter, and volume locators, author suppression, narrative mode, and automatic bibliography generation.
Autype supports academic-style inline citations and automatic bibliography generation.
## Inline citations
Use `@[citeKey]` to insert a citation:
```markdown theme={null}
This has been shown in previous research @[smith2023].
```
### Citations with locators
Add page numbers, chapters, sections, or volumes after the cite key:
```markdown theme={null}
@[smith2023, p. 42]
@[smith2023, pp. 42-45]
@[smith2023, ch. 3]
@[smith2023, sec. 2.1]
@[smith2023, vol. 2]
```
**Supported locator prefixes:**
| Prefix | Full form | Description |
| ------ | --------- | -------------- |
| `p.` | `page` | Single page |
| `pp.` | `pages` | Page range |
| `ch.` | `chapter` | Chapter number |
| `sec.` | `section` | Section number |
| `vol.` | `volume` | Volume number |
### Combining locators
Multiple locators can be combined with commas:
```markdown theme={null}
@[smith2023, vol. 2, pp. 42-45]
@[smith2023, ch. 3, p. 15]
```
### Adding notes
Add a custom note to a citation:
```markdown theme={null}
@[smith2023, p. 42, note="emphasis added"]
@[jones2022, note="translated by the author"]
```
***
## Author control
### Suppress author
Prefix the cite key with `-` to suppress the author name (useful when the author is already mentioned in the text):
```markdown theme={null}
Smith @[-smith2023, p. 42] showed that...
```
This renders as: Smith (2023, p. 42) instead of Smith (Smith, 2023, p. 42).
### Author only (narrative mode)
Append `!` to the cite key to show only the author name:
```markdown theme={null}
@[smith2023!] showed that the effect is significant @[smith2023, p. 42].
```
This renders as: Smith showed that the effect is significant (Smith, 2023, p. 42).
***
## Citations inside formatted text
Citations work inside bold, italic, and other formatting marks:
```markdown theme={null}
**This is important @[smith2023, p. 42].**
*As noted by @[jones2022!], the results are clear.*
```
***
## Bibliography
Generate an automatic bibliography from all citations in the document:
```markdown theme={null}
::bibliography{title="References"}
```
**Short aliases:**
```markdown theme={null}
::bib{title="References"}
::references{title="Literaturverzeichnis"}
```
The bibliography collects all cited sources and formats them according to the configured citation style.
### Attribute reference
| Attribute | Values | Description |
| --------- | ------ | -------------------------------------- |
| `title` | String | Title displayed above the bibliography |
The bibliography only includes sources that are actually cited in the document. Uncited sources from your library are not included.
***
## Full example
```markdown theme={null}
# Introduction
The relationship between X and Y has been studied extensively
@[smith2023, pp. 1-15]. @[jones2022!] provided a comprehensive
overview of the field, while @[-doe2021, ch. 3] focused specifically
on the methodology.
As **Smith @[-smith2023, p. 42]** noted, the effect size is
significant. This aligns with earlier findings @[brown2020, vol. 2, p. 88].
# References
::bibliography{title="References"}
```
# Code Blocks
Source: https://docs.autype.com/markup-reference/code-blocks
Syntax-highlighted code blocks with optional render-as-image, custom background colors, alignment, and spacing.
## Standard code blocks
Use triple backticks with an optional language identifier:
````markdown theme={null}
```javascript
const greeting = "Hello, World!";
console.log(greeting);
```
````
Without a language:
````markdown theme={null}
```
Plain code block
without syntax highlighting
```
````
## Extended attributes
Append `{attrs}` after the language identifier to customize rendering:
````markdown theme={null}
```python{renderAsImage=true width=600 align=center}
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)
print([fibonacci(i) for i in range(10)])
```
````
### Render as image
Convert code blocks to PNG images in the exported document. This preserves syntax highlighting exactly as displayed:
````markdown theme={null}
```typescript{renderAsImage=true width=500}
interface Config {
apiUrl: string;
timeout: number;
}
```
````
### Custom background color
````markdown theme={null}
```typescript{backgroundColor="#1e293b"}
interface Config {
apiUrl: string;
timeout: number;
}
```
````
### Alignment and spacing
````markdown theme={null}
```sql{renderAsImage=true width=500 align=center spacingBefore=20 spacingAfter=20}
SELECT * FROM users
WHERE status = 'active'
ORDER BY created_at DESC;
```
````
## Captions and anchors
Add `caption` and `anchor` attributes to include the code block in the [List of Code Listings](/markup-reference/indices#list-of-code-listings) and enable [cross-references](/markup-reference/references):
````markdown theme={null}
```typescript{caption="Configuration interface" anchor="code-config"}
interface Config {
apiUrl: string;
timeout: number;
}
```
````
This renders with: *Listing 1: Configuration interface*
Reference it elsewhere:
```markdown theme={null}
See [Listing {num}](#code-config) for the configuration interface.
```
The caption prefix (e.g., `"Listing"`, `"Quellcode"`) and styling are configured in your document's [style settings](/getting-started/editor/sidebar-styles#code-captions).
## Diagrams
Code blocks with a supported diagram language (e.g., `mermaid`, `plantuml`, `graphviz`) are automatically rendered as images in the exported document. See [Diagrams](/markup-reference/diagrams) for the full list of supported diagram languages, examples, and options.
````markdown theme={null}
```mermaid{caption="System Architecture" anchor="fig-arch" align="center"}
graph LR
A[Client] --> B[API]
B --> C[Database]
```
````
Diagram code blocks with a `caption` are numbered as **figures** and appear in the List of Figures. Set `renderAsImage=false` to treat them as regular code listings instead — see [Diagrams — renderAsImage](/markup-reference/diagrams#rendering-as-code-renderasimagefalse).
## Attribute reference
| Attribute | Values | Description |
| ----------------- | ----------------------------- | ---------------------------------------------------------------------------------- |
| `renderAsImage` | `true`, `false` | Render code as a PNG image in the exported document |
| `backgroundColor` | CSS color (e.g., `"#1e1e1e"`) | Background color of the code block |
| `width` | Number (pixels, 10–2000) | Width of the rendered image |
| `align` | `left`, `center`, `right` | Horizontal alignment |
| `caption` | String | Caption for auto-numbering (List of Code Listings or List of Figures for diagrams) |
| `anchor` | String | Anchor ID for cross-references |
| `spacingBefore` | Number (pt) | Spacing before the code block |
| `spacingAfter` | Number (pt) | Spacing after the code block |
The `renderAsImage` option is particularly useful for PDF/DOCX exports where you want pixel-perfect syntax highlighting. Without it, code blocks are rendered as styled text.
# Diagrams
Source: https://docs.autype.com/markup-reference/diagrams
Render diagrams from text using Mermaid, PlantUML, GraphViz, and 15+ other diagram languages.
Autype renders diagrams directly from text-based diagram languages. Write your diagram code in a fenced code block with the diagram language as the language identifier — it will be automatically rendered as an image in the exported document.
Diagrams are only rendered as images when **Render as Image** is enabled. You can control this globally via the [Styles panel → Code Blocks](/getting-started/editor/sidebar-styles#code-blocks) setting, or override it per block with the `renderAsImage` attribute directly on the code block.
## Basic syntax
Use a fenced code block with a supported diagram language:
````markdown theme={null}
```mermaid
graph TD
A[Start] --> B{Decision?}
B -->|Yes| C[Action 1]
B -->|No| D[Action 2]
C --> E[End]
D --> E
```
````
The diagram is automatically rendered as a PNG image in the exported PDF/DOCX document.
## Supported diagram languages
| Language | Code identifier | Description |
| ---------------------------------------------------------------- | ------------------- | --------------------------------------------------------------------- |
| [Mermaid](https://github.com/knsv/mermaid) | `mermaid` | Flowcharts, sequence diagrams, class diagrams, Gantt charts, and more |
| [PlantUML](https://github.com/plantuml/plantuml) | `plantuml` | UML diagrams (class, sequence, activity, use case, etc.) |
| [GraphViz](https://www.graphviz.org/) | `graphviz` or `dot` | Graph and network visualizations |
| [Structurizr](https://github.com/structurizr/dsl) | `structurizr` | C4 architecture diagrams |
| [BlockDiag](https://github.com/blockdiag/blockdiag) | `blockdiag` | Simple block diagrams |
| [SeqDiag](https://github.com/blockdiag/seqdiag) | `seqdiag` | Sequence diagrams |
| [ActDiag](https://github.com/blockdiag/actdiag) | `actdiag` | Activity diagrams with swimlanes |
| [NwDiag](https://github.com/blockdiag/nwdiag) | `nwdiag` | Network topology diagrams |
| [PacketDiag](https://github.com/blockdiag/nwdiag) | `packetdiag` | Packet/protocol header diagrams |
| [C4 with PlantUML](https://github.com/RicardoNiepel/C4-PlantUML) | `c4plantuml` | C4 architecture model using PlantUML syntax |
| [DBML](https://github.com/softwaretechnik-berlin/dbml-renderer) | `dbml` | Database markup language for ER diagrams |
| [Ditaa](https://ditaa.sourceforge.net) | `ditaa` | ASCII art to diagram conversion |
| [ERD](https://github.com/BurntSushi/erd) | `erd` | Entity-relationship diagrams |
| [TikZ](https://github.com/pgf-tikz/pgf) | `tikz` | LaTeX-based technical drawings |
| [UMlet](https://github.com/umlet/umlet) | `umlet` | UML diagrams |
| [Vega](https://github.com/vega/vega) | `vega` | Declarative data visualizations |
| [WireViz](https://github.com/formatc1702/WireViz) | `wireviz` | Wiring harness and cable documentation |
## Mermaid examples
### Flowchart
````markdown theme={null}
```mermaid
graph TD
A[Start] --> B{Decision?}
B -->|Yes| C[Action 1]
B -->|No| D[Action 2]
C --> E[End]
D --> E
```
````
### Sequence diagram
````markdown theme={null}
```mermaid
sequenceDiagram
participant Client
participant API
participant DB
Client->>API: POST /render
API->>DB: Save job
DB-->>API: Job ID
API-->>Client: 202 Accepted
```
````
### Class diagram
````markdown theme={null}
```mermaid
classDiagram
class Document {
+String title
+Section[] sections
+render() PDF
}
class Section {
+String type
+Element[] content
}
Document "1" --> "*" Section
```
````
## PlantUML example
````markdown theme={null}
```plantuml
@startuml
start
:Create document;
:Write content;
if (Has variables?) then (yes)
:Substitute variables;
else (no)
endif
:Render DOCX;
:Convert to PDF;
stop
@enduml
```
````
## GraphViz example
````markdown theme={null}
```graphviz
digraph G {
rankdir=LR;
node [shape=box, style=filled, fillcolor="#e8f4fd"];
Frontend -> API;
API -> Database;
API -> Redis;
Worker -> Redis;
Worker -> S3;
}
```
````
***
## Captions and anchors
Add `caption` and `anchor` attributes to include the diagram in the [List of Figures](/markup-reference/indices#list-of-figures) and enable [cross-references](/markup-reference/references):
````markdown theme={null}
```mermaid{caption="System Architecture" anchor="fig-architecture"}
graph LR
A[Client] --> B[API]
B --> C[Database]
B --> D[Cache]
```
````
This renders with: *Figure 1: System Architecture*
Reference it elsewhere:
```markdown theme={null}
As shown in [Figure {num}](#fig-architecture), the system uses a layered design.
```
## Alignment
Control horizontal alignment with the `align` attribute:
````markdown theme={null}
```mermaid{align="center" caption="Centered Diagram" anchor="fig-centered"}
graph LR
A --> B --> C
```
````
***
## Rendering as code (renderAsImage=false)
By default, diagram language code blocks are rendered as images. Set `renderAsImage=false` to display the source code as a regular code block instead:
````markdown theme={null}
```mermaid{renderAsImage=false}
graph TD
A --> B
B --> C
```
````
This is useful when you want to show the diagram source code to the reader rather than the rendered diagram.
When `renderAsImage=false` is set on a diagram code block, the block is treated as a regular code block. If it has a `caption`, it appears in the [List of Code Listings](/markup-reference/indices#list-of-code-listings) instead of the List of Figures.
### Global default
You can set the default for all code blocks in your document's style settings:
* **defaults → styles → code → renderAsImage**: `true` (default) or `false`
The element-level `renderAsImage` attribute always overrides the global default.
***
## Attribute reference
| Attribute | Values | Description |
| --------------- | ------------------------- | --------------------------------------------------------------------------- |
| `renderAsImage` | `true`, `false` | Render as image (default: `true` for diagram languages) or show source code |
| `caption` | String | Figure caption for auto-numbering in the List of Figures |
| `anchor` | String | Anchor ID for cross-references |
| `align` | `left`, `center`, `right` | Horizontal alignment |
| `width` | Number (pixels) | Width of the rendered diagram image |
| `spacingBefore` | Number (pt) | Spacing before the diagram |
| `spacingAfter` | Number (pt) | Spacing after the diagram |
Diagrams are rendered server-side during document export. In the live editor preview, diagram code blocks are displayed as syntax-highlighted code.
# Form Fields
Source: https://docs.autype.com/markup-reference/form-fields
Add text, number, date, choice, signature, and initials fields to Autype documents and interactive PDF exports.
Form fields are document elements that stay visible in every export and become
interactive **AcroForm widgets in PDF exports**. They can use fixed values or
read their initial value from a document variable.
## Supported field types
| Type | Purpose | Variable type |
| ----------- | ---------------------- | -------------------------------- |
| `text` | Single-line text | text |
| `number` | Numeric value | number |
| `multiline` | Multi-line text | text |
| `date` | Date input | text |
| `checkbox` | One or several choices | text (single) or list (multiple) |
| `select` | Dropdown choice | text |
| `signature` | Empty signature widget | none |
| `initials` | Empty initials widget | none |
## Basic syntax
```markdown theme={null}
::field{name="customerName" type=text label="Customer name" required=true}
::field{name="invoiceTotal" type=number label="Invoice total" value=149.9}
::field{name="dueDate" type=date label="Due date" placeholder="YYYY-MM-DD"}
::field{name="department" type=select label="Department" options="Sales|Finance|Legal"}
::field{name="signature" type=signature label="Signature" required=true signerRole="customer-signer" width=60 height=72}
```
The `name` is a stable field identifier. Labels are optional; an empty label
renders only the input control without reserving label spacing.
## Checkboxes and choices
A checkbox field contains one or more visible options. Use `selectionMode` to
choose whether users may select one or several options.
```markdown theme={null}
::field{name="approval" type=checkbox options="I approve"}
::field{name="interests" type=checkbox options="Product updates|Events|Research" selectionMode=multiple selected="Events|Research"}
::field{name="contactMethod" type=checkbox options="Email|Phone|Post" selectionMode=single selected="Email"}
```
`placeholder` is not used for checkbox labels. Each value in `options` is both
the visible label and the submitted option value.
## Variable binding
Use `variable` to prefill a field from the document's variables:
```markdown theme={null}
::field{name="customerName" type=text label="Customer" variable="customerName"}
::field{name="interests" type=checkbox options="Events|Research" selectionMode=multiple variable="interests"}
```
The field does not create the variable. Define it in the document's variables
first, using a compatible type. A local `value` or `selected` value remains a
fixed initial value when no variable is bound.
## Multiline values
Use `\n` inside a quoted fixed value. Autype converts it to actual line breaks
and escapes it exactly once when converting back to Markdown.
```markdown theme={null}
::field{name="notes" type=multiline label="Notes" value="First line\nSecond line\nThird line" height=80}
```
## Form fields in tables
A form field can be the sole content of a table cell:
```markdown theme={null}
:::table{columnWidths="1fr,2fr"}
| Label | Value |
| --- | --- |
| Customer | ::field{name="customer" type=text} |
| Department | ::field{name="department" type=select options="Sales,Legal"} |
| Approval | ::field{name="approval" type=checkbox options="Approved"} |
:::
```
Inside table cells, separate choice options with commas because `|` is already
the Markdown table delimiter.
## Attributes
| Attribute | Description | |
| ------------------------------- | --------------------------------------------------------------------------------------------- | ----------------------------- |
| `name` | Stable identifier; required | |
| `type` | One of the supported field types; required | |
| `label` | Optional visible label | |
| `placeholder` | Hint for an empty non-checkbox field | |
| `variable` | Compatible document variable used as the initial value | |
| `value` | Fixed string, number, or boolean value | |
| `options` | Choice values separated by \` | \` (or commas in table cells) |
| `selectionMode` | `single` or `multiple` for checkboxes | |
| `selected` | Initially selected checkbox options | |
| `required` | Mark the PDF widget as required | |
| `readOnly` | Prevent editing of the PDF widget | |
| `signerRole` | Process role allowed to fill a `signature` or `initials` field; rejected on other field types | |
| `width` | Percentage of available content width (`10`-`100`) | |
| `height` | Minimum height in points (`16`-`300`) | |
| `spacingBefore`, `spacingAfter` | Local vertical spacing in points | |
## Styling
The following attributes override the global `defaults.styles.formField`
settings for one field:
| Attribute | Values |
| --------------------------------------------- | --------------------------------- |
| `borderMode` | `outline`, `underline`, `none` |
| `borderLineStyle` | `solid`, `dashed`, `dotted` |
| `borderWidth` | `0`-`10` pt |
| `borderColor`, `backgroundColor`, `textColor` | Hex color |
| `fontSize` | `6`-`72` pt |
| `inset` | Inner padding (`0`-`50`) |
| `borderRadius` | Corner radius (`0`-`30`) |
| `showHints` | Show or hide visual editor hints |
| `showContainerBorder` | Show or hide the editor container |
| `checkboxBorderMode` | Border mode for checkbox controls |
| `checkboxShape` | `square` or `circle` |
Global vertical spacing is configured through
`defaults.spacing.before.formField` and `defaults.spacing.after.formField`.
## Output behavior
| Output | Behavior |
| ---------------- | --------------------------------------------------------------- |
| PDF | Interactive AcroForm widgets with required/read-only flags |
| DOCX / ODT | Printable visual representation |
| Web preview | Visual preview of fields and current values |
| Rich text editor | Editable document blocks with properties in the context toolbar |
`signature` and `initials` create PDF form widgets. They do not apply a
cryptographic signature, qualified electronic signature, or PAdES seal.
A Workspace signature process can fill these widgets with its audited
typed-name simple electronic signature when `required=true` and `signerRole`
matches the signer role.
# Headings & Paragraphs
Source: https://docs.autype.com/markup-reference/headings-paragraphs
Headings (h1–h6), paragraphs, and the text2 variant — with standard Markdown and extended HTML syntax for full styling control.
## Headings
Standard Markdown headings from `h1` to `h6`:
```markdown theme={null}
# Heading 1
## Heading 2
### Heading 3
#### Heading 4
##### Heading 5
###### Heading 6
```
Headings support inline formatting:
```markdown theme={null}
# **Bold** Heading
## *Italic* Heading
### ~~Strikethrough~~ Heading
#### **Bold** and *Italic* Combined
```
### Heading anchors
Add an anchor ID to any heading with `{#id}` at the end. This allows cross-referencing from elsewhere in the document:
```markdown theme={null}
# Introduction {#intro}
## Methods {#methods}
### Data Analysis {#data-analysis}
```
Anchor IDs must start with a letter and can contain letters, numbers, underscores, and hyphens.
See [References & Anchors](/markup-reference/references) for how to link to anchored headings.
### Extended HTML syntax
For full styling control, use HTML heading tags with attributes:
```html theme={null}
Centered Heading
Styled Heading
Custom Font Heading
```
**Available attributes:**
| Attribute | Values | Description |
| --------------------------- | ---------------------------------------------- | ------------------------------------------------------------ |
| `align` | `left`, `center`, `right`, `justify` | Text alignment |
| `color` | Hex color (e.g., `#ff0000`) | Text color |
| `fontSize` | Number (points) | Font size |
| `fontFamily` | Font name (e.g., `Georgia`, `Arial`) | Font family |
| `fontWeight` | `normal`, `bold` | Font weight |
| `fontStyle` | `normal`, `italic` | Font style |
| `letterSpacing` | `-5` to `20` | Character spacing in points |
| `textTransform` | `none`, `uppercase`, `lowercase`, `capitalize` | Visual case transformation |
| `indentLeft`, `indentRight` | `0` to `100` | Left and right indents in points |
| `firstLineIndent` | `-50` to `100` | First-line indent in points |
| `hangingIndent` | `0` to `100` | Hanging indent in points |
| `backgroundColor` | Hex color | Background behind the heading |
| `spacing` | `before,after` (e.g., `10,20`) | Spacing before/after in points |
| `keepTogether` | Boolean | Keep the heading content together on one page where possible |
| `keepWithNext` | Boolean | Keep the heading with the following element |
| `pageBreakBefore` | Boolean | Start the heading on a new page |
| `widowControl` | Boolean | Avoid isolated first or last lines where supported |
***
## Paragraphs
Standard Markdown paragraphs — just write text:
```markdown theme={null}
This is a regular paragraph. It can span
multiple lines and will be joined together.
A blank line starts a new paragraph.
```
Consecutive lines without a blank line between them are merged into a single paragraph.
### Text2 style (secondary paragraph)
Use the pipe prefix `| ` to apply the `text2` style — a secondary paragraph style defined in your document defaults (e.g., smaller font, different color):
```markdown theme={null}
| This is a text2 paragraph.
| Multiple lines can use text2 style.
| Each line starts with pipe and space.
```
The `text2` style uses the styling defined in your document's `defaults.styles.text2` configuration. This is useful for subtitles, captions, or secondary information.
Lines starting with `|` that also **end** with `|` are parsed as table rows, not text2 paragraphs.
### Extended HTML syntax
For full styling control, use HTML paragraph tags:
```html theme={null}
This paragraph is justified.
Styled paragraph text.
Custom styled paragraph.
```
Multi-line HTML paragraphs are also supported:
```html theme={null}
This is a longer paragraph that spans
multiple lines in the source.
```
**Available attributes:**
| Attribute | Values | Description |
| --------------------------- | ---------------------------------------------- | -------------------------------------------------- |
| `align` | `left`, `center`, `right`, `justify` | Text alignment |
| `color` | Hex color (e.g., `#ff0000`) | Text color |
| `fontSize` | Number (points) | Font size |
| `fontFamily` | Font name | Font family |
| `fontWeight` | `normal`, `bold` | Font weight |
| `fontStyle` | `normal`, `italic` | Font style |
| `letterSpacing` | `-5` to `20` | Character spacing in points |
| `textTransform` | `none`, `uppercase`, `lowercase`, `capitalize` | Visual case transformation |
| `indentLeft`, `indentRight` | `0` to `100` | Left and right indents in points |
| `firstLineIndent` | `-50` to `100` | First-line indent in points |
| `hangingIndent` | `0` to `100` | Hanging indent in points |
| `backgroundColor` | Hex color | Paragraph background |
| `spacing` | `before,after` (e.g., `5,10`) | Spacing before/after in points |
| `keepTogether` | Boolean | Keep the paragraph on one page where possible |
| `keepWithNext` | Boolean | Keep the paragraph with the following element |
| `pageBreakBefore` | Boolean | Start the paragraph on a new page |
| `widowControl` | Boolean | Avoid isolated first or last lines where supported |
HTML syntax is optional. Use it only when you need styling that goes beyond what your document defaults provide. For most documents, standard Markdown headings and paragraphs are sufficient.
# Images
Source: https://docs.autype.com/markup-reference/images
Embed images with sizing, crop, fit, focal point, opacity, captions, and anchors.
## Standard Markdown
```markdown theme={null}


```
The alt text is automatically used as the **figure caption** for auto-numbering in the List of Figures.
## Extended attributes
Append `{attrs}` after the image to control size, alignment, and more:
```markdown theme={null}
{width=200 height=100 align=center}
{width=400 align=right spacing=10,20}
{width=700 height=320 fit=cover focalPoint="65,35" opacity=0.9}
{crop="10,5,70,80"}
```
### Auto-captioning
The alt text becomes the figure caption:
```markdown theme={null}
{width=600 align=center}
```
This renders as: *Figure 1: Sales Dashboard 2024*
The caption prefix (e.g., `"Figure"`, `"Abb."`) and styling (font, alignment, color) are configured in your document's [style settings](/getting-started/editor/sidebar-styles#figure-captions).
Override the caption explicitly:
```markdown theme={null}
{width=400 caption="Revenue by Quarter"}
```
### Anchors for cross-references
Add an `anchor` attribute to reference the image from elsewhere:
```markdown theme={null}
{anchor=fig-diagram width=600}
```
Then reference it:
```markdown theme={null}
See [Figure {num}](#fig-diagram) for the architecture overview.
```
See [References & Anchors](/markup-reference/references) for all cross-reference options.
## Attribute reference
| Attribute | Values | Description |
| ------------ | ------------------------------ | -------------------------------------------- |
| `width` | Number (pixels) | Image width |
| `height` | Number (pixels) | Image height |
| `align` | `left`, `center`, `right` | Horizontal alignment |
| `fit` | `contain`, `cover`, `fill` | How the image fits explicit width and height |
| `crop` | `x,y,width,height` percentages | Crop rectangle within the source image |
| `focalPoint` | `x,y` percentages | Preferred focal point when `fit=cover` |
| `opacity` | `0`–`1` | Image opacity |
| `caption` | String | Override caption (default: alt text) |
| `anchor` | String | Anchor ID for cross-references |
| `spacing` | `before,after` (e.g., `10,20`) | Spacing before/after in points |
The optional Markdown image title remains separate from the visible caption:
```markdown theme={null}
{fit=contain}
```
Crop and focal-point values use percentages. A crop rectangle must remain
inside the source image, so `x + width` and `y + height` cannot exceed 100.
***
## Image directive
For an alternative syntax, use the `:::image` directive:
```markdown theme={null}
:::image{width=300 height=200 align=center}

:::
```
```markdown theme={null}
:::image{width=150 align=left}

:::
```
The directive supports the same attributes as the inline syntax, including
`fit`, `crop`, `focalPoint`, `opacity`, `caption`, `anchor`, and `spacing`. The
alt text from the inner `` is used as the caption if no explicit
`caption` attribute is provided.
# Automatic Indices
Source: https://docs.autype.com/markup-reference/indices
Generate a table of contents, list of figures, list of tables, list of code listings, and list of abbreviations automatically from your document content.
Autype can automatically generate indices from your document content. All indices use inline directive syntax (`::directive{attrs}`).
## Table of Contents
Generate a TOC from all headings in the document:
```markdown theme={null}
::toc
```
### With options
```markdown theme={null}
::toc{title="Table of Contents" maxLevel=3 hyperlink=true}
```
### Attributes
| Attribute | Values | Default | Description |
| ----------- | --------------- | -------- | -------------------------------- |
| `title` | String | *(none)* | Title displayed above the TOC |
| `maxLevel` | 1–6 | 3 | Maximum heading level to include |
| `hyperlink` | `true`, `false` | `true` | Make entries clickable |
The TOC is generated as a document field. When opening in Word or LibreOffice, you may be prompted to update fields to populate the TOC with page numbers.
### Example
```markdown theme={null}
# My Document
::toc{title="Contents" maxLevel=2}
---
## Chapter 1
Content...
## Chapter 2
Content...
```
***
## List of Figures
Generate a list of all figures (images and charts with captions):
```markdown theme={null}
::listOfFigures
```
**Short alias:**
```markdown theme={null}
::lof
```
### With options
```markdown theme={null}
::listOfFigures{title="List of Figures"}
::lof{title="Abbildungsverzeichnis" tabStyle=hyphen}
```
### Attributes
| Attribute | Values | Default | Description |
| ---------- | ------------------------------------- | -------- | ------------------------------------------------ |
| `title` | String | *(none)* | Title displayed above the list |
| `tabStyle` | `dot`, `hyphen`, `underscore`, `none` | `dot` | Tab leader style between caption and page number |
### How figures are numbered
Figures are automatically numbered based on:
* **Images** with alt text (alt text becomes the caption): ``
* **Images** with explicit `caption` attribute: `{caption="Sales Dashboard"}`
* **Charts** with a `caption` attribute: `:::chart{caption="Revenue 2024"}`
The figure prefix (e.g., `"Figure"`, `"Abb."`) and caption styling are configured in your document's [style settings](/getting-started/editor/sidebar-styles#figure-captions).
***
## List of Tables
Generate a list of all tables with captions:
```markdown theme={null}
::listOfTables
```
**Short alias:**
```markdown theme={null}
::lot
```
### With options
```markdown theme={null}
::listOfTables{title="List of Tables"}
::lot{title="Tabellenverzeichnis" tabStyle=hyphen}
```
### Attributes
| Attribute | Values | Default | Description |
| ---------- | ------------------------------------- | -------- | ------------------------------------------------ |
| `title` | String | *(none)* | Title displayed above the list |
| `tabStyle` | `dot`, `hyphen`, `underscore`, `none` | `dot` | Tab leader style between caption and page number |
### How tables are numbered
Tables are automatically numbered based on tables that have the `caption` attribute in the `:::table` directive:
```markdown theme={null}
:::table{caption="Revenue by Quarter"}
| Quarter | Revenue |
|---------|---------|
| Q1 | €150,000 |
:::
```
The table prefix (e.g., `"Table"`, `"Tabelle"`) and caption styling are configured in your document's [style settings](/getting-started/editor/sidebar-styles#table-captions).
***
## List of Code Listings
Generate a list of all code blocks with captions:
```markdown theme={null}
::listOfCodeListings
```
**Short alias:**
```markdown theme={null}
::loc
```
### With options
```markdown theme={null}
::listOfCodeListings{title="List of Code Listings"}
::loc{title="Quellcodeverzeichnis" tabStyle=hyphen}
```
### Attributes
| Attribute | Values | Default | Description |
| ---------- | ------------------------------------- | -------- | ------------------------------------------------ |
| `title` | String | *(none)* | Title displayed above the list |
| `tabStyle` | `dot`, `hyphen`, `underscore`, `none` | `dot` | Tab leader style between caption and page number |
### How code listings are numbered
Code listings are automatically numbered based on code blocks that have the `caption` attribute:
````markdown theme={null}
```typescript{caption="Configuration interface" anchor="code-config"}
interface Config {
apiUrl: string;
timeout: number;
}
```
````
The listing prefix (e.g., `"Listing"`, `"Quellcode"`) and caption styling are configured in your document's [style settings](/getting-started/editor/sidebar-styles#code-captions).
Diagram code blocks (e.g., `mermaid`, `plantuml`) with captions are numbered as **figures** and appear in the List of Figures, not the List of Code Listings — unless `renderAsImage=false` is set. See [Diagrams](/markup-reference/diagrams) for details.
***
## List of Abbreviations
Generate a list of all abbreviations used in the document:
```markdown theme={null}
::listOfAbbreviations
```
**Short alias:**
```markdown theme={null}
::loa
```
### With options
```markdown theme={null}
::listOfAbbreviations{title="List of Abbreviations" sortOrder=alphabetical}
::loa{title="Abkürzungsverzeichnis" sortOrder=document}
```
### Attributes
| Attribute | Values | Default | Description |
| ----------- | -------------------------- | -------------- | ------------------------------ |
| `title` | String | *(none)* | Title displayed above the list |
| `sortOrder` | `alphabetical`, `document` | `alphabetical` | Sort order |
* **`alphabetical`** — abbreviations sorted A–Z
* **`document`** — abbreviations in the order they first appear
See [Abbreviations](/markup-reference/abbreviations) for how to mark abbreviations in your text with `~ABK~` syntax.
***
## Tab leader styles
The `tabStyle` attribute controls the visual separator between the entry text and the page number:
| Style | Appearance |
| ------------ | ---------------------------- |
| `dot` | `Chapter 1 .............. 3` |
| `hyphen` | `Chapter 1 ------------ 3` |
| `underscore` | `Chapter 1 ____________ 3` |
| `none` | `Chapter 1 3` |
***
## Full example: Academic document
````markdown theme={null}
---page{align=center}---
# Research Paper Title
**Author Name**
{{date/D. MMMM YYYY}}
---/page---
---
::toc{title="Table of Contents" maxLevel=3}
---
::lof{title="List of Figures"}
---
::lot{title="List of Tables"}
---
::loc{title="List of Code Listings"}
---
::loa{title="List of Abbreviations" sortOrder=alphabetical}
---
## Introduction {#intro}
The ~WHO~ has published guidelines on this topic @[who2023].
## Results
:::chart{type="bar" caption="Survey Results" anchor="chart-results"}
labels: Group A, Group B, Group C
dataset: Score | 85, 72, 91 | #3b82f6
:::
:::table{caption="Detailed Scores"}
| Group | Mean | SD |
|-------|------|----|
| A | 85.2 | 4.1 |
| B | 72.1 | 6.3 |
| C | 91.0 | 2.8 |
:::
As shown in [Figure {num}](#chart-results), Group C performed best.
## Implementation
```typescript{caption="Data Processing Function" anchor="code-process"}
async function processResults(data: RawData[]): Promise {
const validated = data.filter(d => d.isValid);
return generateReport(validated);
}
```
See [Listing {num}](#code-process) for the data processing implementation.
## References
::bibliography{title="References"}
````
# Inline Formatting
Source: https://docs.autype.com/markup-reference/inline-formatting
Bold, italic, underline, strikethrough, highlight, inline code, links, and line breaks — all inline formatting options in Autype.
Autype supports all standard Markdown inline formatting plus additional marks for underline, highlight, text color, and abbreviations.
## Bold
```markdown theme={null}
**bold text**
__also bold__
```
## Italic
```markdown theme={null}
*italic text*
_also italic_
```
## Bold + Italic
```markdown theme={null}
***bold and italic***
```
## Underline
```markdown theme={null}
++underlined text++
```
## Strikethrough
```markdown theme={null}
~~strikethrough text~~
```
## Highlight
Highlight text with a default highlight color:
```markdown theme={null}
==highlighted text==
```
Highlight with a custom color:
```markdown theme={null}
==highlighted text=={#ff6600}
==highlighted text=={yellow}
```
The color value inside `{...}` accepts any CSS color.
## Text color
Color only part of a paragraph with a `span`:
```markdown theme={null}
This paragraph contains red text and normal text.
```
The `color` value accepts hexadecimal `#RGB` or `#RRGGBB` values such as `#c62828` or `#0f766e`. Text color is an inline mark, so it can be combined with other formatting:
```markdown theme={null}
This is **blue and bold**.
```
For whole paragraphs or headings, prefer the element/style color settings instead of wrapping the entire text in a span.
## Inline code
```markdown theme={null}
Use the `parseMarkdown()` function to convert text.
```
Content inside backticks is preserved exactly as-is — no further formatting is applied inside inline code.
## Links
```markdown theme={null}
[Link text](https://example.com)
[Link with title](https://example.com "Hover title")
```
Links starting with `#` are treated as [internal references](/markup-reference/references), not external links.
## Line breaks
Use `
` for a line break within a paragraph:
```markdown theme={null}
First line
Second line
Third line
```
Without `
`, consecutive lines in the same paragraph are joined with a space.
## Inline variables
Reference variables inline with double curly braces:
```markdown theme={null}
Dear {{customer.name}}, your order #{{order.id}} is ready.
```
See [Variables](/markup-reference/variables) for the full variable reference.
## Nesting
Inline formatting can be nested. For example, bold text can contain abbreviations or citations:
```markdown theme={null}
**The ~WHO~ recommends this approach @[smith2023, p. 42].**
```
The parser correctly handles abbreviations (`~ABK~`) and citations (`@[key]`) inside bold, italic, underline, strikethrough, and highlight marks.
## Summary
| Format | Syntax |
| ----------------- | ----------------------------------- |
| Bold | `**text**` or `__text__` |
| Italic | `*text*` or `_text_` |
| Bold Italic | `***text***` |
| Underline | `++text++` |
| Strikethrough | `~~text~~` |
| Highlight | `==text==` |
| Highlight (color) | `==text=={#color}` |
| Text color | `text` |
| Inline code | `` `code` `` |
| Link | `[text](url)` |
| Variable | `{{name}}` |
| Line break | `
` |
# Lists
Source: https://docs.autype.com/markup-reference/lists
Ordered and unordered lists with nesting and inline formatting support.
## Unordered lists
Use `-` or `*` to create unordered list items:
```markdown theme={null}
- Item 1
- Item 2
- Item 3
```
```markdown theme={null}
* Item 1
* Item 2
* Item 3
```
## Ordered lists
Use numbers followed by a period:
```markdown theme={null}
1. First item
2. Second item
3. Third item
```
The starting number is preserved. If you start with `3.`, the rendered list begins at 3.
## Task lists
Use `[x]` for a completed task and `[ ]` for an open task after an unordered
list marker:
```markdown theme={null}
- [x] Critical workloads classified
- [x] Backup power system assessed
- [ ] Full-load black-start test completed
- [ ] Supplier emergency chain contractually secured
```
The checkbox is stored as list-item state. It can be toggled in the rich-text
editor and is exported as a checked or unchecked box in DOCX and PDF rather
than as literal Markdown text. Uppercase `[X]` is accepted and normalized to
`[x]` when serialized.
Task state is also supported in numbered lists, for example
`1. [ ] Verify the first deliverable`. Numbering and its starting value are
preserved across conversions.
## Nested lists
Indent with 2 spaces to create nested lists:
```markdown theme={null}
- Parent Item 1
- Child Item 1.1
- Child Item 1.2
- Grandchild 1.2.1
- Parent Item 2
- Child Item 2.1
```
Ordered nested lists:
```markdown theme={null}
1. First parent
1. First child
2. Second child
2. Second parent
1. Another child
```
You can mix ordered and unordered lists at different nesting levels:
```markdown theme={null}
1. First item
- Sub-bullet A
- Sub-bullet B
2. Second item
- Sub-bullet C
```
## Inline formatting in lists
List items support all inline formatting:
```markdown theme={null}
- **Bold item**
- *Italic item*
- ~~Strikethrough item~~
- Item with **bold** and *italic* mixed
- Item with a [link](https://example.com)
- Item with `inline code`
- Item referencing @[smith2023, p. 42]
```
Lists do not support extended attributes. Styling is controlled by your document defaults.
# Math (LaTeX)
Source: https://docs.autype.com/markup-reference/math
Block math expressions with LaTeX syntax, alignment options, and render-as-image for perfect PDF output.
Autype supports LaTeX math expressions as display equations using the `$$` block syntax.
Inline math (`$E=mc^2$`) is not currently supported. Use block math for all equations.
## Block math
### Multi-line syntax
Use double dollar signs on separate lines:
```markdown theme={null}
$$
E = mc^2
$$
```
```markdown theme={null}
$$
\int_{0}^{\infty} e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
$$
```
### Single-line syntax
For short equations, put everything on one line:
```markdown theme={null}
$$E = mc^2$$
```
### Alignment
Default alignment is left. There are two syntaxes depending on whether the equation is single-line or multi-line.
**Single-line** — use `:left`, `:center`, or `:right` between `$$` and the content:
```markdown theme={null}
$$:center E = mc^2$$
$$:right \nabla \times \mathbf{E} = -\frac{\partial \mathbf{B}}{\partial t}$$
```
**Multi-line** — use `{align=...}` as an attribute on the opening `$$`:
```markdown theme={null}
$${align=center}
\sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}
$$
$${align=right}
\nabla \times \mathbf{E} = -\frac{\partial \mathbf{B}}{\partial t}
$$
```
### Extended attributes
Use `{attrs}` after `$$` for additional control:
```markdown theme={null}
$${align=center renderAsImage=true spacing=10,20}
\int_{0}^{\infty} e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
$$
```
## Attribute reference
| Attribute | Values | Description |
| --------------- | ------------------------------ | -------------------------------------------- |
| `align` | `left`, `center`, `right` | Horizontal alignment |
| `renderAsImage` | `true`, `false` | Render as PNG image for pixel-perfect output |
| `spacing` | `before,after` (e.g., `10,20`) | Spacing before/after in points |
The `renderAsImage` option is recommended for complex equations in PDF/DOCX exports. It ensures the math renders exactly as displayed, regardless of the viewer's font support.
## Common LaTeX examples
### Fractions and roots
```markdown theme={null}
$$
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$$
```
### Summations and integrals
```markdown theme={null}
$$
\sum_{i=1}^{n} i = \frac{n(n+1)}{2}
$$
$$
\int_a^b f(x)\,dx = F(b) - F(a)
$$
```
### Matrices
```markdown theme={null}
$$
\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}
$$
```
### Greek letters
```markdown theme={null}
$\alpha, \beta, \gamma, \delta, \epsilon, \theta, \lambda, \mu, \pi, \sigma, \omega$
```
# Markup Reference
Source: https://docs.autype.com/markup-reference/overview
Complete reference for Autype's extended Markdown syntax — standard Markdown plus powerful extensions for professional documents.
Autype uses **standard Markdown** as its foundation and extends it with optional attributes for styling, layout, and professional document features. Everything you know from Markdown works as-is — extended properties are purely additive.
## How it works
Autype supports three syntax layers:
1. **Standard Markdown** — headings, paragraphs, bold, italic, links, lists, tables, code blocks, images, math
2. **Extended attributes** — add `{key=value}` after elements to control styling, alignment, size, and rendering
3. **Directives** — use `:::directive{attrs}` blocks or `::directive{attrs}` one-liners for charts, QR codes, tables with styling, page sections, indices, and bibliography
### Extended attribute syntax
Append `{key=value}` after an element to customize it:
```markdown theme={null}
{width=200 align=center}
```
Values can be strings (`"value"`), numbers (`400`), or booleans (`true`/`false`).
### Directive syntax
**Block directives** wrap content between `:::` markers:
```markdown theme={null}
:::chart{type="bar" title="Sales"}
labels: Q1, Q2, Q3, Q4
dataset: Revenue | 100, 150, 200, 175 | #3b82f6
:::
```
**Inline directives** are single-line with `::`:
```markdown theme={null}
::toc{title="Table of Contents" maxLevel=3}
```
## Element reference
h1–h6, paragraph styles, text2 variant, HTML syntax for styling.
Bold, italic, underline, strikethrough, highlight, inline code, links, line breaks.
Ordered, unordered, nested lists with inline formatting.
Styled block quotes with borders, backgrounds, alignment, and typography.
Standard and styled tables with 16+ attributes, images in cells.
Sizing, crop, fit, focal point, opacity, captions, and anchors.
Syntax highlighting, render-as-image, background color, alignment.
Block math equations, alignment, render-as-image.
8 chart types — bar, line, pie, doughnut, radar, polar, scatter, bubble.
URL, WiFi, and vCard QR codes with size and error correction.
Inline citations with page/chapter locators, bibliography generation.
Cross-references to headings, figures, and charts with auto-numbering.
Define and reference abbreviations with automatic list generation.
Inline and block variables, built-in variables, date formatting.
Text, number, date, choice, signature, and initials fields with PDF AcroForms.
Organization-managed content inserted as a live reference or editable snapshot.
Page sections, semantic layouts, fixed canvas compositions, backgrounds, and pagination.
Table of contents, list of figures, list of tables, list of abbreviations.
Looking for a compact overview of all syntax? See the [Syntax Cheatsheet](/getting-started/concepts/syntax-cheatsheet).
# Page Layout
Source: https://docs.autype.com/markup-reference/page-layout
Control page layout with page sections, columns layout, spacers, page breaks, and orientation changes for professional document output.
Autype provides several elements to control how content is positioned on pages in the exported document.
## Page breaks
### Simple page break
A horizontal rule (`---`) is treated as a page break in the rendered document:
```markdown theme={null}
Content on page 1.
---
Content on page 2.
```
### Explicit page break with orientation
Change page orientation with the explicit page break syntax:
```markdown theme={null}
---pagebreak{orientation="landscape"}---
```
```markdown theme={null}
---pagebreak{orientation="portrait"}---
```
This is useful for inserting a landscape page for wide tables or charts, then switching back to portrait.
### Example: Mixed orientations
```markdown theme={null}
# Introduction
Regular portrait content here.
---pagebreak{orientation="landscape"}---
## Wide Data Table
| Col 1 | Col 2 | Col 3 | Col 4 | Col 5 | Col 6 | Col 7 | Col 8 |
|-------|-------|-------|-------|-------|-------|-------|-------|
| Data | Data | Data | Data | Data | Data | Data | Data |
---pagebreak{orientation="portrait"}---
## Conclusion
Back to portrait for the conclusion.
```
***
## Page sections
Page sections let you position content at specific vertical locations on a page. This is essential for title pages, certificates, and custom layouts.
### Syntax variant 1: Dash syntax
```markdown theme={null}
---page{align=center}---
# Centered Content
This content is vertically centered on the page.
---/page---
```
### Syntax variant 2: Directive syntax
```markdown theme={null}
:::page{align=center}
# Centered Content
This content is vertically centered on the page.
:::
```
Both syntaxes are equivalent.
### Vertical alignment
| Value | Description |
| -------- | ------------------------------------- |
| `top` | Content starts at the top of the page |
| `center` | Content is vertically centered |
| `bottom` | Content is aligned to the bottom |
### Absolute positioning with startY
Position content at an exact vertical position (in points from the top):
```markdown theme={null}
---page{align=top startY=100}---
Content starting at 100 points from the top.
---/page---
```
### Attribute reference
| Attribute | Values | Description |
| -------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------- |
| `align` | `top`, `center`, `bottom` | Vertical alignment on the page |
| `startY` | Number (points) | Absolute Y position from top of page |
| `orientation` | `portrait`, `landscape` | Page orientation |
| `backgroundColor` | Hex color | Page background color |
| `backgroundImage` | Asset or HTTP(S) source | Full-page background image |
| `backgroundFit` | `contain`, `cover`, `fill` | Background image fit |
| `backgroundPositionX`, `backgroundPositionY` | `0`–`100` | Image focal position |
| `backgroundOpacity` | `0`–`1` | Background image opacity |
| `margins` | `top,right,bottom,left` | Per-side page margins in cm |
| `showHeader`, `showFooter` | `true`, `false` | Override header/footer visibility |
| `pageStyleId` | Style ID | Select a reusable document page style |
| `pageStart` | `auto`, `next`, `odd`, `even` | Control section page start |
| `restartPageNumber` | Positive integer | Restart visible page numbering |
| `pageNumberFormat` | `decimal`, `lowerRoman`, `upperRoman`, `lowerAlpha`, `upperAlpha` | Page number format |
### Example: Title page
```markdown theme={null}
---page{align=center}---
# Annual Report 2024
## Acme Corporation
*Confidential*
---/page---
---
# Table of Contents
::toc{maxLevel=3}
```
### Flow page assignment
Use `---flow---` when a normal editable flow needs page-design metadata but no
column wrapper:
```markdown theme={null}
---flow{id="appendix" pageStyleId="appendix" pageStart=odd restartPageNumber=1 pageNumberFormat=upperRoman}---
# Appendix
This section uses the appendix master page.
---/flow---
```
The same attributes work on `---columns---`. See
[Document Styling](/api-reference/json-syntax/document-styling) for
master-page and region definitions.
### Example: Certificate
```markdown theme={null}
---page{align=center}---
# Certificate of Completion
This certifies that **{{recipientName}}** has successfully completed the course.
**Date:** {{date/D. MMMM YYYY}}
---/page---
```
***
## Columns layout
Create multi-column layouts similar to LaTeX two-column papers. Content flows automatically from one column to the next.
### Basic two-column layout
```markdown theme={null}
---columns{count=2}---
Content in the first column flows here. When the column is full,
text continues automatically in the second column.
## Section Title
All element types work inside columns — headings, paragraphs, lists, images, tables, math, and more.
---/columns---
```
### Three-column layout
```markdown theme={null}
---columns{count=3 space=0.8}---
Content flows across three columns with 0.8 cm spacing between them.
---/columns---
```
### With separator line
Add a vertical line between columns:
```markdown theme={null}
---columns{count=2 space=1.5 separate=true}---
Left column content here...
Right column content here...
---/columns---
```
### Attribute reference
| Attribute | Values | Default | Description |
| ---------- | --------------- | ------- | -------------------------------------------- |
| `count` | `1`–`4` | `2` | Number of columns |
| `space` | Number (cm) | `1.27` | Gap between columns |
| `separate` | `true`, `false` | `false` | Show vertical separator line between columns |
### Example: Academic paper style
```markdown theme={null}
Research Paper Title
Author Name — Institution
## Abstract
This is a single-column abstract paragraph.
---
---columns{count=2}---
## 1. Introduction
The introduction text flows across two columns, just like a typical academic paper layout.
## 2. Methods
Describe your methodology here. Tables, math blocks, and images all work within the column layout.
$$E = mc^2$$
## 3. Results
| Metric | Value |
|--------|-------|
| Score | 95.2 |
## 4. Conclusion
Final remarks in two-column format.
---/columns---
```
Columns are a section-level property — all content between `---columns{...}---` and `---/columns---` flows across the specified number of columns. In PDF/DOCX export, this uses native document column support for accurate rendering.
***
## Semantic layouts
Semantic layouts place independently editable content side by side. Use them
for summaries, image/text combinations, KPI rows, and other layouts where each
column needs its own content. Unlike flowing columns, content never moves
automatically from one semantic column into another.
```markdown theme={null}
---layout{gap=12 backgroundColor="#f8fafc" padding="8,8,8,8" keepTogether=true}---
---column{width="1fr" verticalAlign=top backgroundColor="#ffffff"}---
## Summary
Editable text in the first column.
---/column---
---column{width="2fr" verticalAlign=center backgroundColor="#ecfdf5"}---
{width=360 align=center}
---/column---
---/layout---
```
### Layout attributes
| Attribute | Values | Description |
| ------------------------------------------- | ----------------------- | ----------------------------- |
| `gap` | Number | Gap between columns in points |
| `backgroundColor` | Hex color | Whole-layout background |
| `borderWidth`, `borderColor`, `borderStyle` | Border values | Whole-layout border |
| `padding` | `top,right,bottom,left` | Whole-layout padding |
| `spacingBefore`, `spacingAfter` | Number | External spacing |
| Pagination attributes | Boolean | Keep and page-break controls |
Column `width` accepts a fixed centimeter number, `%`, `fr`, or `auto`.
Columns can independently define `verticalAlign`, background, border, and
padding.
Semantic layouts are exported as fixed-width DOCX tables. Their headings,
paragraphs, lists, images, and form fields remain editable in Word and
LibreOffice.
***
## Fixed canvas
Canvas is intended for cover pages, certificates, title panels, and other
deliberately fixed visual compositions. Item positions and dimensions are
percentages of the canvas.
```markdown theme={null}
---canvas{height=100 backgroundColor="#0f172a" pageBreakBefore=true}---
::canvasShape{x=0 y=0 width=100 height=100 shape=rectangle fillColor="#0f172a" zIndex=0}
::canvasImage{x=8 y=8 width=24 height=16 src="/image/logo-id" fit=contain zIndex=2}
::canvasText{x=10 y=38 width=80 height=20 text="Annual Report" fontSize=34 fontWeight=bold color="#ffffff" align=center zIndex=3}
::canvasText{x=20 y=62 width=60 height=10 text="{{companyName}}" fontSize=16 color="#cbd5e1" align=center zIndex=3}
---/canvas---
```
Supported items:
* `canvasText`: text, typography, colors, alignment, vertical alignment, padding
* `canvasImage`: source, alt text, fit, and focal point
* `canvasShape`: rectangle, ellipse, or line with fill and border styling
Common item attributes are `id`, `x`, `y`, `width`, `height`, `rotation`,
`opacity`, and `zIndex`.
Canvas items remain editable in Autype. For deterministic DOCX and
LibreOffice output, the complete canvas is exported as one high-resolution
image, so its individual items are not editable in Word. Form fields are not
supported inside canvas; use semantic layouts for editable controls.
***
## Pagination controls
Extended block elements can use the following attributes:
| Attribute | Description |
| ----------------- | ----------------------------------------- |
| `keepTogether` | Avoid splitting the block across pages |
| `keepWithNext` | Keep the block with the following block |
| `pageBreakBefore` | Start the block on a new page |
| `widowControl` | Enable or disable widow/orphan protection |
These map to native DOCX pagination where available and to equivalent print CSS
for HTML output.
***
## Spacers
Add vertical spacing between elements:
```markdown theme={null}
---spacer---
```
### Custom height
**Lines** (default unit):
```markdown theme={null}
---spacer{height=2}---
```
This adds 2 lines of vertical space.
**Pixels:**
```markdown theme={null}
---spacer{height="50px"}---
```
This adds exactly 50 pixels of vertical space.
### Height values
| Format | Description | Example |
| ---------------- | --------------- | --------------------------- |
| Number | Lines of space | `height=2` → 2 lines |
| String with `px` | Pixels of space | `height="50px"` → 50 pixels |
| *(omitted)* | Default: 1 line | `---spacer---` |
Spacers are useful for fine-tuning layout on title pages or between sections where the default paragraph spacing isn't enough.
# QR Codes
Source: https://docs.autype.com/markup-reference/qr-codes
Generate URL, WiFi, vCard, and text QR codes directly in your documents with customizable size, captions, and error correction.
Autype can embed QR codes in your documents using the `:::qrcode` directive. QR codes are rendered as images in the exported document.
## URL QR Code
```markdown theme={null}
:::qrcode{type="url" size=150 align=center}
https://example.com
:::
```
You can also use the `url:` prefix:
```markdown theme={null}
:::qrcode{type="url" size=200}
url: https://docs.autype.com
:::
```
Both formats are equivalent. If the content doesn't start with `url:`, the entire first line is used as the URL.
***
## WiFi QR Code
Generate a QR code that lets users connect to a WiFi network by scanning:
```markdown theme={null}
:::qrcode{type="wifi" size=200}
ssid: MyNetwork
password: secret123
encryption: WPA
:::
```
### WiFi fields
| Field | Required | Values | Description |
| ------------ | -------- | ---------------------- | ----------------------------- |
| `ssid` | Yes | String | Network name |
| `password` | No | String | Network password |
| `encryption` | No | `WPA`, `WEP`, `nopass` | Encryption type |
| `hidden` | No | `true`, `false` | Whether the network is hidden |
### Example: Guest WiFi
```markdown theme={null}
:::qrcode{type="wifi" size=150}
ssid: GuestWiFi
password: guest2024
encryption: WPA
hidden: false
:::
```
***
## vCard QR Code
Generate a contact card QR code:
```markdown theme={null}
:::qrcode{type="vcard" size=180}
firstName: John
lastName: Doe
organization: Acme Corp
phone: +1-555-123-4567
email: john.doe@example.com
url: https://johndoe.com
address: 123 Main St, City, Country
:::
```
### vCard fields
| Field | Required | Description |
| -------------- | -------- | -------------------------------------- |
| `firstName` | No | First name |
| `lastName` | No | Last name |
| `name` | No | Full name (auto-split into first/last) |
| `phone` | No | Phone number |
| `email` | No | Email address |
| `organization` | No | Company / organization name |
| `url` | No | Website URL |
| `address` | No | Physical address |
| `note` | No | Additional note |
The `name` field is a shortcut that splits on the first space into `firstName` and `lastName`. Use `firstName` and `lastName` separately for more control.
### Minimal vCard
```markdown theme={null}
:::qrcode{type="vcard"}
firstName: Jane
lastName: Smith
email: jane@company.com
phone: +49-123-456789
:::
```
***
## Text QR Code
Encode arbitrary text without treating it as a URL:
```markdown theme={null}
:::qrcode{type="text" size=180 caption="Scan for details"}
Any text payload
:::
```
***
## Attribute reference
| Attribute | Values | Description |
| ----------------- | ------------------------------ | ---------------------------------- |
| `type` | `url`, `wifi`, `vcard`, `text` | QR code type (required) |
| `size` | Number (pixels) | Size of the QR code image |
| `errorCorrection` | `L`, `M`, `Q`, `H` | Error correction level |
| `align` | `left`, `center`, `right` | Horizontal alignment |
| `caption` | String | Optional caption below the QR code |
### Error correction levels
| Level | Recovery | Best for |
| -------------- | -------- | ----------------------------------------- |
| `L` (Low) | \~7% | Clean environments, maximum data capacity |
| `M` (Medium) | \~15% | Default, good balance |
| `Q` (Quartile) | \~25% | Moderate damage tolerance |
| `H` (High) | \~30% | Printed materials that may get damaged |
If no `size` is specified, the QR code renders at a default size. For print documents, use `size=200` or larger for reliable scanning.
# References & Anchors
Source: https://docs.autype.com/markup-reference/references
Cross-reference headings, images, charts, and tables with automatic numbering — using anchors and three display modes.
Internal references let you create clickable links to headings, images, charts, and tables within your document. References are automatically resolved with correct numbering at render time.
## Defining anchors
### Heading anchors
Add `{#anchor-id}` at the end of a heading:
```markdown theme={null}
# Introduction {#intro}
## Methods {#methods}
### Data Analysis {#data-analysis}
```
### Image anchors
Add an `anchor` attribute to an image:
```markdown theme={null}
{anchor=fig-diagram caption="System Architecture"}
```
### Chart anchors
Add an `anchor` attribute to a chart directive:
```markdown theme={null}
:::chart{type="bar" anchor="chart-sales" caption="Sales 2024"}
labels: Q1, Q2, Q3, Q4
dataset: Sales | 100, 150, 200, 175 | #3b82f6
:::
```
### Table anchors
Add an `anchor` attribute to a table directive:
```markdown theme={null}
:::table{caption="Fee Schedule" anchor="tab-fees"}
| Service | Monthly | Annual |
|---------|---------|--------|
| Basic | €10 | €100 |
| Pro | €25 | €250 |
:::
```
### Anchor ID rules
* Must start with a letter (a–z, A–Z)
* Can contain letters, numbers, underscores, and hyphens
* Must be unique within the document
* Examples: `intro`, `fig-1`, `section_2`, `data-analysis`
***
## Referencing anchors
There are three display modes for internal references:
### Auto mode
Use empty brackets `[]` to automatically show the target's numbered prefix and title:
```markdown theme={null}
See [](#intro) for more details.
```
Renders as: *See Section 1 Introduction for more details.*
### Template mode
Include `{num}` in the link text — it gets replaced with the target's number:
```markdown theme={null}
As shown in [Figure {num}](#fig-diagram), the architecture...
Refer to [Table {num}](#table-data) for the full dataset.
See [Section {num}](#methods) for methodology.
```
Renders as:
* *As shown in Figure 1, the architecture...*
* *Refer to Table 2 for the full dataset.*
* *See Section 2 for methodology.*
### Custom mode
Provide any text without `{num}` — it's displayed as-is:
```markdown theme={null}
For sales data, refer to [the chart below](#chart-sales).
As discussed [earlier](#intro), the results are clear.
```
Renders as:
* *For sales data, refer to the chart below.*
* *As discussed earlier, the results are clear.*
***
## Summary
| Syntax | Mode | Description | Example Output |
| ------------------------ | -------- | ---------------------------- | -------------------------- |
| `[](#anchor)` | Auto | Numbered prefix + title | "Section 2.1 Introduction" |
| `[Text {num}](#anchor)` | Template | Replaces `{num}` with number | "Figure 1" |
| `[Custom Text](#anchor)` | Custom | Shows your text as-is | "Custom Text" |
***
## Validation
Autype validates references at render time:
* **Duplicate anchors** — two elements with the same anchor ID will cause a validation error
* **Broken references** — references to non-existent anchors will cause a validation error
Use descriptive anchor IDs like `fig-architecture` or `sec-methodology` to make your document source readable and avoid accidental duplicates.
# Reusable Blocks
Source: https://docs.autype.com/markup-reference/reusable-blocks
Insert organization-managed Extended Markdown blocks as live references or independent snapshots.
Reusable blocks are organization-wide snippets such as legal clauses, company
descriptions, disclaimers, or standard offer sections. Each block is versioned
and stored as Extended Markdown.
## Reference mode
Reference mode keeps the document connected to the reusable block. `latest`
uses the current active version when the reference is resolved.
```markdown theme={null}
::block{id="550e8400-e29b-41d4-a716-446655440000" version=latest mode=reference locked=true}
```
Use a known block ID returned by the sidebar, API, or MCP tools. Do not invent
IDs.
## Snapshot mode
Snapshot mode copies the block content into the document. The copied elements
can be edited independently and do not change when the library block is updated.
The visual editor exposes both actions:
* **Reference** inserts a linked, read-only block.
* **Copy** inserts an editable snapshot at the current cursor position.
## Version behavior
| Setting | Result |
| ---------------- | ------------------------------------------------------------------------------ |
| `version=latest` | Resolve the current active block version |
| Pinned version | Keep using one specific block version |
| `locked=true` | Keep a reference read-only in the visual editor |
| Fallback content | Preserve renderable content if a referenced library block is later unavailable |
Publishing changed block content creates an immutable version with an optional
changelog note. Restoring an older version creates another version instead of
rewriting history, so pinned references continue to resolve exactly as before.
Metadata-only changes do not publish a content version.
Manage blocks in the [Reusable Blocks sidebar](/getting-started/editor/sidebar-reusable-blocks)
or through the Developer API and MCP tools.
# Tables
Source: https://docs.autype.com/markup-reference/tables
Standard Markdown tables and the extended table directive with styling, column widths, alignment, captions, images, and form fields in cells.
## Standard Markdown tables
```markdown theme={null}
| Header 1 | Header 2 | Header 3 |
|----------|----------|----------|
| Cell 1 | Cell 2 | Cell 3 |
| Cell 4 | Cell 5 | Cell 6 |
```
The separator row (`|---|---|`) marks the first row as a header. Without a separator, all rows are treated as data rows.
### Tables with inline formatting
Table cells support all inline formatting:
```markdown theme={null}
| Name | Description | Status |
|------|-------------|--------|
| **Project A** | Main project | *Active* |
| **Project B** | Secondary | ~~Cancelled~~ |
| **Project C** | See @[smith2023] | `pending` |
```
### Images in table cells
Embed images directly in table cells:
```markdown theme={null}
| Name | Logo |
|------|------|
| Company A | {width=100 height=50} |
| Company B | {width=100 height=50} |
```
Image attributes `width` and `height` are supported inside table cells.
### Form fields in table cells
A table cell can contain one form field instead of text or an image:
```markdown theme={null}
:::table{columnWidths="1fr,2fr"}
| Label | Value |
| --- | --- |
| Customer | ::field{name="customer" type=text} |
| Department | ::field{name="department" type=select options="Sales,Legal"} |
| Approval | ::field{name="approval" type=checkbox options="Approved"} |
:::
```
Use commas between select or checkbox options inside a table cell because the
pipe character is the table column delimiter. See [Form Fields](/markup-reference/form-fields)
for all field types and properties.
***
## Table directive
For full styling control, captions, anchors, and column widths, wrap your table in a `:::table{attrs}` directive:
```markdown theme={null}
:::table{caption="Sales Data" columnWidths="4,1fr,1fr" headerBg="#f0f0f0" rowAltBg="#fafafa"}
| Product | Q1 | Q2 |
|---------|----|----|
| Widget | 100| 150|
| Gadget | 200| 250|
:::
```
### Column widths
Use `columnWidths` to control table layout:
```markdown theme={null}
:::table{columnWidths="4,1fr,1fr"}
| Item | Description | Price |
|------|-------------|-------|
| A-100 | Long flexible description | €49 |
| B-200 | Another description | €79 |
:::
```
Widths are comma-separated and map from left to right:
| Width value | Meaning |
| ------------ | ---------------------------------------- |
| `4` | Fixed width in centimeters. |
| `30%` | Percentage of the available table width. |
| `1fr`, `2fr` | Flexible share of the remaining width. |
| `auto` | Automatic/flexible column. |
Mixed layouts are supported. For example, `columnWidths="4,1fr,2fr"` keeps the first column fixed at `4cm`; the remaining space is then split into one share for the second column and two shares for the third column.
If fewer widths than columns are provided, the remaining columns use `auto`. More widths than columns are rejected during validation.
### Invisible tables (layout tables)
Remove all borders and backgrounds to use tables for layout purposes:
```markdown theme={null}
:::table{invisible=true cellPadding=12}
| Logo | Company |
|------|---------|
| {width=50} | Company A |
:::
```
### Hidden headers
Hide the header row while keeping it for structure:
```markdown theme={null}
:::table{hideHeaders=true}
| Col 1 | Col 2 |
|-------|-------|
| Data | Data |
:::
```
### Table captions
Add a caption for automatic numbering in the List of Tables:
```markdown theme={null}
:::table{caption="Revenue by Quarter"}
| Quarter | Revenue |
|---------|---------|
| Q1 | €150,000 |
| Q2 | €180,000 |
:::
```
This renders as: *Table 1: Revenue by Quarter*
The caption prefix (e.g., `"Table"`, `"Tabelle"`) and styling (font, alignment, color) are configured in your document's [style settings](/getting-started/editor/sidebar-styles#table-captions).
### Anchors for cross-references
Add an `anchor` attribute to reference the table from elsewhere:
```markdown theme={null}
:::table{caption="Fee Schedule" anchor="tab-fees"}
| Service | Monthly | Annual |
|---------|---------|--------|
| Basic | €10 | €100 |
| Pro | €25 | €250 |
:::
```
Then reference it:
```markdown theme={null}
See [Table {num}](#tab-fees) for the full pricing breakdown.
```
See [References & Anchors](/markup-reference/references) for all cross-reference options.
***
## Attribute reference
### General attributes
| Attribute | Values | Description |
| -------------- | ------------------------- | ------------------------------------------------------------ |
| `caption` | String | Table caption text (enables auto-numbering) |
| `anchor` | String | Anchor ID for cross-references |
| `align` | `left`, `center`, `right` | Horizontal alignment of the complete table |
| `invisible` | `true`, `false` | Hide all borders and backgrounds |
| `hideHeaders` | `true`, `false` | Hide the header row |
| `columnWidths` | Comma-separated widths | Fixed cm (`4`), percent (`30%`), flexible (`1fr`), or `auto` |
| `cellPadding` | Number (pt) | Uniform cell padding |
### Header styles
| Attribute | Values | Description |
| ------------------ | ------------------------- | ----------------------- |
| `headerBg` | CSS color | Header background color |
| `headerColor` | CSS color | Header text color |
| `headerFontSize` | Number (pt) | Header font size |
| `headerFontWeight` | `normal`, `bold` | Header font weight |
| `headerFontStyle` | `normal`, `italic` | Header font style |
| `headerAlign` | `left`, `center`, `right` | Header text alignment |
### Row styles
| Attribute | Values | Description |
| --------------- | ------------------------- | -------------------------- |
| `rowBg` | CSS color | Row background color |
| `rowAltBg` | CSS color | Alternating row background |
| `rowColor` | CSS color | Row text color |
| `rowFontSize` | Number (pt) | Row font size |
| `rowFontWeight` | `normal`, `bold` | Row font weight |
| `rowFontStyle` | `normal`, `italic` | Row font style |
| `rowAlign` | `left`, `center`, `right` | Row text alignment |
### Border styles
| Attribute | Values | Description |
| ------------- | --------------------------- | ------------ |
| `borderWidth` | Number (pt) | Border width |
| `borderColor` | CSS color | Border color |
| `borderStyle` | `solid`, `dashed`, `dotted` | Border style |
***
## Full example
```markdown theme={null}
:::table{caption="Team Overview" columnWidths="3,2fr,1fr" headerBg="#1e293b" headerColor="#ffffff" headerAlign=center rowAltBg="#f8fafc" borderWidth=1 borderColor="#e2e8f0" cellPadding=8}
| Name | Role | Status |
|------|------|--------|
| Alice | Engineering Lead | Active |
| Bob | Designer | Active |
| Carol | Product Manager | On Leave |
:::
```
# Variables
Source: https://docs.autype.com/markup-reference/variables
Inline and block-level variables, built-in variables for headers/footers, and advanced date formatting with offsets and timezones.
Variables let you insert dynamic content into your documents. They are replaced with actual values at render time.
## Inline variables
Reference variables inline with double curly braces:
```markdown theme={null}
Dear {{customer.name}}, your order #{{order.id}} is ready.
The total amount is {{totalAmount}} EUR.
```
Variable names must start with a letter and can contain letters, numbers, and underscores. Dot notation (`customer.name`) is supported for nested values.
## Block-level variables
Place a variable reference on its own line to render it as a standalone block:
```markdown theme={null}
{{companyLogo}}
{{signatureBlock}}
{{footerContent}}
```
Block-level variables can contain images, text blocks, or other complex content defined in your document's variable configuration.
## Variable types
Variables support multiple types. The type is determined by the value you provide:
* **Text** — A simple string value (e.g., `"companyName": "Acme Inc"`)
* **Number** — A numeric value (e.g., `"total": { "type": "number", "value": 1250.00 }`)
* **Image** — An image with optional dimensions and alignment
* **List** — An ordered or unordered list
* **Table** — A 2D data table with optional column headers
Number variables are rendered as text when used inline (`{{total}}` becomes `"1250"`). They are especially useful in chart dataset data arrays, where they are automatically resolved to numeric values.
For full details on defining each variable type, see the [JSON Syntax — Variables](/api-reference/json-syntax/variables) reference.
***
## Built-in variables (headers & footers)
These variables are automatically available in document headers and footers:
| Variable | Description | Example Output |
| ---------------- | ------------------------- | -------------- |
| `{{pageNumber}}` | Current page number | `1` |
| `{{totalPages}}` | Total page count | `99` |
| `{{date}}` | Current date (DD.MM.YYYY) | `02.02.2026` |
***
## Date variable formatting
The `{{date}}` variable supports custom formatting, date manipulation, and timezone offsets.
### Syntax
```
{{date}} → Default format (DD.MM.YYYY)
{{date/FORMAT}} → Custom format
{{date/FORMAT/OFFSET}} → With date manipulation
{{date/FORMAT/OFFSET/TIMEZONE}} → With timezone offset
```
### Format tokens
| Token | Description | Example |
| ------ | ---------------- | -------- |
| `YYYY` | 4-digit year | 2026 |
| `YY` | 2-digit year | 26 |
| `MMMM` | Full month name | February |
| `MMM` | Short month name | Feb |
| `MM` | 2-digit month | 02 |
| `M` | 1-2 digit month | 2 |
| `dddd` | Full weekday | Sunday |
| `ddd` | Short weekday | Sun |
| `DD` | 2-digit day | 02 |
| `D` | 1-2 digit day | 2 |
| `HH` | 24-hour hour | 14 |
| `mm` | Minutes | 35 |
### Format presets
Instead of building a format string, use a preset name:
| Preset | Equivalent Format | Example |
| ----------- | ------------------ | ---------------- |
| `iso` | `YYYY-MM-DD` | 2026-02-02 |
| `time` | `HH:mm` | 14:35 |
| `datetime` | `DD.MM.YYYY HH:mm` | 02.02.2026 14:35 |
| `long` | `D. MMMM YYYY` | 2. February 2026 |
| `monthYear` | `MMMM YYYY` | February 2026 |
### Date offset (manipulation)
Shift the date forward or backward:
| Offset | Description |
| -------- | ------------------- |
| `+1d` | Tomorrow |
| `-7d` | 7 days ago |
| `+1m` | Next month |
| `-1y` | Last year |
| `+2h` | 2 hours from now |
| `+30min` | 30 minutes from now |
### Timezone offset
Specify a UTC offset in `+HH:mm` or `-HH:mm` format:
```markdown theme={null}
{{date/HH:mm//+01:00}} → Time in CET
{{date/datetime/+7d/+02:00}} → Next week, CEST
```
When using a timezone offset without a date offset, leave the offset slot empty with double slashes: `{{date/FORMAT//TIMEZONE}}`.
### Examples
```markdown theme={null}
{{date/DD.MM.YYYY}} → 02.02.2026
{{date/YYYY-MM-DD}} → 2026-02-02
{{date/D. MMMM YYYY}} → 2. February 2026
{{date/iso}} → 2026-02-02
{{date/DD.MM.YYYY/+1d}} → Tomorrow's date
{{date/MMMM YYYY/-1y}} → February 2025
{{date/HH:mm//+01:00}} → Time in CET
{{date/datetime/+7d/+02:00}} → Next week, CEST
```