Expand description
up2code
is a tool for checking code listings in Markdown files, to make
sure they’re up to date with, and in sync with, canonical versions stored in
a GitHub repo.
up2code
reads all the Markdown files you specify, looking for what it
considers a “listing”: a fenced code block immediately followed by a web
link. For example:
```rust
fn main() {
println!("Hello, world!")
}
```
[Listing `hello/1`](https://github.com/bitfield/example/blob/src/main.rs))
It will try to fetch the raw code page from the specified URL (appending “?raw=true”), reporting any errors. If the fetch succeeds, it will check that the Markdown listing is an exact substring of the GitHub listing (possibly indented by four spaces), reporting any mismatch as a unified diff:
tests/data/test.md: Listing `counter_2`
@@ -6,8 +13,8 @@
#[test]
fn count_lines_fn_counts_lines_in_input() {
- let input = io::Cursor::new("line 1\nline2\n");
+ let input = io::Cursor::new("line 1\nline 2\n");
let lines = count_lines(input);
- assert_eq!(2, lines);
+ assert_eq!(lines, 2);
}
}
Structs§
- Checked
Listing - A checked listing containing both the Markdown version and the canonical version from GitHub.
- Listing
- A listing as parsed out of the Markdown source.