从缩进文本树创建 html 列表渲染

Creating an html list rendering from indented text tree

我正在尝试创建一个 html 分页缩进文本。 例如: 文本文件:

1. hello
    - stack
    - overflow
        - how
    - are you

结果会是:

<ol>
<il>hello</li>
<ul>
<li>stack</li> ...

因此它将呈现为缩进列表。 我认为最好创建一个受 a similar problem in Python

答案启发的节点树

这是我从 Go 中的 link 克隆的结构,它没有按预期工作,由于某种原因它卡在了递归中:

func (n *node) addChildren(nodes []node) {
    childLevel := nodes[0].textStart
    for len(nodes) > 0 {
        // pop
        tempNode := nodes[0]
        nodes = nodes[1:]
        if tempNode.textStart == childLevel {
            n.children = append(n.children, tempNode)
        } else if tempNode.textStart > childLevel {
            nodes = append([]node{tempNode}, nodes...)
            n.children[len(n.children)-1].addChildren(nodes)
        } else if tempNode.textStart <= n.textStart {
            nodes = append([]node{tempNode}, nodes...)
            return
        }

    }
}

我找到了Markdown

作为任务的最佳工具!