Skip to content

Commit b8aa1fc

Browse files
t3dotggclaude
andcommitted
fix(shared): mask a leading BOM with the frontmatter
Co-Authored-By: Claude Opus 5.5 <[email protected]>
1 parent ed5258a commit b8aa1fc

2 files changed

Lines changed: 3 additions & 8 deletions

File tree

‎packages/shared/src/markdownFrontmatter.test.ts‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@ describe("maskMarkdownFrontmatter", () => {
1212
});
1313

1414
it("handles a byte order mark, CR line endings, and a ... closing fence", () => {
15-
expect(maskMarkdownFrontmatter("\uFEFF---\na: 1\n---\n# Body")).toBe(
16-
"\uFEFF \n \n \n# Body",
17-
);
15+
expect(maskMarkdownFrontmatter("\uFEFF---\na: 1\n---\n# Body")).toBe(" \n \n \n# Body");
1816
expect(maskMarkdownFrontmatter("---\ra: 1\r...\r# Body")).toBe(" \r \r \r# Body");
1917
expect(maskMarkdownFrontmatter("---\n---\n# Body")).toBe(" \n \n# Body");
2018
});
Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
const LEADING_FRONTMATTER =
2-
/^(\uFEFF?)(---[ \t]*(?:\r\n|\r|\n)(?:[\s\S]*?(?:\r\n|\r|\n))?(?:---|\.\.\.)[ \t]*)(?=\r\n|\r|\n|$)/;
2+
/^\uFEFF?---[ \t]*(?:\r\n|\r|\n)(?:[\s\S]*?(?:\r\n|\r|\n))?(?:---|\.\.\.)[ \t]*(?=\r\n|\r|\n|$)/;
33

44
/**
55
* Blanks a leading YAML frontmatter block so rendered previews skip it instead
66
* of showing a rule and a setext heading. Masked characters become spaces and
77
* line breaks stay, so source offsets (task checkbox edits) stay valid.
88
*/
99
export function maskMarkdownFrontmatter(markdown: string): string {
10-
return markdown.replace(
11-
LEADING_FRONTMATTER,
12-
(_match, bom: string, block: string) => bom + block.replace(/[^\r\n]/g, " "),
13-
);
10+
return markdown.replace(LEADING_FRONTMATTER, (block) => block.replace(/[^\r\n]/g, " "));
1411
}

0 commit comments

Comments
 (0)