package Ġio . github . cot ton mc . function api . util . documentation Ċ Ċ import Ġjava . io . PrintWriter Ċ import Ġjava . io . String Writer Ċ import Ġjava . io . Writer Ċ Ċ /** Ċ Ġ* ĠHelper Ġto Ġprint Ġmarkdown Ġtext . ĠUsed Ġfor Ġdocumentation ! Ċ Ġ* Ċ Ġ*/ ĊĊ Ċ class ĠMarkdown Printer ( private Ġval Ġwriter : ĠWriter ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġseparator Ġ= ĠSystem . line Separator () ĊĊĊĠĠĠ Ġprivate Ġfun ĠWriter . print ( value : ĠStringBuilder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . print ( value . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠWriter . println () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . print ("$ separator $ separator ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠWriter . println ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . print ( value Ġ+ Ġseparator ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠWriter . print ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . write ( value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġheader 1 ( text : ĠString ): ĠMarkdown Printer Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Header ( text , Ġ"- ") ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġheader 2 ( text : ĠString ): ĠMarkdown Printer Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Header ( text , Ġ"=" ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparagraph ( text : ĠString ): ĠMarkdown Printer Ġ{ ĊĠĠĠĠĠĠĠ Ġwriter . write ("$ separator $ text $ separator ") ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbold ( text : ĠString ): ĠMarkdown Printer Ġ{ ĊĠĠĠĠĠĠĠ Ġformat Text ( text , Ġ"** ") ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġit al ics ( text : ĠString ): ĠMarkdown Printer Ġ{ ĊĠĠĠĠĠĠĠ Ġformat Text ( text , Ġ"* ") ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbold It al ics ( text : ĠString ): ĠMarkdown Printer Ġ{ ĊĠĠĠĠĠĠĠ Ġformat Text ( text , Ġ" *** ") ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcode ( text : ĠString ): ĠMarkdown Printer Ġ{ ĊĠĠĠĠĠĠĠ Ġformat Text ( text , Ġ"` ") ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbr (): ĠMarkdown Printer Ġ{ ĊĠĠĠĠĠĠĠ Ġwriter . println () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġorder edList ( text : ĠList < String >): ĠMarkdown Printer Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor Ġ( s Ġin Ġtext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmarker Ġ= Ġ"$ index . Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġspace Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. marker . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspace Ġ+= Ġ" Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfirst Ġ= Ġtrue ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( split Ġin Ġs . split ("\ n ")) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( first ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . println ("$ marker $ s ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . println ("$ space $ s ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġun Order edList ( text : ĠList < String >): ĠMarkdown Printer Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( s Ġin Ġtext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmarker Ġ= Ġ" Ġ- Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġspace Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. marker . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspace Ġ+= Ġ" Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfirst Ġ= Ġtrue ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( split Ġin Ġs . split ("\ n ")) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( first ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . println ("$ marker $ s ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . println ("$ space $ s ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtable ( data With Header : ĠList < List < String >> ): ĠMarkdown Printer Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġheader Ġ= Ġdata With Header [ 0 ] ĊĠĠĠĠĠĠĠ Ġ/* Ġ Ġ| ĠSyntax ĠĠĠ Ġ| ĠDescription Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ---------- | Ġ----------- Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠHeader ĠĠĠ Ġ| ĠTitle ĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠParagraph Ġ| ĠText ĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġwriter . print ("| ") ĊĠĠĠĠĠĠĠ Ġfor Ġ( s Ġin Ġheader ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . print ("$ s | ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwriter . println () ĊĠĠĠĠĠĠĠ Ġwriter . print ("| ") ĊĠĠĠĠĠĠĠ Ġfor Ġ( s Ġin Ġheader ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlength Ġ= Ġs . length ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . print ("- ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . print ("| ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwriter . println () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 Ġuntil Ġdata With Header . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġdata With Header [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . print ("| ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( s Ġin Ġdata ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . print ("$ s | ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . println () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġformat Text ( text : ĠString , Ġformat : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwriter . print ( format Ġ+ Ġtext Ġ+ Ġformat ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Header ( text : ĠString , Ġmarker : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlength Ġ= Ġtext . length ĊĠĠĠĠĠĠĠ Ġval Ġheader Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader . append ( marker ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbr () ĊĠĠĠĠĠĠĠ Ġwriter . println ( text ) ĊĠĠĠĠĠĠĠ Ġwriter . println ( header . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfinish () Ġ{ ĊĠĠĠĠĠĠĠ Ġwriter . flush () ĊĠĠĠ Ġ} Ċ }