mirror of
https://github.com/usememos/memos.git
synced 2025-06-05 22:09:59 +02:00
chore: implement task list parser
This commit is contained in:
@ -43,6 +43,8 @@ func (r *HTMLRenderer) RenderNode(node ast.Node) {
|
||||
r.renderUnorderedList(n)
|
||||
case *ast.OrderedList:
|
||||
r.renderOrderedList(n)
|
||||
case *ast.TaskList:
|
||||
r.renderTaskList(n)
|
||||
case *ast.Bold:
|
||||
r.renderBold(n)
|
||||
case *ast.Italic:
|
||||
@ -119,6 +121,24 @@ func (r *HTMLRenderer) renderBlockquote(node *ast.Blockquote) {
|
||||
}
|
||||
}
|
||||
|
||||
func (r *HTMLRenderer) renderTaskList(node *ast.TaskList) {
|
||||
prevSibling, nextSibling := node.PrevSibling(), node.NextSibling()
|
||||
if prevSibling == nil || prevSibling.Type() != ast.TaskListNode {
|
||||
r.output.WriteString("<ul>")
|
||||
}
|
||||
r.output.WriteString("<li>")
|
||||
r.output.WriteString("<input type=\"checkbox\"")
|
||||
if node.Complete {
|
||||
r.output.WriteString(" checked")
|
||||
}
|
||||
r.output.WriteString(" disabled>")
|
||||
r.RenderNodes(node.Children)
|
||||
r.output.WriteString("</li>")
|
||||
if nextSibling == nil || nextSibling.Type() != ast.TaskListNode {
|
||||
r.output.WriteString("</ul>")
|
||||
}
|
||||
}
|
||||
|
||||
func (r *HTMLRenderer) renderUnorderedList(node *ast.UnorderedList) {
|
||||
prevSibling, nextSibling := node.PrevSibling(), node.NextSibling()
|
||||
if prevSibling == nil || prevSibling.Type() != ast.UnorderedListNode {
|
||||
|
Reference in New Issue
Block a user