Skip to content

Commit fd2000b

Browse files
committed
fix(embedded): Allow non-starting dashes in frontmatter
1 parent b14a5f4 commit fd2000b

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/cargo/util/toml/embedded.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -176,18 +176,19 @@ impl<'s> ScriptSource<'s> {
176176
}
177177
_ => rest.split_at(fence_end),
178178
};
179+
let nl_fence_pattern = format!("\n{fence_pattern}");
179180
let (info, content) = rest.split_once("\n").unwrap_or((rest, ""));
180181
let info = info.trim();
181182
if !info.is_empty() {
182183
source.info = Some(info);
183184
}
184185
source.content = content;
185186

186-
let Some((frontmatter, content)) = source.content.split_once(fence_pattern) else {
187+
let Some(frontmatter_nl) = source.content.find(&nl_fence_pattern) else {
187188
anyhow::bail!("no closing `{fence_pattern}` found for frontmatter");
188189
};
189-
source.frontmatter = Some(frontmatter);
190-
source.content = content;
190+
source.frontmatter = Some(&source.content[..frontmatter_nl + 1]);
191+
source.content = &source.content[frontmatter_nl + nl_fence_pattern.len()..];
191192

192193
let (line, content) = source
193194
.content
@@ -543,8 +544,8 @@ fn main() {}
543544
str![[r##"
544545
shebang: "#!/usr/bin/env cargo\n"
545546
info: None
546-
frontmatter: "Hello"
547-
content: "World\n---\n\nfn main() {}\n"
547+
frontmatter: "Hello---\nWorld\n"
548+
content: "\nfn main() {}\n"
548549
549550
"##]],
550551
);

0 commit comments

Comments
 (0)