From 2997740921ccbba21ca68e1e1e751fd14524f627 Mon Sep 17 00:00:00 2001 From: Johannes Millan Date: Wed, 18 Dec 2024 10:05:00 +0100 Subject: [PATCH] build: make obsidian links and checkboxes work again --- package-lock.json | 8 ++++---- package.json | 5 ++++- src/app/ui/marked-options-factory.ts | 25 ++++++++++++------------- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index c4469f748..346c4b627 100644 --- a/package-lock.json +++ b/package-lock.json @@ -108,7 +108,7 @@ "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "^1.6.0", "lz-string": "^1.5.0", - "marked": "^15.0.4", + "marked": "^12.0.2", "moment": "2.30.1", "moment-duration-format": "^2.2.2", "nanoid": "^4.0.0", @@ -17311,9 +17311,9 @@ "dev": true }, "node_modules/marked": { - "version": "15.0.4", - "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.4.tgz", - "integrity": "sha512-TCHvDqmb3ZJ4PWG7VEGVgtefA5/euFmsIhxtD0XsBxI39gUSKL81mIRFdt0AiNQozUahd4ke98ZdirExd/vSEw==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", + "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", "dev": true, "bin": { "marked": "bin/marked.js" diff --git a/package.json b/package.json index 1fc43184d..81f0e3059 100644 --- a/package.json +++ b/package.json @@ -190,7 +190,7 @@ "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "^1.6.0", "lz-string": "^1.5.0", - "marked": "^15.0.4", + "marked": "^12.0.2", "moment": "2.30.1", "moment-duration-format": "^2.2.2", "nanoid": "^4.0.0", @@ -223,6 +223,9 @@ }, "angular-mentions": { "@angular/common": "$@angular/common" + }, + "ngx-markdown": { + "marked": "12.0.2" } }, "optionalDependencies": { diff --git a/src/app/ui/marked-options-factory.ts b/src/app/ui/marked-options-factory.ts index 1f425e6fa..3d85522f5 100644 --- a/src/app/ui/marked-options-factory.ts +++ b/src/app/ui/marked-options-factory.ts @@ -3,18 +3,18 @@ import { MarkedOptions, MarkedRenderer } from 'ngx-markdown'; export const markedOptionsFactory = (): MarkedOptions => { const renderer = new MarkedRenderer(); - renderer.checkbox = ({ checked }) => - `${checked ? 'check_box' : 'check_box_outline_blank'}`; + renderer.checkbox = (isChecked: boolean) => + `${isChecked ? 'check_box' : 'check_box_outline_blank'}`; - renderer.listitem = (listItem) => - listItem.text.includes('checkbox') - ? `
  • ${listItem.text}
  • ` - : `
  • ${listItem.text}
  • `; + renderer.listitem = (text: string) => + text.includes('checkbox') + ? `
  • ${text}
  • ` + : `
  • ${text}
  • `; - renderer.link = ({ href, title, text }) => + renderer.link = (href, title, text) => `${text}`; - renderer.paragraph = ({ text }) => { + renderer.paragraph = (text) => { const split = text.split('\n'); return split.reduce((acc, p, i) => { const result = /h(\d)\./.exec(p); @@ -36,13 +36,12 @@ export const markedOptionsFactory = (): MarkedOptions => { /\b((([A-Za-z][A-Za-z0-9+.-]*):\/\/([^\/?#]*))([^?#]*)(\?([^#]*))?(#(.*))?)\b/gi; const rendererTxtOld = renderer.text; - renderer.text = (p) => { - return rendererTxtOld({ - ...p, - text: p.text.replace(urlPattern, (url) => { + renderer.text = (text) => { + return rendererTxtOld( + text.replace(urlPattern, (url) => { return `${url}`; }), - }); + ); }; return {