feat: parse and render Obsidian cross-references (task 0005)
Model `[[wikilinks]]` and `![[transclusions]]` as distinct inline node
types sharing a `{ target, anchor?, display? }` shape, and render them:
wikilinks underlined (display text or target), transclusions as their
raw source text.
remark-wiki-link is added to the pipeline for `[[…]]`. It does not
recognise `![[…]]` embeds or split the `#anchor` from the target, so
transclusions are recovered by scanning text runs and anchors are split
in the translation layer. Its alias divider is set to `|` so Step
Reference anchors like `#rolling:2` survive.
This commit is contained in:
72
bun.nix
72
bun.nix
@@ -13,6 +13,10 @@
|
||||
...
|
||||
}:
|
||||
{
|
||||
"@babel/runtime@7.29.7" = fetchurl {
|
||||
url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz";
|
||||
hash = "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==";
|
||||
};
|
||||
"@biomejs/biome@2.5.3" = fetchurl {
|
||||
url = "https://registry.npmjs.org/@biomejs/biome/-/biome-2.5.3.tgz";
|
||||
hash = "sha512-MrJswFdei9EfDwwUy2tQrPDpK0AO+RmMFvBoaaJ6ayBc3sUbHdCE+XG5N8vp+5So41ZupZJQm0roHFFhMGVD7A==";
|
||||
@@ -75,6 +79,10 @@
|
||||
url = "https://registry.npmjs.org/@types/node/-/node-26.1.1.tgz";
|
||||
hash = "sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==";
|
||||
};
|
||||
"@types/unist@2.0.11" = fetchurl {
|
||||
url = "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz";
|
||||
hash = "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==";
|
||||
};
|
||||
"@types/unist@3.0.3" = fetchurl {
|
||||
url = "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz";
|
||||
hash = "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==";
|
||||
@@ -103,10 +111,22 @@
|
||||
url = "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz";
|
||||
hash = "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==";
|
||||
};
|
||||
"character-entities-legacy@1.1.4" = fetchurl {
|
||||
url = "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz";
|
||||
hash = "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==";
|
||||
};
|
||||
"character-entities@1.2.4" = fetchurl {
|
||||
url = "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz";
|
||||
hash = "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==";
|
||||
};
|
||||
"character-entities@2.0.2" = fetchurl {
|
||||
url = "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz";
|
||||
hash = "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==";
|
||||
};
|
||||
"character-reference-invalid@1.1.4" = fetchurl {
|
||||
url = "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz";
|
||||
hash = "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==";
|
||||
};
|
||||
"commander@15.0.0" = fetchurl {
|
||||
url = "https://registry.npmjs.org/commander/-/commander-15.0.0.tgz";
|
||||
hash = "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==";
|
||||
@@ -151,6 +171,22 @@
|
||||
url = "https://registry.npmjs.org/format/-/format-0.2.2.tgz";
|
||||
hash = "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==";
|
||||
};
|
||||
"is-alphabetical@1.0.4" = fetchurl {
|
||||
url = "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz";
|
||||
hash = "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==";
|
||||
};
|
||||
"is-alphanumerical@1.0.4" = fetchurl {
|
||||
url = "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz";
|
||||
hash = "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==";
|
||||
};
|
||||
"is-decimal@1.0.4" = fetchurl {
|
||||
url = "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz";
|
||||
hash = "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==";
|
||||
};
|
||||
"is-hexadecimal@1.0.4" = fetchurl {
|
||||
url = "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz";
|
||||
hash = "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==";
|
||||
};
|
||||
"is-plain-obj@4.1.0" = fetchurl {
|
||||
url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz";
|
||||
hash = "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==";
|
||||
@@ -159,6 +195,10 @@
|
||||
url = "https://registry.npmjs.org/is-unsafe/-/is-unsafe-2.0.0.tgz";
|
||||
hash = "sha512-2LdV822R+wmI86unXA93WCFpL6g+av8ynWk0nrHyJqGop5VoocYsSLFgN8jrfalT6iGeLNM4KXuVSsULP53kEA==";
|
||||
};
|
||||
"longest-streak@2.0.4" = fetchurl {
|
||||
url = "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz";
|
||||
hash = "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==";
|
||||
};
|
||||
"longest-streak@3.1.0" = fetchurl {
|
||||
url = "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz";
|
||||
hash = "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==";
|
||||
@@ -207,14 +247,26 @@
|
||||
url = "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz";
|
||||
hash = "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==";
|
||||
};
|
||||
"mdast-util-to-markdown@0.6.5" = fetchurl {
|
||||
url = "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz";
|
||||
hash = "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==";
|
||||
};
|
||||
"mdast-util-to-markdown@2.1.2" = fetchurl {
|
||||
url = "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz";
|
||||
hash = "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==";
|
||||
};
|
||||
"mdast-util-to-string@2.0.0" = fetchurl {
|
||||
url = "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz";
|
||||
hash = "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==";
|
||||
};
|
||||
"mdast-util-to-string@4.0.0" = fetchurl {
|
||||
url = "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz";
|
||||
hash = "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==";
|
||||
};
|
||||
"mdast-util-wiki-link@0.1.2" = fetchurl {
|
||||
url = "https://registry.npmjs.org/mdast-util-wiki-link/-/mdast-util-wiki-link-0.1.2.tgz";
|
||||
hash = "sha512-DTcDyOxKDo3pB3fc0zQlD8myfQjYkW4hazUKI9PUyhtoj9JBeHC2eIdlVXmaT22bZkFAVU2d47B6y2jVKGoUQg==";
|
||||
};
|
||||
"micromark-core-commonmark@2.0.3" = fetchurl {
|
||||
url = "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz";
|
||||
hash = "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==";
|
||||
@@ -251,6 +303,10 @@
|
||||
url = "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz";
|
||||
hash = "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==";
|
||||
};
|
||||
"micromark-extension-wiki-link@0.0.4" = fetchurl {
|
||||
url = "https://registry.npmjs.org/micromark-extension-wiki-link/-/micromark-extension-wiki-link-0.0.4.tgz";
|
||||
hash = "sha512-dJc8AfnoU8BHkN+7fWZvIS20SMsMS1ZlxQUn6We67MqeKbOiEDZV5eEvCpwqGBijbJbxX3Kxz879L4K9HIiOvw==";
|
||||
};
|
||||
"micromark-factory-destination@2.0.1" = fetchurl {
|
||||
url = "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz";
|
||||
hash = "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==";
|
||||
@@ -343,6 +399,10 @@
|
||||
url = "https://registry.npmjs.org/neverthrow/-/neverthrow-8.2.0.tgz";
|
||||
hash = "sha512-kOCT/1MCPAxY5iUV3wytNFUMUolzuwd/VF/1KCx7kf6CutrOsTie+84zTGTpgQycjvfLdBBdvBvFLqFD2c0wkQ==";
|
||||
};
|
||||
"parse-entities@2.0.0" = fetchurl {
|
||||
url = "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz";
|
||||
hash = "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==";
|
||||
};
|
||||
"path-expression-matcher@1.6.2" = fetchurl {
|
||||
url = "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.6.2.tgz";
|
||||
hash = "sha512-enSlaiat05iasnzmgNxRj8reFdj3puY2QpNgP1aPIaVfT6nn9ICuPoFlKHk8EN22HcwewshO+mN2DGbkCEOtqQ==";
|
||||
@@ -363,6 +423,14 @@
|
||||
url = "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz";
|
||||
hash = "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==";
|
||||
};
|
||||
"remark-wiki-link@2.0.1" = fetchurl {
|
||||
url = "https://registry.npmjs.org/remark-wiki-link/-/remark-wiki-link-2.0.1.tgz";
|
||||
hash = "sha512-F8Eut1E7GWfFm4ZDTI6/4ejeZEHZgnVk6E933Yqd/ssYsc4AyI32aGakxwsGcEzbbE7dkWi1EfLlGAdGgOZOsA==";
|
||||
};
|
||||
"repeat-string@1.6.1" = fetchurl {
|
||||
url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz";
|
||||
hash = "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==";
|
||||
};
|
||||
"sade@1.8.1" = fetchurl {
|
||||
url = "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz";
|
||||
hash = "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==";
|
||||
@@ -415,6 +483,10 @@
|
||||
url = "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz";
|
||||
hash = "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==";
|
||||
};
|
||||
"zwitch@1.0.5" = fetchurl {
|
||||
url = "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz";
|
||||
hash = "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==";
|
||||
};
|
||||
"zwitch@2.0.4" = fetchurl {
|
||||
url = "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz";
|
||||
hash = "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==";
|
||||
|
||||
Reference in New Issue
Block a user