@@ -68,7 +68,7 @@ func (r *ConfluenceRenderer) RegisterFuncs(reg renderer.NodeRendererFuncRegister
6868 // reg.Register(ast.KindHeading, r.renderNode)
6969 reg .Register (ast .KindBlockquote , r .renderBlockQuote )
7070 reg .Register (ast .KindCodeBlock , r .renderCodeBlock )
71- reg .Register (ast .KindFencedCodeBlock , r .renderCodeBlock )
71+ reg .Register (ast .KindFencedCodeBlock , r .renderFencedCodeBlock )
7272 // reg.Register(ast.KindHTMLBlock, r.renderNode)
7373 // reg.Register(ast.KindList, r.renderNode)
7474 // reg.Register(ast.KindListItem, r.renderNode)
@@ -307,9 +307,8 @@ func (r *ConfluenceRenderer) goldmarkRenderLink(w util.BufWriter, source []byte,
307307 return ast .WalkContinue , nil
308308}
309309
310- // renderCodeBlock renders a (Fenced)CodeBlock
311- func (r * ConfluenceRenderer ) renderCodeBlock (writer util.BufWriter , source []byte , node ast.Node , entering bool ) (ast.WalkStatus , error ) {
312-
310+ // renderFencedCodeBlock renders a FencedCodeBlock
311+ func (r * ConfluenceRenderer ) renderFencedCodeBlock (writer util.BufWriter , source []byte , node ast.Node , entering bool ) (ast.WalkStatus , error ) {
313312 if ! entering {
314313 return ast .WalkContinue , nil
315314 }
@@ -384,6 +383,53 @@ func (r *ConfluenceRenderer) renderCodeBlock(writer util.BufWriter, source []byt
384383 return ast .WalkContinue , nil
385384}
386385
386+ // renderCodeBlock renders a CodeBlock
387+ func (r * ConfluenceRenderer ) renderCodeBlock (writer util.BufWriter , source []byte , node ast.Node , entering bool ) (ast.WalkStatus , error ) {
388+ if ! entering {
389+ return ast .WalkContinue , nil
390+ }
391+ linenumbers := false
392+ firstline := 0
393+ theme := ""
394+ collapse := false
395+ lang := ""
396+ title := ""
397+
398+ var lval []byte
399+
400+ lines := node .Lines ().Len ()
401+ for i := 0 ; i < lines ; i ++ {
402+ line := node .Lines ().At (i )
403+ lval = append (lval , line .Value (source )... )
404+ }
405+ err := r .Stdlib .Templates .ExecuteTemplate (
406+ writer ,
407+ "ac:code" ,
408+ struct {
409+ Language string
410+ Collapse bool
411+ Title string
412+ Theme string
413+ Linenumbers bool
414+ Firstline int
415+ Text string
416+ }{
417+ lang ,
418+ collapse ,
419+ title ,
420+ theme ,
421+ linenumbers ,
422+ firstline ,
423+ strings .TrimSuffix (string (lval ), "\n " ),
424+ },
425+ )
426+ if err != nil {
427+ return ast .WalkStop , err
428+ }
429+
430+ return ast .WalkContinue , nil
431+ }
432+
387433// compileMarkdown will replace tags like <ac:rich-tech-body> with escaped
388434// equivalent, because goldmark markdown parser replaces that tags with
389435// <a href="ac:rich-text-body">ac:rich-text-body</a> because of the autolink
0 commit comments