Skip to content

Commit

Permalink
✨ 支持 ==mark== 高亮语法 #84
Browse files Browse the repository at this point in the history
  • Loading branch information
88250 committed Aug 17, 2020
1 parent 5fe83d4 commit f744e4a
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 12 deletions.
33 changes: 22 additions & 11 deletions render/html_renderer.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,29 +114,40 @@ func NewHtmlRenderer(tree *parse.Tree) *HtmlRenderer {
ret.RendererFuncs[ast.NodeBlockRefID] = ret.renderBlockRefID
ret.RendererFuncs[ast.NodeBlockRefSpace] = ret.renderBlockRefSpace
ret.RendererFuncs[ast.NodeBlockRefText] = ret.renderBlockRefText
ret.RendererFuncs[ast.NodeMark] = ret.renderMark
ret.RendererFuncs[ast.NodeMarkOpenMarker] = ret.renderMarkOpenMarker
ret.RendererFuncs[ast.NodeMarkCloseMarker] = ret.renderMarkCloseMarker
return ret
}

func (r *HtmlRenderer) renderMark(node *ast.Node, entering bool) ast.WalkStatus {
if entering {
r.TextAutoSpacePrevious(node)
} else {
r.TextAutoSpaceNext(node)
}
return ast.WalkContinue
}

func (r *HtmlRenderer) renderMarkOpenMarker(node *ast.Node, entering bool) ast.WalkStatus {
r.tag("mark", nil, false)
return ast.WalkStop
}

func (r *HtmlRenderer) renderMarkCloseMarker(node *ast.Node, entering bool) ast.WalkStatus {
r.tag("/mark", nil, false)
return ast.WalkStop
}

func (r *HtmlRenderer) renderBlockRef(node *ast.Node, entering bool) ast.WalkStatus {
//if entering {
// r.WriteString("((")
//} else {
// r.WriteString("))")
//}
return ast.WalkContinue
}

func (r *HtmlRenderer) renderBlockRefID(node *ast.Node, entering bool) ast.WalkStatus {
//if entering {
// r.Write(node.Tokens)
//}
return ast.WalkContinue
}

func (r *HtmlRenderer) renderBlockRefSpace(node *ast.Node, entering bool) ast.WalkStatus {
//if entering {
// r.WriteByte(lex.ItemSpace)
//}
return ast.WalkContinue
}

Expand Down
5 changes: 4 additions & 1 deletion test/mark_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@ import (

var markTests = []parseTest{

{"0", "==foo==\n", "<h2 id=\"foo\">foo</h2>\n"},
{"3", "==**foo==**\n", "<p><mark>**foo</mark>**</p>\n"},
{"2", "**==foo==**\n", "<p><strong><mark>foo</mark></strong></p>\n"},
{"1", "==**foo**==\n", "<p><mark><strong>foo</strong></mark></p>\n"},
{"0", "==foo==\n", "<p><mark>foo</mark></p>\n"},
}

func TestMark(t *testing.T) {
Expand Down

0 comments on commit f744e4a

Please sign in to comment.