Skip to content

Commit 2c9fc62

Browse files
committed
Support mdBook preprocessors for TRPL in rustbook
`rust-lang/book` recently added two mdBook preprocessors. Enable `rustbook` to use those preprocessors for books where they are requested by the `book.toml` by adding the preprocessors as path dependencies, and ignoring them where they are not requested, i.e. by all the books other than TRPL at present.
1 parent 5d328a1 commit 2c9fc62

File tree

4 files changed

+164
-3
lines changed

4 files changed

+164
-3
lines changed

Cargo.lock

+150-2
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,21 @@ dependencies = [
275275
"nom",
276276
]
277277

278+
[[package]]
279+
name = "assert_cmd"
280+
version = "2.0.14"
281+
source = "registry+https://github.com/rust-lang/crates.io-index"
282+
checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8"
283+
dependencies = [
284+
"anstyle",
285+
"bstr",
286+
"doc-comment",
287+
"predicates",
288+
"predicates-core",
289+
"predicates-tree",
290+
"wait-timeout",
291+
]
292+
278293
[[package]]
279294
name = "autocfg"
280295
version = "1.3.0"
@@ -1086,6 +1101,12 @@ version = "0.1.13"
10861101
source = "registry+https://github.com/rust-lang/crates.io-index"
10871102
checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
10881103

1104+
[[package]]
1105+
name = "difflib"
1106+
version = "0.4.0"
1107+
source = "registry+https://github.com/rust-lang/crates.io-index"
1108+
checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
1109+
10891110
[[package]]
10901111
name = "digest"
10911112
version = "0.10.7"
@@ -1188,6 +1209,12 @@ dependencies = [
11881209
"windows-sys 0.52.0",
11891210
]
11901211

1212+
[[package]]
1213+
name = "doc-comment"
1214+
version = "0.3.3"
1215+
source = "registry+https://github.com/rust-lang/crates.io-index"
1216+
checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
1217+
11911218
[[package]]
11921219
name = "either"
11931220
version = "1.12.0"
@@ -2317,6 +2344,33 @@ dependencies = [
23172344
"topological-sort",
23182345
]
23192346

2347+
[[package]]
2348+
name = "mdbook-trpl-listing"
2349+
version = "0.1.0"
2350+
dependencies = [
2351+
"assert_cmd",
2352+
"clap",
2353+
"mdbook",
2354+
"pulldown-cmark 0.10.3",
2355+
"pulldown-cmark-to-cmark",
2356+
"serde_json",
2357+
"thiserror",
2358+
"toml 0.8.13",
2359+
"xmlparser",
2360+
]
2361+
2362+
[[package]]
2363+
name = "mdbook-trpl-note"
2364+
version = "1.0.0"
2365+
dependencies = [
2366+
"assert_cmd",
2367+
"clap",
2368+
"mdbook",
2369+
"pulldown-cmark 0.10.3",
2370+
"pulldown-cmark-to-cmark",
2371+
"serde_json",
2372+
]
2373+
23202374
[[package]]
23212375
name = "measureme"
23222376
version = "11.0.1"
@@ -2929,6 +2983,33 @@ version = "0.1.1"
29292983
source = "registry+https://github.com/rust-lang/crates.io-index"
29302984
checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
29312985

2986+
[[package]]
2987+
name = "predicates"
2988+
version = "3.1.0"
2989+
source = "registry+https://github.com/rust-lang/crates.io-index"
2990+
checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8"
2991+
dependencies = [
2992+
"anstyle",
2993+
"difflib",
2994+
"predicates-core",
2995+
]
2996+
2997+
[[package]]
2998+
name = "predicates-core"
2999+
version = "1.0.6"
3000+
source = "registry+https://github.com/rust-lang/crates.io-index"
3001+
checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
3002+
3003+
[[package]]
3004+
name = "predicates-tree"
3005+
version = "1.0.9"
3006+
source = "registry+https://github.com/rust-lang/crates.io-index"
3007+
checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
3008+
dependencies = [
3009+
"predicates-core",
3010+
"termtree",
3011+
]
3012+
29323013
[[package]]
29333014
name = "prettydiff"
29343015
version = "0.6.4"
@@ -2998,6 +3079,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
29983079
checksum = "76979bea66e7875e7509c4ec5300112b316af87fa7a252ca91c448b32dfe3993"
29993080
dependencies = [
30003081
"bitflags 2.5.0",
3082+
"getopts",
30013083
"memchr",
30023084
"pulldown-cmark-escape",
30033085
"unicase",
@@ -3009,6 +3091,15 @@ version = "0.10.1"
30093091
source = "registry+https://github.com/rust-lang/crates.io-index"
30103092
checksum = "bd348ff538bc9caeda7ee8cad2d1d48236a1f443c1fa3913c6a02fe0043b1dd3"
30113093

3094+
[[package]]
3095+
name = "pulldown-cmark-to-cmark"
3096+
version = "13.0.0"
3097+
source = "registry+https://github.com/rust-lang/crates.io-index"
3098+
checksum = "f609795c8d835f79dcfcf768415b9fb57ef1b74891e99f86e73f43a7a257163b"
3099+
dependencies = [
3100+
"pulldown-cmark 0.10.3",
3101+
]
3102+
30123103
[[package]]
30133104
name = "punycode"
30143105
version = "0.4.1"
@@ -3256,6 +3347,8 @@ dependencies = [
32563347
"clap",
32573348
"env_logger",
32583349
"mdbook",
3350+
"mdbook-trpl-listing",
3351+
"mdbook-trpl-note",
32593352
]
32603353

32613354
[[package]]
@@ -5363,6 +5456,12 @@ dependencies = [
53635456
"winapi",
53645457
]
53655458

5459+
[[package]]
5460+
name = "termtree"
5461+
version = "0.4.1"
5462+
source = "registry+https://github.com/rust-lang/crates.io-index"
5463+
checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
5464+
53665465
[[package]]
53675466
name = "test"
53685467
version = "0.0.0"
@@ -5535,7 +5634,19 @@ dependencies = [
55355634
"serde",
55365635
"serde_spanned",
55375636
"toml_datetime",
5538-
"toml_edit",
5637+
"toml_edit 0.19.15",
5638+
]
5639+
5640+
[[package]]
5641+
name = "toml"
5642+
version = "0.8.13"
5643+
source = "registry+https://github.com/rust-lang/crates.io-index"
5644+
checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba"
5645+
dependencies = [
5646+
"serde",
5647+
"serde_spanned",
5648+
"toml_datetime",
5649+
"toml_edit 0.22.13",
55395650
]
55405651

55415652
[[package]]
@@ -5557,7 +5668,20 @@ dependencies = [
55575668
"serde",
55585669
"serde_spanned",
55595670
"toml_datetime",
5560-
"winnow",
5671+
"winnow 0.5.40",
5672+
]
5673+
5674+
[[package]]
5675+
name = "toml_edit"
5676+
version = "0.22.13"
5677+
source = "registry+https://github.com/rust-lang/crates.io-index"
5678+
checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c"
5679+
dependencies = [
5680+
"indexmap",
5681+
"serde",
5682+
"serde_spanned",
5683+
"toml_datetime",
5684+
"winnow 0.6.8",
55615685
]
55625686

55635687
[[package]]
@@ -5967,6 +6091,15 @@ version = "0.9.4"
59676091
source = "registry+https://github.com/rust-lang/crates.io-index"
59686092
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
59696093

6094+
[[package]]
6095+
name = "wait-timeout"
6096+
version = "0.2.0"
6097+
source = "registry+https://github.com/rust-lang/crates.io-index"
6098+
checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
6099+
dependencies = [
6100+
"libc",
6101+
]
6102+
59706103
[[package]]
59716104
name = "walkdir"
59726105
version = "2.5.0"
@@ -6279,6 +6412,15 @@ dependencies = [
62796412
"memchr",
62806413
]
62816414

6415+
[[package]]
6416+
name = "winnow"
6417+
version = "0.6.8"
6418+
source = "registry+https://github.com/rust-lang/crates.io-index"
6419+
checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d"
6420+
dependencies = [
6421+
"memchr",
6422+
]
6423+
62826424
[[package]]
62836425
name = "writeable"
62846426
version = "0.5.4"
@@ -6296,6 +6438,12 @@ dependencies = [
62966438
"rustix",
62976439
]
62986440

6441+
[[package]]
6442+
name = "xmlparser"
6443+
version = "0.13.6"
6444+
source = "registry+https://github.com/rust-lang/crates.io-index"
6445+
checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
6446+
62996447
[[package]]
63006448
name = "xz2"
63016449
version = "0.1.7"

src/doc/book

Submodule book updated 112 files

src/tools/rustbook/Cargo.toml

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ edition = "2021"
77
[dependencies]
88
clap = "4.0.32"
99
env_logger = "0.11"
10+
mdbook-trpl-listing = { path = "../../doc/book/packages/mdbook-trpl-listing" }
11+
mdbook-trpl-note = { path = "../../doc/book/packages/mdbook-trpl-note" }
1012

1113
[dependencies.mdbook]
1214
version = "0.4.37"

src/tools/rustbook/src/main.rs

+11
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ use clap::{arg, ArgMatches, Command};
88
use mdbook::errors::Result as Result3;
99
use mdbook::MDBook;
1010

11+
use mdbook_trpl_listing::TrplListing;
12+
use mdbook_trpl_note::TrplNote;
13+
1114
fn main() {
1215
let crate_version = concat!("v", crate_version!());
1316
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("warn")).init();
@@ -67,6 +70,14 @@ pub fn build(args: &ArgMatches) -> Result3<()> {
6770
book.config.build.build_dir = dest_dir.into();
6871
}
6972

73+
if book.config.get_preprocessor("trpl-note").is_some() {
74+
book.with_preprocessor(TrplNote);
75+
}
76+
77+
if book.config.get_preprocessor("trpl-listing").is_some() {
78+
book.with_preprocessor(TrplListing);
79+
}
80+
7081
book.build()?;
7182

7283
Ok(())

0 commit comments

Comments
 (0)