rustdoc: added tests for header rendering & minor fixes
This commit is contained in:
parent
d6f0a21e20
commit
09c1ce18a2
@ -289,6 +289,7 @@ pub fn render(w: &mut fmt::Formatter, s: &str, print_toc: bool) -> fmt::Result {
|
||||
// html for text rather than the raw text.
|
||||
let mut id = s.clone();
|
||||
let repl_sub = vec!["<em>", "</em>", "<code>", "</code>",
|
||||
"<strong>", "</strong>",
|
||||
"<", ">", "&", "'", """];
|
||||
for sub in repl_sub {
|
||||
id = id.replace(sub, "");
|
||||
@ -326,8 +327,8 @@ pub fn render(w: &mut fmt::Formatter, s: &str, print_toc: bool) -> fmt::Result {
|
||||
});
|
||||
|
||||
// Render the HTML
|
||||
let text = format!(r##"<h{lvl} id="{id}" class='section-header'><a
|
||||
href="#{id}">{sec}{}</a></h{lvl}>"##,
|
||||
let text = format!("<h{lvl} id='{id}' class='section-header'>\
|
||||
<a href='#{id}'>{sec}{}</a></h{lvl}>",
|
||||
s, lvl = level, id = id, sec = sec);
|
||||
|
||||
let text = CString::new(text).unwrap();
|
||||
@ -612,6 +613,27 @@ mod tests {
|
||||
format!("{}", Markdown(markdown));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_header() {
|
||||
fn t(input: &str, expect: &str) {
|
||||
let output = format!("{}", Markdown(input));
|
||||
assert_eq!(output, expect);
|
||||
}
|
||||
|
||||
t("# Foo bar", "\n<h1 id='foo-bar' class='section-header'>\
|
||||
<a href='#foo-bar'>Foo bar</a></h1>");
|
||||
t("## Foo-bar_baz qux", "\n<h2 id='foo-bar_baz-qux' class=\'section-\
|
||||
header'><a href='#foo-bar_baz-qux'>Foo-bar_baz qux</a></h2>");
|
||||
t("### **Foo** *bar* baz!?!& -_qux_-%",
|
||||
"\n<h3 id='foo-bar-baz--_qux_-' class='section-header'>\
|
||||
<a href='#foo-bar-baz--_qux_-'><strong>Foo</strong> \
|
||||
<em>bar</em> baz!?!& -_qux_-%</a></h3>");
|
||||
t("####**Foo?** & \\*bar?!* _`baz`_ ❤ #qux",
|
||||
"\n<h4 id='foo--bar--baz--qux' class='section-header'>\
|
||||
<a href='#foo--bar--baz--qux'><strong>Foo?</strong> & *bar?!* \
|
||||
<em><code>baz</code></em> ❤ #qux</a></h4>");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_plain_summary_line() {
|
||||
fn t(input: &str, expect: &str) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user