package Ġio . github . dur un . late ko . target . markdown Ċ Ċ class ĠHeader ( val Ġlevel : ĠInt , Ġval Ġtext : ĠString ?) Ġ: ĠMarkdown Command Ġ{ Ċ ĉ override Ġfun ĠtoString (): ĠString Ġ{ Ċĉ ĉ if Ġ( level Ġ<= Ġ 0 ) Ġthrow ĠIllegalArgumentException (" level Ġmust Ġbe Ġpositive Ġinteger .") Ċĉ ĉ val Ġescaped Text Ġ= Ġtext . or Empty () Ċĉĉĉ ĉ . trim () Ċĉĉĉ ĉ . take If Ġ{ Ġit . isNotEmpty () Ġ} Ġ?: Ġ"" Ċĉ ĉ return Ġ"# ". repeat ( level ) Ġ+ Ġ" Ġ" Ġ+ Ġescaped Text Ġ+ Ġ"\ n " Ċ ĉ } Ċ } Ċ Ċ class ĠAnchor ( private Ġval Ġid : ĠAny ) Ġ: ĠMarkdown Command Ġ{ Ċ ĉ override Ġfun ĠtoString (): ĠString Ġ= Ġ""" < div Ġid ="${ escape Anchor ( id . toString ()) } "></ div > """ ĊĊ ĉ comp anion Ġobject Ġ{ Ċĉ ĉ fun Ġescape Anchor ( id : ĠString ): ĠString Ġ{ Ċĉĉ ĉ return Ġid . toLowerCase (). replace ( Regex ("[ ^ a - z 0 - 9 ] "), Ġ"") Ċĉ ĉ } Ċ ĉ } Ċ } Ċ Ċ class ĠAnchor Link ( val Ġurl : ĠString , Ġval Ġelement : ĠString Ġ= Ġurl ) Ġ: ĠMarkdown Command Ġ{ Ċ ĉ override Ġfun ĠtoString (): ĠString Ġ= Ġ""" < a Ġhref ="# ${ Anchor . escape Anchor ( url )} ">$ element </ a > """ Ċ } Ċ Ċ class ĠLink ( val Ġurl : ĠString , Ġval Ġelement : ĠString Ġ= Ġurl ) Ġ: ĠMarkdown Command Ġ{ Ċ ĉ override Ġfun ĠtoString (): ĠString Ġ= Ġ" [$ element ]( $ url )" Ċ } Ċ Ċ class ĠImage ( val Ġurl : ĠString ) Ġ: ĠMarkdown Command Ġ{ Ċ ĉ override Ġfun ĠtoString (): ĠString Ġ= Ġ" ![]( $ url )" Ċ } Ċ Ċ class ĠB old Text ( val Ġtext : ĠString ) Ġ: ĠMarkdown Command Ġ{ Ċ ĉ override Ġfun ĠtoString (): ĠString Ġ{ Ċĉ ĉ return Ġif Ġ( text . contains ("* ")) Ġ"__ ${ text } __ " Ċĉ ĉ else Ġ"** $ text ** " Ċ ĉ } Ċ } Ċ Ċ class ĠIt alic Text ( val Ġtext : ĠString ) Ġ: ĠMarkdown Command Ġ{ Ċ ĉ override Ġfun ĠtoString (): ĠString Ġ{ Ċĉ ĉ return Ġif Ġ( text . contains ("* ")) Ġ"_ ${ text }_ " Ċĉ ĉ else Ġ"* $ text *" Ċ ĉ } Ċ } Ċ Ċ class ĠB old Italic Text ( val Ġtext : ĠString ) Ġ: ĠMarkdown Command Ġ{ Ċ ĉ override Ġfun ĠtoString (): ĠString Ġ{ Ċĉ ĉ return Ġif Ġ( text . contains ("* ")) Ġ" ___ ${ text } ___ " Ċĉ ĉ else Ġ" *** $ text *** " Ċ ĉ } Ċ } Ċ Ċ class ĠCode Text ( val Ġtext : ĠString ) Ġ: ĠMarkdown Command Ġ{ Ċ ĉ override Ġfun ĠtoString (): ĠString Ġ{ Ċĉ ĉ return Ġ"` $ text `" Ċ ĉ } Ċ }