mirror of
https://github.com/kovetskiy/mark.git
synced 2025-04-24 05:42:40 +08:00
Adding comments, removing stray imports
This commit is contained in:
parent
20c65ca373
commit
f0d7bfdb75
@ -3,19 +3,26 @@ package renderer
|
|||||||
import (
|
import (
|
||||||
"unicode/utf8"
|
"unicode/utf8"
|
||||||
|
|
||||||
//"github.com/kovetskiy/mark/pkg/mark/stdlib"
|
|
||||||
"github.com/yuin/goldmark/ast"
|
"github.com/yuin/goldmark/ast"
|
||||||
"github.com/yuin/goldmark/renderer"
|
"github.com/yuin/goldmark/renderer"
|
||||||
"github.com/yuin/goldmark/renderer/html"
|
"github.com/yuin/goldmark/renderer/html"
|
||||||
"github.com/yuin/goldmark/util"
|
"github.com/yuin/goldmark/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// ConfluenceTextRenderer slightly alters the default goldmark behavior for
|
||||||
|
// inline text block. It allows for soft breaks
|
||||||
|
// (c.f. https://spec.commonmark.org/0.30/#softbreak)
|
||||||
|
// to be rendered into HTML as either '\n' (the goldmark default)
|
||||||
|
// or as ' '.
|
||||||
|
// This latter option is useful for Confluence,
|
||||||
|
// which inserts <br> tags into uploaded HTML where it sees '\n'.
|
||||||
|
// See also https://sembr.org/ for partial motivation.
|
||||||
type ConfluenceTextRenderer struct {
|
type ConfluenceTextRenderer struct {
|
||||||
html.Config
|
html.Config
|
||||||
softBreak rune
|
softBreak rune
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewConfluenceRenderer creates a new instance of the ConfluenceRenderer
|
// NewConfluenceTextRenderer creates a new instance of the ConfluenceTextRenderer
|
||||||
func NewConfluenceTextRenderer(stripNL bool, opts ...html.Option) renderer.NodeRenderer {
|
func NewConfluenceTextRenderer(stripNL bool, opts ...html.Option) renderer.NodeRenderer {
|
||||||
sb := '\n'
|
sb := '\n'
|
||||||
if stripNL {
|
if stripNL {
|
||||||
@ -32,6 +39,8 @@ func (r *ConfluenceTextRenderer) RegisterFuncs(reg renderer.NodeRendererFuncRegi
|
|||||||
reg.Register(ast.KindText, r.renderText)
|
reg.Register(ast.KindText, r.renderText)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This is taken from https://github.com/yuin/goldmark/blob/v1.5.6/renderer/html/html.go#L648
|
||||||
|
// with the hardcoded '\n' for soft breaks swapped for the configurable r.softBreak
|
||||||
func (r *ConfluenceTextRenderer) renderText(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) {
|
func (r *ConfluenceTextRenderer) renderText(w util.BufWriter, source []byte, node ast.Node, entering bool) (ast.WalkStatus, error) {
|
||||||
if !entering {
|
if !entering {
|
||||||
return ast.WalkContinue, nil
|
return ast.WalkContinue, nil
|
||||||
|
Loading…
x
Reference in New Issue
Block a user