Skip to content

Commit 69509f9

Browse files
committed
markdown-it-anchor
1 parent 2ea6641 commit 69509f9

File tree

4 files changed

+40
-0
lines changed

4 files changed

+40
-0
lines changed

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,11 @@
5454
"@observablehq/inspector": "^5.0.1",
5555
"@observablehq/parser": "^6.1.0",
5656
"@observablehq/runtime": "^6.0.0",
57+
"@sindresorhus/slugify": "^2.2.1",
5758
"acorn": "^8.15.0",
5859
"acorn-walk": "^8.3.4",
5960
"markdown-it": "^14.1.0",
61+
"markdown-it-anchor": "^9.2.0",
6062
"vite": "^7.0.0"
6163
},
6264
"devDependencies": {

src/runtime/stdlib/md.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
1+
import slugify from "@sindresorhus/slugify";
12
import MarkdownIt from "markdown-it";
3+
import MarkdownItAnchor from "markdown-it-anchor";
24
import type {TemplateRenderer} from "./template.js";
35

46
const mi = MarkdownIt({html: true, linkify: true, typographer: true});
57

8+
mi.use(MarkdownItAnchor, {
9+
level: [2, 3],
10+
slugify: (s) => slugify(s),
11+
permalink: MarkdownItAnchor.permalink.headerLink({class: ""})
12+
});
13+
614
export function MarkdownRenderer({
715
document = window.document
816
}: {

src/styles/global.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,11 @@ h6 code {
8888
font-size: 88.235294117%; /* from 17px to 15px */
8989
}
9090

91+
h2[id] a[href],
92+
h3[id] a[href] {
93+
color: inherit;
94+
}
95+
9196
pre {
9297
line-height: 1.5;
9398
}

yarn.lock

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,21 @@
482482
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.1.tgz#1c982f6a5044ffc2a35cd754a0951bdcb44d5ba0"
483483
integrity sha512-J8o22LuF0kTe7m+8PvW9wk3/bRq5+mRo5Dqo6+vXb7otCm3TPhYOJqOaQtGU9YMWQSL3krMnoOxMr0+9E6F3Ug==
484484

485+
"@sindresorhus/slugify@^2.2.1":
486+
version "2.2.1"
487+
resolved "https://registry.yarnpkg.com/@sindresorhus/slugify/-/slugify-2.2.1.tgz#fa2e2e25d6e1e74a2eeb5e2c37f5ccc516ed2c4b"
488+
integrity sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==
489+
dependencies:
490+
"@sindresorhus/transliterate" "^1.0.0"
491+
escape-string-regexp "^5.0.0"
492+
493+
"@sindresorhus/transliterate@^1.0.0":
494+
version "1.6.0"
495+
resolved "https://registry.yarnpkg.com/@sindresorhus/transliterate/-/transliterate-1.6.0.tgz#2309fff65a868047e6d2dd70dec747c5b36a8327"
496+
integrity sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==
497+
dependencies:
498+
escape-string-regexp "^5.0.0"
499+
485500
"@types/chai@^5.2.2":
486501
version "5.2.2"
487502
resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.2.tgz#6f14cea18180ffc4416bc0fd12be05fdd73bdd6b"
@@ -926,6 +941,11 @@ escape-string-regexp@^4.0.0:
926941
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
927942
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
928943

944+
escape-string-regexp@^5.0.0:
945+
version "5.0.0"
946+
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
947+
integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
948+
929949
eslint-scope@^8.4.0:
930950
version "8.4.0"
931951
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.4.0.tgz#88e646a207fad61436ffa39eb505147200655c82"
@@ -1343,6 +1363,11 @@ magic-string@^0.30.17:
13431363
dependencies:
13441364
"@jridgewell/sourcemap-codec" "^1.5.0"
13451365

1366+
markdown-it-anchor@^9.2.0:
1367+
version "9.2.0"
1368+
resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-9.2.0.tgz#89375d9a2a79336403ab7c4fd36b1965cc45e5c8"
1369+
integrity sha512-sa2ErMQ6kKOA4l31gLGYliFQrMKkqSO0ZJgGhDHKijPf0pNFM9vghjAh3gn26pS4JDRs7Iwa9S36gxm3vgZTzg==
1370+
13461371
markdown-it@^14.1.0:
13471372
version "14.1.0"
13481373
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45"

0 commit comments

Comments
 (0)