mirror of https://github.com/usememos/memos
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
615 B
Go
28 lines
615 B
Go
package v2
|
|
|
|
import (
|
|
"github.com/yourselfhosted/gomark/ast"
|
|
)
|
|
|
|
func traverseASTNodes(nodes []ast.Node, fn func(ast.Node)) {
|
|
for _, node := range nodes {
|
|
fn(node)
|
|
switch n := node.(type) {
|
|
case *ast.Paragraph:
|
|
traverseASTNodes(n.Children, fn)
|
|
case *ast.Heading:
|
|
traverseASTNodes(n.Children, fn)
|
|
case *ast.Blockquote:
|
|
traverseASTNodes(n.Children, fn)
|
|
case *ast.OrderedList:
|
|
traverseASTNodes(n.Children, fn)
|
|
case *ast.UnorderedList:
|
|
traverseASTNodes(n.Children, fn)
|
|
case *ast.TaskList:
|
|
traverseASTNodes(n.Children, fn)
|
|
case *ast.Bold:
|
|
traverseASTNodes(n.Children, fn)
|
|
}
|
|
}
|
|
}
|