从缩进文本树创建 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
作为任务的最佳工具!
我正在尝试创建一个 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
作为任务的最佳工具!