diff --git a/src/lib/markdown.ts b/src/lib/markdown.ts index 18c747b0f..ba9c2ae71 100644 --- a/src/lib/markdown.ts +++ b/src/lib/markdown.ts @@ -53,7 +53,7 @@ const footnoteReferenceMarkedExtension = { renderer: (token: Tokens.Generic): string => `[${token.text}]`, }; -const footnoteMatch = /^\[\^([^\]]+)\]:\s([\S]*)/; +const footnoteMatch = /^\[\^([^\]]+)\]:\s([\S].*)/; const footnoteMarkedExtension = { name: "footnote", level: "block", diff --git a/tests/fixtures/repos/markdown.tar.bz2 b/tests/fixtures/repos/markdown.tar.bz2 index 04278788b..99eb2ec01 100644 Binary files a/tests/fixtures/repos/markdown.tar.bz2 and b/tests/fixtures/repos/markdown.tar.bz2 differ diff --git a/tests/visual/desktop/markdown.spec.ts b/tests/visual/desktop/markdown.spec.ts index a492d7024..11e18e541 100644 --- a/tests/visual/desktop/markdown.spec.ts +++ b/tests/visual/desktop/markdown.spec.ts @@ -103,22 +103,32 @@ test("footnotes", async ({ page }) => { }); await expect( page.locator( - "text=This is an example footnote[0]. And some radicle[1] examples.", + "text=This is an example footnote[1]. And some radicle[2] examples.[3]", ), ).toBeVisible(); await page.getByRole("button", { name: "Collapse" }).click(); - await expect(page.getByText("0. https://example.com ↩")).toBeVisible(); - await expect(page.getByText("1. https://radicle.xyz ↩")).toBeVisible(); + await expect(page.getByText("1. https://example.com ↩")).toBeVisible(); + await expect(page.getByText("2. https://radicle.xyz ↩")).toBeVisible(); + await expect( + page.getByText( + "3. A corporeal grounding, though one hardly to the exclusion of the cerebral as in the erroneous sense of a mind/body dichotomy, except insofar as what is most squarely in the cerebral would land here only on the periphery of our focus. ↩", + ), + ).toBeVisible(); await expect(page).toHaveScreenshot({ fullPage: true }); await page.getByText("Code").click(); await expect( page.locator( - "text=This is an example footnote[^0]. And some radicle[^1] examples.", + "text=This is an example footnote[^1]. And some radicle[^2] examples.[^3]", + ), + ).toBeVisible(); + await expect(page.getByText("[^1]: https://example.com")).toBeVisible(); + await expect(page.getByText("[^2]: https://radicle.xyz")).toBeVisible(); + await expect( + page.getByText( + "[^3]: A corporeal grounding, though one hardly to the exclusion of the _cerebral_ as in the erroneous sense of a mind/body dichotomy, except insofar as what is most squarely in the cerebral would land here only on the periphery of our focus.", ), ).toBeVisible(); - await expect(page.getByText("[^0]: https://example.com")).toBeVisible(); - await expect(page.getByText("[^1]: https://radicle.xyz")).toBeVisible(); }); test("math", async ({ page }) => {