Commonmark-Kotlin
English Version | 中文版本

一个用于解析 CommonMark Markdown 语法的 Kotlin
多平台库,基于原始的 commonmark-java 项目改编,
将 Java 文件全部转为 Kotlin 文件。
该库旨在让 commonmark-java 能用于 Kotlin 多平台,提供 CommonMark Markdown 语法的解析和渲染功能。
特性
- 🚀 Kotlin 多平台:支持 Android、iOS 和 JVM 平台
- 📝 兼容 CommonMark:完全支持 CommonMark 规范
- 🔧 可扩展:支持多种扩展
- 🎯 类型安全:完全用 Kotlin 编写,具备类型安全
支持平台
- Android - 安卓应用
- iOS - 苹果应用
- JVM - Java 虚拟机(桌面应用、服务器)
扩展
该库包含多个实用扩展:
安装
Gradle (Kotlin DSL)
将以下内容添加到 settings.gradle.kts:
pluginManagement {
repositories {
mavenCentral()
}
}
然后,在你的 build.gradle.kts 中添加依赖:
Android
dependencies {
implementation("io.github.darriousliu:commonmark:0.26.0")
implementation("io.github.darriousliu:commonmark-ext-autolink:0.26.0")
implementation("io.github.darriousliu:commonmark-ext-footnotes:0.26.0")
implementation("io.github.darriousliu:commonmark-ext-gfm-strikethrough:0.26.0")
implementation("io.github.darriousliu:commonmark-ext-gfm-tables:0.26.0")
implementation("io.github.darriousliu:commonmark-ext-heading-anchor:0.26.0")
implementation("io.github.darriousliu:commonmark-ext-image-attributes:0.26.0")
implementation("io.github.darriousliu:commonmark-ext-ins:0.26.0")
implementation()
implementation()
}
Kotlin 多平台:
kotlin {
sourceSets {
commonMain.dependencies {
implementation("io.github.darriousliu:commonmark:0.26.0")
implementation("io.github.darriousliu:commonmark-ext-autolink:0.26.0")
implementation("io.github.darriousliu:commonmark-ext-footnotes:0.26.0")
implementation("io.github.darriousliu:commonmark-ext-gfm-strikethrough:0.26.0")
implementation("io.github.darriousliu:commonmark-ext-gfm-tables:0.26.0")
implementation("io.github.darriousliu:commonmark-ext-heading-anchor:0.26.0")
implementation()
implementation()
implementation()
implementation()
}
}
}
使用
基本用法
val parser = Parser.builder().build()
val document = parser.parse("This is _Sparta_")
val renderer = HtmlRenderer.builder().build()
val html = renderer.render(document)
使用扩展
val extensions = listOf(TablesExtension.create())
val parser = Parser.builder()
.extensions(extensions)
.build()
val renderer = HtmlRenderer.builder()
.extensions(extensions)
.build()
val markdown = """
| Feature | Support |
|---------|---------|
| Tables | ✅ |
| Kotlin | ✅ |
"""
val document = parser.parse(markdown)
val html = renderer.render(document)
示例
可参考 commonmark-java 项目的示例