{ "$schema": "https://json-schema.org/draft-07/schema#", "$id": "https://github.com/zeldigas/text2confl/directory-config.schema.json", "title": "text2confl.yml configuration file", "type": "object", "description": "Configuration parameters for https://github.com/zeldigas/text2confl", "properties": { "server": { "type": "string", "description": "Confluence server URL. Must be https://.atlassian.net/wiki for Confluence Cloud" }, "confluence-cloud": { "type": "boolean", "description": "Enables API V2 usage. `true` for Confluence Cloud by default. Specify only if you want to explicitly disable it for some reason" }, "space": { "type": "string", "description": "Confluence space key where pages uploaded" }, "default-parent-id": { "type": "string", "description": "Default parent page ID for root level pages. Takes precedence over default parent page title" }, "default-parent": { "type": "string", "description": "Default parent page title for root level pages" }, "remove-orphans": { "type": "string", "enum": ["none", "managed", "all"], "default": "managed", "description": "Cleanup strategy for orphaned pages" }, "notify-watchers": { "type": "boolean", "default": true, "description": "Whether to notify page watchers on updates" }, "title-prefix": { "type": "string", "default": "", "description": "Prefix to add to all page titles" }, "title-postfix": { "type": "string", "default": "", "description": "Postfix to add to all page titles" }, "editor-version": { "type": "string", "enum": ["v1", "v2"], "description": "Editor version to use. If not specified, set to v1 for Confluence Server and to v2 for Confluence Cloud" }, "modification-check": { "type": "string", "enum": ["hash", "content"], "default": "hash", "description": "Method to detect page modifications" }, "docs-location": { "type": "string", "description": "Url - location of documentation files. When specified, implicitly sets `add-autogenerated-note` to `true` as default value" }, "add-autogenerated-note": { "type": "boolean", "description": "Whether to add autogenerated note to pages at the top of the page" }, "autogenerated-note": { "type": "string", "description": "Custom autogenerated note text in Confluence Storage format" }, "auto-fix-content-tags": { "type": "boolean", "default": false, "description": "Whether to automatically fix converted content to make tag properly ordered" }, "tenant": { "type": "string", "description": "Tenant identifier for multi-tenant setups" }, "code-blocks": { "$ref": "#/definitions/CodeBlockParams" }, "markdown": { "$ref": "#/definitions/MarkdownParams" }, "asciidoc": { "$ref": "#/definitions/AsciidocParams" }, "client": { "$ref": "#/definitions/HttpClientParams" } }, "definitions": { "CodeBlockParams": { "type": "object", "description": "Configuration for code block processing", "properties": { "default-language": { "type": "string", "description": "Default language for code blocks without explicit language tag" }, "extra-mapping": { "type": "object", "patternProperties": { ".+": { "type": "string" } }, "description": "Additional mappings for language aliases. Use when to map language tags to values known by Confluence" }, "collapse-with-expand": { "type": "boolean", "description": "Whether to wrap collapsible code blocks into expand macro. Activated by default for Confluence Cloud since code blocks in v2 editor does not support collapsing" } }, "additionalProperties": false }, "MarkdownParams": { "type": "object", "description": "Configuration for Markdown processing", "properties": { "any-macro": { "type": "boolean", "description": "Allow any Confluence macro in [SIMPLEMACRO ...] format. If no enabled macros explicitly configured, implicitly set to true" }, "enabled-macros": { "type": "array", "items": { "type": "string" }, "description": "List of explicitly enabled Confluence macros in [SIMPLEMACRO ...] format" }, "emoji": { "type": "boolean", "default": true, "description": "Enable emoji support" }, "diagrams": { "$ref": "#/definitions/MarkdownDiagramParameters" }, "auto-links": { "type": "boolean", "default": true, "description": "Enable automatic link detection" }, "tables": { "$ref": "#/definitions/TablesConfiguration" }, "typography": { "$ref": "#/definitions/TypographyConfiguration" } }, "additionalProperties": false }, "MarkdownDiagramParameters": { "type": "object", "description": "Configuration for diagram generation in Markdown", "properties": { "temp-dir": { "type": "boolean", "default": false, "description": "Use temporary directory for diagram generation" }, "base-dir": { "type": "string", "default": ".diagrams", "description": "Base directory for diagram files, relative to documentation directory" }, "mermaid": { "$ref": "#/definitions/MermaidDiagramsConfiguration" }, "plantuml": { "$ref": "#/definitions/PlantUmlDiagramsConfiguration" }, "kroki": { "$ref": "#/definitions/KrokiDiagramsConfiguration" } }, "additionalProperties": false }, "AsciidocParams": { "type": "object", "description": "Configuration for AsciiDoc processing", "properties": { "gems": { "type": "array", "items": { "type": "string" }, "default": [], "description": "Ruby gems to load for AsciiDoc processing" }, "diagrams": { "type": "string", "enum": ["none", "diagrams", "kroki"], "default": "Diagrams", "description": "Diagram support mode for AsciiDoc. `none` disables diagram rendering" }, "bundled-macros": { "type": "boolean", "default": true, "description": "Load bundled AsciiDoc macros: `status`, `user`, `confl_macro`" }, "attributes": { "type": "object", "additionalProperties": true, "default": {}, "description": "AsciiDoc attributes to pass to the processor for all pages" }, "temp-dir": { "type": "boolean", "default": false, "description": "Use temporary directory for AsciiDoc processing instead of base-dir" }, "base-dir": { "type": "string", "default": ".asciidoc", "description": "Base directory for AsciiDoc internal files and generated diagrams. Relative to docs directory" }, "kroki": { "$ref": "#/definitions/KrokiDiagramsParameters" } }, "additionalProperties": false }, "KrokiDiagramsParameters": { "type": "object", "description": "Parameters for Kroki diagram service", "properties": { "server": { "type": "string", "format": "uri", "default": "https://kroki.io", "description": "Kroki server URL" }, "fetch": { "type": "boolean", "default": true, "description": "Whether to fetch diagrams from Kroki server and upload them as attachments instead of using links" }, "default-format": { "type": "string", "description": "Default output format for Kroki diagrams" } }, "additionalProperties": false }, "TablesConfiguration": { "type": "object", "description": "Configuration for table processing", "properties": { "column-spans": { "type": "boolean", "default": true, "description": "Enable column spans in tables" }, "discard-extra-columns": { "type": "boolean", "default": true, "description": "Discard extra columns that don't fit the table structure" }, "append-missing-columns": { "type": "boolean", "default": true, "description": "Append missing columns to match table structure" }, "header-separator-column-match": { "type": "boolean", "default": true, "description": "Match header separator columns" } }, "additionalProperties": false }, "TypographyConfiguration": { "type": "object", "description": "Configuration for typography processing", "properties": { "quotes": { "type": "boolean", "default": false, "description": "Enable smart quotes conversion" }, "smarts": { "type": "boolean", "default": true, "description": "Enable smart typography features" } }, "additionalProperties": false }, "MermaidDiagramsConfiguration": { "type": "object", "description": "Configuration for Mermaid diagram generation", "properties": { "enabled": { "type": "boolean", "default": true, "description": "Enable Mermaid diagram generation" }, "default-format": { "type": "string", "default": "png", "enum": ["png", "svg"], "description": "Default output format for Mermaid diagrams" }, "executable": { "type": "string", "default": "mmdc", "description": "Path to Mermaid executable" }, "config-file": { "type": "string", "description": "Path to Mermaid configuration file." }, "css-file": { "type": "string", "description": "Path to CSS file for Mermaid diagrams" }, "puppeeter-config": { "type": "string", "description": "Path to Puppeteer configuration file" } }, "additionalProperties": false }, "PlantUmlDiagramsConfiguration": { "type": "object", "description": "Configuration for PlantUML diagram generation", "properties": { "enabled": { "type": "boolean", "default": true, "description": "Enable PlantUML diagram generation" }, "executable": { "type": "string", "default": "plantuml", "description": "Path to PlantUML executable" }, "default-format": { "type": "string", "default": "png", "enum": ["svg", "png", "eps"], "description": "Default output format for PlantUML diagrams" } }, "additionalProperties": false }, "KrokiDiagramsConfiguration": { "type": "object", "description": "Configuration for Kroki diagram generation", "properties": { "enabled": { "type": "boolean", "default": true, "description": "Enable Kroki diagram generation" }, "server": { "type": "string", "format": "uri", "default": "https://kroki.io", "description": "Kroki server URL" }, "default-format": { "type": "string", "default": "png", "enum": ["png", "svg"], "description": "Default output format for Kroki diagrams" } }, "additionalProperties": false }, "HttpClientParams": { "type": "object", "description": "Parameters for http client", "properties": { "skip-ssl": { "type": "boolean", "default": false, "description": "Skip SSL certificate verification" }, "requests-per-seconds": { "type": "number", "description": "Activates requests rate limiting when provided. Use if requests rate is throttled by server" }, "retry-on-too-many-requests": { "type": "boolean", "default": true, "description": "Retry requests when server returns 429 or 503 status codes" } } } } }