2024-05-05 16:38:35 +02:00
|
|
|
package main
|
|
|
|
|
|
|
|
func get_children(header_index int, headings []heading) []heading {
|
|
|
|
var children []heading
|
|
|
|
|
|
|
|
parent_level := get_heading_level(headings[header_index].text)
|
|
|
|
|
|
|
|
next_level := get_heading_level(headings[header_index+1].text)
|
|
|
|
|
|
|
|
child_level := 0
|
|
|
|
|
|
|
|
if next_level <= parent_level {
|
|
|
|
return nil
|
|
|
|
} else {
|
|
|
|
child_level = next_level
|
|
|
|
}
|
|
|
|
|
|
|
|
cur_level := 0
|
|
|
|
|
|
|
|
for i := (header_index + 1); i < len(headings); i++ {
|
|
|
|
cur_level = get_heading_level(headings[i].text)
|
|
|
|
|
|
|
|
if cur_level == child_level {
|
|
|
|
children = append(children, headings[i])
|
|
|
|
}
|
|
|
|
|
|
|
|
if cur_level < child_level {
|
|
|
|
break
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return children
|
|
|
|
}
|
2024-05-05 19:54:43 +02:00
|
|
|
|
|
|
|
func get_child_indices(header_index int, headings []heading) []int {
|
|
|
|
var children []int
|
|
|
|
|
|
|
|
parent_level := get_heading_level(headings[header_index].text)
|
|
|
|
|
|
|
|
next_level := get_heading_level(headings[header_index+1].text)
|
|
|
|
|
|
|
|
child_level := 0
|
|
|
|
|
|
|
|
if next_level <= parent_level {
|
|
|
|
return nil
|
|
|
|
} else {
|
|
|
|
child_level = next_level
|
|
|
|
}
|
|
|
|
cur_level := 0
|
|
|
|
|
|
|
|
for i := (header_index + 1); i < len(headings); i++ {
|
|
|
|
cur_level = get_heading_level(headings[i].text)
|
|
|
|
|
|
|
|
if cur_level == child_level {
|
|
|
|
children = append(children, i)
|
|
|
|
}
|
|
|
|
|
|
|
|
if cur_level < child_level {
|
|
|
|
break
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return children
|
|
|
|
}
|