Radish alpha
r
rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5
Radicle web interface
Radicle
Git
Update footnote regex to handle footnotes with spaces
Merged did:key:z6MkkfM3...sVz5 opened 2 years ago

Also updates the markdown fixture to test footnotes with spaces

check check-visual check-unit-test check-httpd-api-unit-test check-e2e check-build

👉 Preview
👉 Workflow runs
👉 Branch on GitHub

3 files changed +17 -7 18ef797f 16e858bd
modified src/lib/markdown.ts
@@ -53,7 +53,7 @@ const footnoteReferenceMarkedExtension = {
  renderer: (token: Tokens.Generic): string =>
    `<sup class="txt-tiny footnote-ref" id="${referencePrefix}:${token.text}"><a href="#${footnotePrefix}:${token.text}">[${token.text}]</a></sup>`,
};
-
const footnoteMatch = /^\[\^([^\]]+)\]:\s([\S]*)/;
+
const footnoteMatch = /^\[\^([^\]]+)\]:\s([\S].*)/;
const footnoteMarkedExtension = {
  name: "footnote",
  level: "block",
modified tests/fixtures/repos/markdown.tar.bz2
modified 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 }) => {