| Crates.io | up2code |
| lib.rs | up2code |
| version | 0.4.1 |
| created_at | 2024-10-18 10:27:11.269684+00 |
| updated_at | 2025-04-07 12:02:37.886066+00 |
| description | up2code is a tool to check code listings in Markdown files against a GitHub repository. |
| homepage | https://github.com/bitfield/up2code |
| repository | https://github.com/bitfield/up2code |
| max_upload_size | |
| id | 1414136 |
| size | 64,951 |
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.
cargo install up2code
Run:
up2code book/*.md
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, 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);
}
}