rustdoc: Write markdown for resources
This commit is contained in:
parent
ca0aefa8bf
commit
094f91b685
@ -93,6 +93,10 @@ fn write_mod_contents(
|
||||
write_fn(ctxt, fndoc);
|
||||
}
|
||||
|
||||
for resdoc in *doc.resources {
|
||||
write_res(ctxt, resdoc);
|
||||
}
|
||||
|
||||
for moddoc in *doc.mods {
|
||||
write_mod(ctxt, moddoc);
|
||||
}
|
||||
@ -139,6 +143,12 @@ fn code_block_indent(s: str) -> str {
|
||||
str::connect(indented, "\n")
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn write_markdown_should_write_function_header() {
|
||||
let markdown = test::render("fn func() { }");
|
||||
assert str::contains(markdown, "### Function `func`");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_write_the_function_signature() {
|
||||
let markdown = test::render("#[doc = \"f\"] fn a() { }");
|
||||
@ -168,6 +178,12 @@ fn should_correctly_indent_fn_signature() {
|
||||
assert str::contains(markdown, " line 1\n line 2");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_leave_blank_line_between_fn_header_and_sig() {
|
||||
let markdown = test::render("#[doc(brief = \"brief\")] fn a() { }");
|
||||
assert str::contains(markdown, "Function `a`\n\n fn a()");
|
||||
}
|
||||
|
||||
fn write_brief(
|
||||
ctxt: ctxt,
|
||||
brief: option<str>
|
||||
@ -181,6 +197,20 @@ fn write_brief(
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_leave_blank_line_after_brief() {
|
||||
let markdown = test::render("#[doc(brief = \"brief\")] fn a() { }");
|
||||
assert str::contains(markdown, "brief\n\n");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_leave_blank_line_between_brief_and_desc() {
|
||||
let markdown = test::render(
|
||||
"#[doc(brief = \"brief\", desc = \"desc\")] fn a() { }"
|
||||
);
|
||||
assert str::contains(markdown, "brief\n\ndesc");
|
||||
}
|
||||
|
||||
fn write_desc(
|
||||
ctxt: ctxt,
|
||||
desc: option<str>
|
||||
@ -437,6 +467,33 @@ fn should_write_variant_list_with_signatures() {
|
||||
\n* `c(int)` - a\n\n");
|
||||
}
|
||||
|
||||
fn write_res(ctxt: ctxt, doc: doc::resdoc) {
|
||||
write_header(ctxt, h3, #fmt("Resource `%s`", doc.name));
|
||||
write_sig(ctxt, doc.sig);
|
||||
write_brief(ctxt, doc.brief);
|
||||
write_desc(ctxt, doc.desc);
|
||||
write_args(ctxt, doc.args);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_write_resource_header() {
|
||||
let markdown = test::render("resource r(a: bool) { }");
|
||||
assert str::contains(markdown, "### Resource `r`");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_write_resource_signature() {
|
||||
let markdown = test::render("resource r(a: bool) { }");
|
||||
assert str::contains(markdown, "\n resource r(a: bool)\n");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_write_resource_args() {
|
||||
let markdown = test::render("#[doc(args(a = \"b\"))]\
|
||||
resource r(a: bool) { }");
|
||||
assert str::contains(markdown, "Arguments:\n\n* `a`: `bool` - b");
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
fn render(source: str) -> str {
|
||||
@ -477,12 +534,6 @@ mod test {
|
||||
assert str::contains(markdown, "# Crate belch");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn write_markdown_should_write_function_header() {
|
||||
let markdown = render("fn func() { }");
|
||||
assert str::contains(markdown, "### Function `func`");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn write_markdown_should_write_mod_headers() {
|
||||
let markdown = render("mod moo { }");
|
||||
@ -494,25 +545,4 @@ mod test {
|
||||
let markdown = render("mod morp { }");
|
||||
assert str::contains(markdown, "Module `morp`\n\n");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_leave_blank_line_between_fn_header_and_sig() {
|
||||
let markdown = render("#[doc(brief = \"brief\")] fn a() { }");
|
||||
assert str::contains(markdown, "Function `a`\n\n fn a()");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_leave_blank_line_after_brief() {
|
||||
let markdown = render("#[doc(brief = \"brief\")] fn a() { }");
|
||||
assert str::contains(markdown, "brief\n\n");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_leave_blank_line_between_brief_and_desc() {
|
||||
let markdown = render(
|
||||
"#[doc(brief = \"brief\", desc = \"desc\")] fn a() { }"
|
||||
);
|
||||
assert str::contains(markdown, "brief\n\ndesc");
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user