Modules and coordinates

All modules are published under the group org.markup-poet, version 0.2.0.

Modules

Module Coordinates Contents Dependencies

markup-table

org.markup-poet:markup-table:0.2.0

standalone table model + DSL

none

markup-document

org.markup-poet:markup-document:0.2.0

abstract document model + article DSL

markup-table (api)

markup-graph

org.markup-poet:markup-graph:0.2.0

standalone graph model + DSL (nodes/edges), isAcyclic(), topologicalSortOrNull()

none

markup-asciidoc-writer

org.markup-poet:markup-asciidoc-writer:0.2.0

writes documents and tables as AsciiDoc source text

markup-document, markup-table, kotlinx-io, kotlinx-coroutines (all api)

markup-markdown-writer

org.markup-poet:markup-markdown-writer:0.2.0

writes documents and tables as Markdown (GFM) source text

markup-document, markup-table, kotlinx-io, kotlinx-coroutines (all api)

markup-grammar

org.markup-poet:markup-grammar:0.2.0

standalone grammar model + DSL (rules/expressions)

none

markup-dot-writer

org.markup-poet:markup-dot-writer:0.2.0

writes graphs as Graphviz DOT source text

markup-graph, kotlinx-io, kotlinx-coroutines (all api)

markup-bnf-writer

org.markup-poet:markup-bnf-writer:0.2.0

writes grammars as BNF, EBNF or ABNF source text

markup-grammar, kotlinx-io, kotlinx-coroutines (all api)

Dependency layering

The model modules (markup-table, markup-document, markup-graph, markup-grammar) have zero third-party dependencies; markup-document api-depends only on markup-table. Writer modules api-depend on their model modules plus org.jetbrains.kotlinx:kotlinx-io-core:0.9.1 and org.jetbrains.kotlinx:kotlinx-coroutines-core:1.11.0. Depending on a writer module therefore brings kotlinx-io and kotlinx-coroutines onto the classpath and pulls the model modules in transitively.

Supported targets

All modules build the same Kotlin Multiplatform target set:

Target Notes

JVM

Java toolchain 17

Android

minSdk 24, JVM target 11

iOS

iosX64, iosArm64, iosSimulatorArm64

Linux

linuxX64

macOS

macosArm64

Which module do I need

Goal Dependency

Build a document model only (no output)

markup-document

Build a table model only

markup-table

Build a graph model only (incl. DAG analysis)

markup-graph

Build a grammar model only (no output)

markup-grammar

Write documents or tables as AsciiDoc

markup-asciidoc-writer

Write documents or tables as Markdown (GFM)

markup-markdown-writer

Write graphs as Graphviz DOT

markup-dot-writer

Write grammars as BNF, EBNF or ABNF

markup-bnf-writer

Writer modules pull their model modules in transitively; declaring the writer alone is sufficient:

dependencies {
    implementation("org.markup-poet:markup-asciidoc-writer:0.2.0")
}