// ĠCopyright Ġ 2 0 0 0 - 2 0 2 0 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ package Ġorg . intellij . plugins . markdown . ui . preview . html Ċ Ċ import Ġorg . intellij . markdown . Markdown Token Types Ċ import Ġorg . intellij . markdown . ast . AST Node Ċ import Ġorg . intellij . markdown . ast . Leaf AST Node Ċ import Ġorg . intellij . markdown . ast . accept Ċ import Ġorg . intellij . markdown . ast . getText In Node Ċ import Ġorg . intellij . markdown . html . Html Generator Ċ import Ġorg . intellij . markdown . html . Tri mm ing Inline Holder Provider Ċ Ċ internal Ġclass ĠParagraph Generating Provider Ġ: ĠTri mm ing Inline Holder Provider () Ġ{ ĊĠ Ġoverride Ġfun Ġopen Tag ( visitor : ĠHtml Generator . Html Generating Visitor , Ġtext : ĠString , Ġnode : ĠAST Node ) Ġ{ ĊĠĠĠ Ġvisitor . consume Tag Open ( node , Ġ" p ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġclose Tag ( visitor : ĠHtml Generator . Html Generating Visitor , Ġtext : ĠString , Ġnode : ĠAST Node ) Ġ{ ĊĠĠĠ Ġvisitor . consume Tag Close (" p ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġprocess Node ( visitor : ĠHtml Generator . Html Generating Visitor , Ġtext : ĠString , Ġnode : ĠAST Node ) Ġ{ ĊĠĠĠ Ġopen Tag ( visitor , Ġtext , Ġnode ) ĊĠĠĠ Ġfor Ġ( child Ġin Ġchildren To Render ( node )) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( child Ġis ĠLeaf AST Node ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( child . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠMarkdown Token Types . TEXT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġleft Ġ= Ġchild . start Offset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( line Ġin Ġchild . getText In Node ( text ). split ("\ n ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġright Ġ= Ġleft Ġ+ Ġline . length ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisitor . consume Html ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"< span Ġ${ Html Generator . SRC _ ATTRIBUTE _ NAME } ='$ left .. $ right '> ${ Markdown Code Fence Generating Provider . escape ( line )}</ span >" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Ġ+= Ġright Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġvisitor . visit Leaf ( child ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġchild . accept ( visitor ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġclose Tag ( visitor , Ġtext , Ġnode ) ĊĠ Ġ} Ċ } Ċ