diff --git a/core-md/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/markdown/plugins/MarkwonLemmyPlugin.kt b/core-md/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/markdown/plugins/MarkwonLemmyPlugin.kt new file mode 100644 index 000000000..fb56d0d6a --- /dev/null +++ b/core-md/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/markdown/plugins/MarkwonLemmyPlugin.kt @@ -0,0 +1,75 @@ +package com.github.diegoberaldin.raccoonforlemmy.core.markdown.plugins + + +import android.text.Spannable +import android.text.SpannableStringBuilder +import android.text.style.URLSpan +import android.text.util.Linkify +import io.noties.markwon.AbstractMarkwonPlugin +import io.noties.markwon.MarkwonPlugin +import io.noties.markwon.MarkwonVisitor +import io.noties.markwon.SpannableBuilder +import io.noties.markwon.core.CorePlugin +import io.noties.markwon.core.CoreProps +import org.commonmark.node.Link +import java.util.regex.Pattern + + +private const val COMMUNITY_FRAGMENT: String = """[a-zA-Z0-9_]{3,}""" + + +private const val INSTANCE_FRAGMENT: String = + """([a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]\.)+[a-zA-Z]{2,}""" + +private const val USER_FRAGMENT: String = """[a-zA-Z0-9_]{3,}""" + +private val lemmyCommunityPattern: Pattern = + Pattern.compile("(?