Adding markdown + katex support

This commit is contained in:
2026-06-25 03:00:21 -07:00
parent 535c4c4943
commit 5585d497c9
5 changed files with 59 additions and 8 deletions
+2 -2
View File
@@ -1,11 +1,11 @@
{ {
"name": "calebburke-api", "name": "calebburkedev-api",
"version": "0.0.1", "version": "0.0.1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "calebburke-api", "name": "calebburkedev-api",
"version": "0.0.1", "version": "0.0.1",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
+1 -1
View File
@@ -1,5 +1,5 @@
{ {
"name": "calebburke-api", "name": "calebburkedev-api",
"private": true, "private": true,
"version": "0.0.1", "version": "0.0.1",
"description": "calebburke.dev Backend", "description": "calebburke.dev Backend",
+39 -2
View File
@@ -1,11 +1,11 @@
{ {
"name": "calebburke-web", "name": "calebburkedev-web",
"version": "0.1.0", "version": "0.1.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "calebburke-web", "name": "calebburkedev-web",
"version": "0.1.0", "version": "0.1.0",
"dependencies": { "dependencies": {
"@auth0/auth0-vue": "^2.5.0", "@auth0/auth0-vue": "^2.5.0",
@@ -17,9 +17,11 @@
"dompurify": "^3.3.3", "dompurify": "^3.3.3",
"grid-layout-plus": "^1.1.1", "grid-layout-plus": "^1.1.1",
"js-yaml": "^4.1.0", "js-yaml": "^4.1.0",
"katex": "^0.17.0",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"luxon": "^3.7.2", "luxon": "^3.7.2",
"marked": "^17.0.5", "marked": "^17.0.5",
"marked-katex-extension": "^5.1.10",
"md5": "^2.3.0", "md5": "^2.3.0",
"qs": "^6.14.0", "qs": "^6.14.0",
"validator": "^13.15.26", "validator": "^13.15.26",
@@ -4146,6 +4148,31 @@
"jsox": "lib/cli.js" "jsox": "lib/cli.js"
} }
}, },
"node_modules/katex": {
"version": "0.17.0",
"resolved": "https://registry.npmjs.org/katex/-/katex-0.17.0.tgz",
"integrity": "sha512-Vdw0ATsQ9V+LuegM/BTwQqV/6cTl5lbGcIrU+BCgLxyf6bo38ybOr372tuSIxir3CN720flu1meYR6XzNMwQnw==",
"funding": [
"https://opencollective.com/katex",
"https://github.com/sponsors/katex"
],
"license": "MIT",
"dependencies": {
"commander": "^8.3.0"
},
"bin": {
"katex": "cli.js"
}
},
"node_modules/katex/node_modules/commander": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
"integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
"license": "MIT",
"engines": {
"node": ">= 12"
}
},
"node_modules/keyv": { "node_modules/keyv": {
"version": "4.5.4", "version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
@@ -4243,6 +4270,16 @@
"node": ">= 20" "node": ">= 20"
} }
}, },
"node_modules/marked-katex-extension": {
"version": "5.1.10",
"resolved": "https://registry.npmjs.org/marked-katex-extension/-/marked-katex-extension-5.1.10.tgz",
"integrity": "sha512-TuqrzguLeXXm6iBaf16leL3+dVmMj8KrBdunMVVzxMS/bwcjtQ0YG0sNytl1j7uUo8yClsXJqBbVjH1yOPurwQ==",
"license": "MIT",
"peerDependencies": {
"katex": ">=0.16 <0.18",
"marked": ">=4 <19"
}
},
"node_modules/math-intrinsics": { "node_modules/math-intrinsics": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+3 -1
View File
@@ -1,5 +1,5 @@
{ {
"name": "calebburke-web", "name": "calebburkedev-web",
"private": true, "private": true,
"version": "0.1.0", "version": "0.1.0",
"type": "module", "type": "module",
@@ -21,9 +21,11 @@
"dompurify": "^3.3.3", "dompurify": "^3.3.3",
"grid-layout-plus": "^1.1.1", "grid-layout-plus": "^1.1.1",
"js-yaml": "^4.1.0", "js-yaml": "^4.1.0",
"katex": "^0.17.0",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"luxon": "^3.7.2", "luxon": "^3.7.2",
"marked": "^17.0.5", "marked": "^17.0.5",
"marked-katex-extension": "^5.1.10",
"md5": "^2.3.0", "md5": "^2.3.0",
"qs": "^6.14.0", "qs": "^6.14.0",
"validator": "^13.15.26", "validator": "^13.15.26",
+12
View File
@@ -0,0 +1,12 @@
import DOMPurify from "dompurify"
import { marked } from "marked"
import markedKatex from "marked-katex-extension"
import "katex/dist/katex.min.css"
marked.use(markedKatex({ throwOnError: false }))
export function renderMarkdown(source: string): string {
return DOMPurify.sanitize(marked.parse(source) as string)
}
export default renderMarkdown