diff --git a/package-lock.json b/package-lock.json index a7824b9..e1e0b5d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "gaxios": "^6.0.0", "glob": "^10.3.10", "htmlparser2": "^9.0.0", - "marked": "^10.0.0", + "marked": "^12.0.1", "meow": "^13.0.0", "mime": "^4.0.0", "server-destroy": "^1.0.1", @@ -6448,9 +6448,9 @@ } }, "node_modules/marked": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-10.0.0.tgz", - "integrity": "sha512-YiGcYcWj50YrwBgNzFoYhQ1hT6GmQbFG8SksnYJX1z4BXTHSOrz1GB5/Jm2yQvMg4nN1FHP4M6r03R10KrVUiA==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", + "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", "bin": { "marked": "bin/marked.js" }, @@ -11333,19 +11333,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/marked": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", - "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", - "dev": true, - "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", diff --git a/package.json b/package.json index e5664de..828e0bb 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "gaxios": "^6.0.0", "glob": "^10.3.10", "htmlparser2": "^9.0.0", - "marked": "^10.0.0", + "marked": "^12.0.1", "meow": "^13.0.0", "mime": "^4.0.0", "server-destroy": "^1.0.1", diff --git a/src/server.ts b/src/server.ts index ae1e432..4ba2362 100644 --- a/src/server.ts +++ b/src/server.ts @@ -97,7 +97,16 @@ async function handleRequest( let mimeType = mime.getType(localPath); const isMarkdown = request.url?.toLocaleLowerCase().endsWith('.md'); if (isMarkdown && options.markdown) { - data = marked(data, {gfm: true}); + const markedData = marked(data, {gfm: true}); + if (typeof markedData === 'string') { + data = markedData; + } else if ( + (typeof markedData === 'object' || typeof markedData === 'function') && + typeof markedData.then === 'function' + ) { + data = await markedData; + } + mimeType = 'text/html; charset=UTF-8'; }