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 } func get_child_indices(header_index int, headings []heading) []int { var children []int parent_level := get_heading_level(headings[header_index].text) if header_index >= (len(headings) - 1) { return nil } 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 }