Merge pull request #2905 from ehuss/fix-indented-code-block

Fix rust fenced code blocks with an indent
This commit is contained in:
Eric Huss 2025-10-28 01:44:41 +00:00 committed by GitHub
commit 3fa49214ad
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 35 additions and 1 deletions

View file

@ -141,7 +141,14 @@ fn partition_rust_source(s: &str) -> (&str, &str) {
let split_idx = match HEADER_RE.captures(s) {
Some(caps) => {
let attributes = &caps[1];
attributes.len()
if attributes.trim().is_empty() {
// Don't include pure whitespace as an attribute. The
// whitespace in the regex is intended to handle multiple
// attributes *separated* by potential whitespace.
0
} else {
attributes.len()
}
}
None => 0,
};
@ -179,4 +186,8 @@ fn it_partitions_rust_source() {
),
("\n#![allow(foo)]\n\n#![allow(bar)]\n\n", "let x = 1;")
);
assert_eq!(
partition_rust_source(" // Example"),
("", " // Example")
);
}

View file

@ -223,3 +223,9 @@ Html text was:
fn html_blocks() {
BookTest::from_dir("rendering/html_blocks").check_all_main_files();
}
// Test for a fenced code block that is also indented.
#[test]
fn code_block_fenced_with_indent() {
BookTest::from_dir("rendering/code_blocks_fenced_with_indent").check_all_main_files();
}

View file

@ -0,0 +1,2 @@
[book]
title = "code_blocks_fenced_with_indent"

View file

@ -0,0 +1,6 @@
<h1 id="code-blocks-fenced-with-indent"><a class="header" href="#code-blocks-fenced-with-indent">Code blocks fenced with indent</a></h1>
<pre class="playground"><code class="language-rust"><span class="boring">#![allow(unused)]
</span><span class="boring">fn main() {
</span> // This has a first line that is indented.
println!("hello");
<span class="boring">}</span></code></pre>

View file

@ -0,0 +1,3 @@
# Summary
- [Code blocks fenced with indent](./code-blocks-fenced-with-indent.md)

View file

@ -0,0 +1,6 @@
# Code blocks fenced with indent
```rust
// This has a first line that is indented.
println!("hello");
```