{"id":13610798,"url":"https://github.com/mfwgenerics/markout","last_synced_at":"2025-10-26T07:32:16.329Z","repository":{"id":65361688,"uuid":"584628939","full_name":"mfwgenerics/markout","owner":"mfwgenerics","description":"Kotlin DSL for Markdown and file trees","archived":false,"fork":false,"pushed_at":"2023-07-10T11:45:57.000Z","size":415,"stargazers_count":21,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-07T17:45:33.515Z","etag":null,"topics":["documentation-tool","kotlin-dsl","kotlin-jvm","literate-programming","markdown"],"latest_commit_sha":null,"homepage":"https://mfwgenerics.github.io/markout/","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mfwgenerics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-03T05:14:35.000Z","updated_at":"2024-06-16T09:02:40.000Z","dependencies_parsed_at":"2024-08-01T19:44:33.014Z","dependency_job_id":"12f24582-4841-4b06-8d51-4462431e1980","html_url":"https://github.com/mfwgenerics/markout","commit_stats":{"total_commits":75,"total_committers":1,"mean_commits":75.0,"dds":0.0,"last_synced_commit":"5e2c1d8979c5ce96e98a9ec470664b8af62c39cc"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfwgenerics%2Fmarkout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfwgenerics%2Fmarkout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfwgenerics%2Fmarkout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfwgenerics%2Fmarkout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mfwgenerics","download_url":"https://codeload.github.com/mfwgenerics/markout/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238288364,"owners_count":19447391,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["documentation-tool","kotlin-dsl","kotlin-jvm","literate-programming","markdown"],"created_at":"2024-08-01T19:01:48.085Z","updated_at":"2025-10-26T07:32:15.863Z","avatar_url":"https://github.com/mfwgenerics.png","language":"Kotlin","readme":"# Markout: Markdown DSL and File Generator\n\nMarkout is a library for generating files, directories and Markdown documentation from Kotlin.\nIt is designed for generating GitHub Flavored Markdown docs that live alongside code.\nUsing [Kapshot](https://github.com/mfwgenerics/kapshot) with this project\nallows literate programming and \"executable documentation\" which ensures\nthat documentation remains correct and up to date.\n\n1. [Intro](#intro)\n2. [Getting Started](#getting-started)\n3. [Usage](#usage)\n\n## Intro\n\nMarkout provides a fully featured Markdown DSL to support documentation\ngeneration and automation. It is flexible, mixes easily with raw markdown and\nis intended to be built upon and used in conjunction with other tools.\nThe Markdown DSL can build strings or output directly to a file.\n\nIn addition to the Markdown DSL, Markout provides tools for managing\ngenerated files and directories. Files and directories can be declared using\na DSL and then validated or synchronized. Snapshot testing can be performed on\ngenerated files.\n\n## Getting Started\n\nAdd the `markout` dependency\n\n```kotlin\n/* build.gradle.kts */\ndependencies {\n    implementation(\"io.koalaql:markout:0.0.9\")\n}\n```\n\n#### File Generation\n\nIf you want to use Markout as a documentation generator, call\nthe `markout` function directly from your main method. Pass a path\nto the directory where you want Markout to generate files.\nThe path can be relative or absolute.\n\n```kotlin\nfun main() = markout(Path(\".\")) {\n    markdown(\"hello\") {\n        p(\"This file was generated using markout\")\n\n        p {\n            i(\"Hello \") + \"World!\"\n        }\n    }\n}\n```\n\nCurrently the Gradle application plugin is the best way to run a standalone Markout project\n\n```shell\n./gradlew :my-project:run\n```\n\n#### Markdown Strings\n\nIf you only want to use Markout to generate Markdown strings then you can use\n`markdown` as a standalone function\n\n```kotlin\nmarkdown {\n    h1(\"My Markdown\")\n\n    -\"Text with some *italics*.\"\n}\n```\n\nThe above will produce the String\n\n```markdown\n# My Markdown\n\nText with some *italics*.\n```\n\n## Usage\n\n1. [File Generation](docs/FILES.md)\n2. [Markdown](docs/MARKDOWN.md)\n","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmfwgenerics%2Fmarkout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmfwgenerics%2Fmarkout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmfwgenerics%2Fmarkout/lists"}