mirror of
https://github.com/usememos/memos.git
synced 2025-06-05 22:09:59 +02:00
feat: implement nesting lists
This commit is contained in:
@ -77,7 +77,7 @@ func convertFromASTNode(rawNode ast.Node) *v1pb.Node {
|
||||
node.Node = &v1pb.Node_BlockquoteNode{BlockquoteNode: &v1pb.BlockquoteNode{Children: children}}
|
||||
case *ast.List:
|
||||
children := convertFromASTNodes(n.Children)
|
||||
node.Node = &v1pb.Node_ListNode{ListNode: &v1pb.ListNode{Children: children}}
|
||||
node.Node = &v1pb.Node_ListNode{ListNode: &v1pb.ListNode{Kind: convertListKindFromASTNode(n.Kind), Indent: int32(n.Indent), Children: children}}
|
||||
case *ast.OrderedListItem:
|
||||
children := convertFromASTNodes(n.Children)
|
||||
node.Node = &v1pb.Node_OrderedListItemNode{OrderedListItemNode: &v1pb.OrderedListItemNode{Number: n.Number, Indent: int32(n.Indent), Children: children}}
|
||||
@ -156,6 +156,19 @@ func convertTableFromASTNode(node *ast.Table) *v1pb.TableNode {
|
||||
return table
|
||||
}
|
||||
|
||||
func convertListKindFromASTNode(node ast.ListKind) v1pb.ListNode_Kind {
|
||||
switch node {
|
||||
case ast.OrderedList:
|
||||
return v1pb.ListNode_ORDERED
|
||||
case ast.UnorderedList:
|
||||
return v1pb.ListNode_UNORDERED
|
||||
case ast.DescrpitionList:
|
||||
return v1pb.ListNode_DESCRIPTION
|
||||
default:
|
||||
return v1pb.ListNode_KIND_UNSPECIFIED
|
||||
}
|
||||
}
|
||||
|
||||
func convertToASTNode(node *v1pb.Node) ast.Node {
|
||||
switch n := node.Node.(type) {
|
||||
case *v1pb.Node_LineBreakNode:
|
||||
@ -175,7 +188,7 @@ func convertToASTNode(node *v1pb.Node) ast.Node {
|
||||
return &ast.Blockquote{Children: children}
|
||||
case *v1pb.Node_ListNode:
|
||||
children := convertToASTNodes(n.ListNode.Children)
|
||||
return &ast.List{Children: children}
|
||||
return &ast.List{Kind: convertListKindToASTNode(n.ListNode.Kind), Indent: int(n.ListNode.Indent), Children: children}
|
||||
case *v1pb.Node_OrderedListItemNode:
|
||||
children := convertToASTNodes(n.OrderedListItemNode.Children)
|
||||
return &ast.OrderedListItem{Number: n.OrderedListItemNode.Number, Indent: int(n.OrderedListItemNode.Indent), Children: children}
|
||||
@ -252,3 +265,17 @@ func convertTableToASTNode(node *v1pb.TableNode) *ast.Table {
|
||||
}
|
||||
return table
|
||||
}
|
||||
|
||||
func convertListKindToASTNode(kind v1pb.ListNode_Kind) ast.ListKind {
|
||||
switch kind {
|
||||
case v1pb.ListNode_ORDERED:
|
||||
return ast.OrderedList
|
||||
case v1pb.ListNode_UNORDERED:
|
||||
return ast.UnorderedList
|
||||
case v1pb.ListNode_DESCRIPTION:
|
||||
return ast.DescrpitionList
|
||||
default:
|
||||
// Default to description list.
|
||||
return ast.DescrpitionList
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user