package Ġorg . jetbrains . dok ka . base . render ers . html Ċ Ċ import Ġkotlinx . html .* Ċ import Ġkotlinx . html . stream . create HTML Ċ import Ġorg . jetbrains . dok ka . base . render ers . html . command . consum ers . Immediate Resolution Tag Consumer Ċ import Ġorg . jetbrains . dok ka . base . temp lating . Command Ċ import Ġorg . jetbrains . dok ka . base . temp lating . toJson String Ċ Ċ type alias ĠTemplate Block Ġ= ĠTemplate Command . () Ġ-> ĠUnit Ċ Ċ @ Html Tag Marker Ċ fun ĠFlow Or Ph r asing Content . w br ( classes : ĠString ? Ġ= Ġnull , Ġblock : ĠW BR . () Ġ-> ĠUnit Ġ= Ġ{} ): ĠUnit Ġ= ĊĠĠĠ ĠW BR ( attributes Map Of (" class ", Ġclasses ), Ġconsumer ). visit ( block ) Ċ Ċ @ Suppress (" unused ") Ċ open Ġclass ĠW BR ( initial Attributes : ĠMap < String , ĠString >, Ġconsumer : ĠTag Consumer <* >) Ġ: ĊĠĠĠ ĠHTML Tag (" w br ", Ġconsumer , Ġinitial Attributes , Ġnamespace Ġ= Ġnull , Ġinline Tag Ġ= Ġtrue , Ġempty Tag Ġ= Ġfalse ), ĊĠĠĠ ĠHtml Block Inline Tag Ċ Ċ /** Ċ Ġ* ĠWork - around Ġuntil Ġnext Ġversion Ġof Ġkotlinx . html Ġdoesn 't Ġcome Ġout Ċ Ġ*/ Ċ @ Html Tag Marker Ċ inline Ġfun ĠFlow Or Ph r asing Content . strike ( classes Ġ: ĠString ? Ġ= Ġnull , Ġcross inline Ġblock Ġ: ĠSTR I KE . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ: ĠUnit Ġ= ĠSTR I KE ( attributes Map Of (" class ", Ġclasses ), Ġconsumer ). visit ( block ) Ċ Ċ open Ġclass ĠSTR I KE ( initial Attributes : ĠMap < String , ĠString >, Ġoverride Ġval Ġconsumer : ĠTag Consumer <* >) Ġ: ĊĠĠĠ ĠHTML Tag (" strike ", Ġconsumer , Ġinitial Attributes , Ġnull , Ġfalse , Ġfalse ), ĠHtml Block Inline Tag Ċ Ċ const Ġval ĠTEMPLATE _ COMMAND _ SEPARATOR Ġ= Ġ":" Ċ const Ġval ĠTEMPLATE _ COMMAND _ BEGIN _ BORDER Ġ Ġ= Ġ"[ + ] cmd " Ċ const Ġval ĠTEMPLATE _ COMMAND _ END _ BORDER Ġ Ġ= Ġ" [- ] cmd " Ċ Ċ fun ĠFlow Or MetaData Content . template Command As Html Comment ( data : ĠCommand , Ġblock : ĠFlow Or MetaData Content . () Ġ-> ĠUnit Ġ= Ġ{} ): ĠUnit Ġ= ĊĠĠĠ Ġ( consumer Ġas ? ĠIm mediate Resolution Tag Consumer )?. process Command ( data , Ġblock ) ĊĠĠĠĠĠĠĠ Ġ?: Ġ Ġlet { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomment ( Ġ"$ TEMPLATE _ COMMAND _ BEGIN _ BORDER $ TEMPLATE _ COMMAND _ SEPARATOR ${ toJson String ( data )} ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomment ( TEMPLATE _ COMMAND _ END _ BORDER ) ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ fun Ġ< T : ĠAppend able > ĠT . template Command As Html Comment ( command : ĠCommand , Ġaction : ĠT . () Ġ-> ĠUnit Ġ) Ġ{ ĊĠĠĠ Ġappend (" <!-- $ TEMPLATE _ COMMAND _ BEGIN _ BORDER $ TEMPLATE _ COMMAND _ SEPARATOR ${ toJson String ( command )} --> ") ĊĠĠĠ Ġaction () ĊĠĠĠ Ġappend (" <!-- $ TEMPLATE _ COMMAND _ END _ BORDER --> ") Ċ } Ċ Ċ fun ĠFlow Or MetaData Content . template Command ( data : ĠCommand , Ġblock : ĠTemplate Block Ġ= Ġ{} ): ĠUnit Ġ= ĊĠĠĠ Ġ( consumer Ġas ? ĠIm mediate Resolution Tag Consumer )?. process Command ( data , Ġblock ) ĊĠĠĠĠĠĠĠ Ġ?: ĠTemplate Command ( attributes Map Of (" data ", ĠtoJson String ( data )), Ġconsumer ). visit ( block ) Ċ Ċ fun Ġ< T > ĠTag Consumer < T >. template Command ( data : ĠCommand , Ġblock : ĠTemplate Block Ġ= Ġ{} ): ĠT Ġ= ĊĠĠĠ Ġ( this Ġas ? ĠIm mediate Resolution Tag Consumer )?. process Command And Finalize ( data , Ġblock ) ĊĠĠĠĠĠĠĠ Ġ?: ĠTemplate Command ( attributes Map Of (" data ", ĠtoJson String ( data )), Ġthis ). visit And Finalize ( this , Ġblock ) Ċ Ċ fun Ġtemplate Command For ( data : ĠCommand , Ġconsumer : ĠTag Consumer <* >) Ġ= ĊĠĠĠ ĠTemplate Command ( attributes Map Of (" data ", ĠtoJson String ( data )), Ġconsumer ) Ċ Ċ class ĠTemplate Command ( initial Attributes : ĠMap < String , ĠString >, Ġconsumer : ĠTag Consumer <* >) Ġ: ĊĠĠĠ ĠHTML Tag ( ĊĠĠĠĠĠĠĠ Ġ" dok ka - template - command ", ĊĠĠĠĠĠĠĠ Ġconsumer , ĊĠĠĠĠĠĠĠ Ġinitial Attributes , ĊĠĠĠĠĠĠĠ Ġnamespace Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġinline Tag Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġempty Tag Ġ= Ġfalse ĊĠĠĠ Ġ), ĊĠĠĠ ĠCommon Attribute Group Facade Flow Interactive Ph r asing Content Ċ Ċ // ĠThis Ġhack Ġis Ġout r age ous . ĠI Ġh ate Ġit Ġbut ĠI Ġcannot Ġfind Ġany Ġother Ġway Ġaround Ġ` kotlin x . html ` Ġtype Ġsystem . Ċ fun ĠTemplate Block . build As Inner Html (): ĠString Ġ= Ġcreate HTML ( pretty Print Ġ= Ġfalse ). run Ġ{ ĊĠĠĠ ĠTemplate Command ( empty Map , Ġthis ). visit And Finalize ( this , Ġthis @ build As Inner Html ). substring After ("> "). substring Before Last ("< ") Ċ } Ċ