Skip to content

Commit

Permalink
Merge pull request #4569 from piotrkwiecinski/uucore_help_section
Browse files Browse the repository at this point in the history
uucore: fix help section doesn't render 3+ level headers
  • Loading branch information
cakebaker authored Mar 23, 2023
2 parents 5c1f82b + 154370a commit 57541db
Showing 1 changed file with 29 additions and 1 deletion.
30 changes: 29 additions & 1 deletion src/uucore_procs/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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() {
Expand Down

0 comments on commit 57541db

Please sign in to comment.