diff --git a/contents/posts/2023-02-01-about-markdown-parser.md b/contents/posts/2023-02-01-about-markdown-parser.md index 48f3181..223204f 100644 --- a/contents/posts/2023-02-01-about-markdown-parser.md +++ b/contents/posts/2023-02-01-about-markdown-parser.md @@ -26,6 +26,10 @@ plain _italic_ **bold** `code` ~~strikethrough~~ Recommends to start Markdown headings from h2 because it render the blog title as h1. +footnote like this[^1] + +[^1]: footnote line requires blank line before. + ## blockquote > blockquote diff --git a/package-lock.json b/package-lock.json index 0f64f94..ab71c77 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "highlight.js": "^11.9.0", "marked": "^10.0.0", + "marked-footnote": "^1.1.2", "marked-highlight": "^2.0.7", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -209,6 +210,14 @@ "node": ">= 18" } }, + "node_modules/marked-footnote": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/marked-footnote/-/marked-footnote-1.1.2.tgz", + "integrity": "sha512-UFP3J6LR+yQBVAs33vo7q1Ji/LkeD4utyqXZ47RGLULnTcCTXzqjE93bJx3MuL8/YAwgsxLJY3sW2AAEqYCIZw==", + "peerDependencies": { + "marked": ">=7.0.0" + } + }, "node_modules/marked-highlight": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/marked-highlight/-/marked-highlight-2.0.7.tgz", diff --git a/package.json b/package.json index f26011f..b0d33bd 100644 --- a/package.json +++ b/package.json @@ -19,9 +19,10 @@ "dependencies": { "highlight.js": "^11.9.0", "marked": "^10.0.0", + "marked-footnote": "^1.1.2", "marked-highlight": "^2.0.7", "react": "^18.2.0", "react-dom": "^18.2.0", "yaml": "^2.3.4" } -} \ No newline at end of file +} diff --git a/src/Common.fs b/src/Common.fs index 987a22c..28f4b9b 100644 --- a/src/Common.fs +++ b/src/Common.fs @@ -79,6 +79,7 @@ module private Util = let private me: ResizeArray = let markedHighlight: obj -> Marked.MarkedExtension = importMember "marked-highlight" + let markedFootnote: obj -> Marked.MarkedExtension = importDefault "marked-footnote" let renderer = let heading text level = @@ -155,7 +156,9 @@ module private Util = markedHighlight !!{| highlight = highlight |} - let mes = [ renderer; highlighter ] + let footNote = markedFootnote !!{| description = "
" |} + + let mes = [ renderer; highlighter; footNote ] ResizeArray mes marked.``use`` me