Merge pull request #4569 from piotrkwiecinski/uucore_help_section

uucore: fix help section doesn't render 3+ level headers
This commit is contained in:
Daniel Hofstetter 2023-03-23 08:03:00 +01:00 committed by GitHub
commit 57541db124
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -170,11 +170,14 @@ fn parse_help_section(section: &str, content: &str) -> String {
)
}
// Prefix includes space to allow processing of section with level 3-6 headers
let section_header_prefix = "## ";
content
.lines()
.skip_while(|&l| !is_section_header(l, section))
.skip(1)
.take_while(|l| !l.starts_with("##"))
.take_while(|l| !l.starts_with(section_header_prefix))
.collect::<Vec<_>>()
.join("\n")
.trim()
@ -252,6 +255,31 @@ mod tests {
);
}
#[test]
fn section_parsing_with_additional_headers() {
let input = "\
# ls\n\
## after section\n\
This is some section\n\
\n\
### level 3 header\n\
\n\
Additional text under the section.\n\
\n\
#### level 4 header\n\
\n\
Yet another paragraph\n";
assert_eq!(
parse_help_section("after section", input),
"This is some section\n\n\
### level 3 header\n\n\
Additional text under the section.\n\n\
#### level 4 header\n\n\
Yet another paragraph"
);
}
#[test]
#[should_panic]
fn section_parsing_panic() {