From 90e814c11dbb0bf1c974f6f6f71ac6e3ec042e8b Mon Sep 17 00:00:00 2001 From: Elio Struyf Date: Fri, 12 Jun 2026 08:40:24 +0200 Subject: [PATCH] feat: enhance readability analysis by improving markdown stripping and updating score color logic --- src/helpers/ReadabilityHelper.ts | 6 ++++-- .../components/ContentHealth/ReadabilityScore.tsx | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/helpers/ReadabilityHelper.ts b/src/helpers/ReadabilityHelper.ts index c8aa744b..74819f48 100644 --- a/src/helpers/ReadabilityHelper.ts +++ b/src/helpers/ReadabilityHelper.ts @@ -15,11 +15,13 @@ export class ReadabilityHelper { */ private static stripMarkdown(text: string): string { return text + .replace(/\{\{<[\s\S]*?>}}/g, '') // Hugo shortcodes (removes base64 blobs, captions, etc.) + .replace(/```[\s\S]*?```/g, '') // fenced code blocks (must run before inline code) + .replace(/`[^`\n]+`/g, '') // inline code .replace(/!\[.*?\]\(.*?\)/g, '') // images .replace(/\[([^\]]+)\]\(.*?\)/g, '$1') // links → text only + .replace(/^\|.*\|$/gm, '') // table rows .replace(/#{1,6}\s/g, '') // headings - .replace(/`{1,3}[^`]*`{1,3}/g, '') // inline + fenced code - .replace(/```[\s\S]*?```/g, '') // fenced blocks .replace(/[*_]{1,3}([^*_]+)[*_]{1,3}/g, '$1') // bold/italic .replace(/>\s/g, '') // blockquotes .replace(/[-*+]\s/g, '') // list bullets diff --git a/src/panelWebView/components/ContentHealth/ReadabilityScore.tsx b/src/panelWebView/components/ContentHealth/ReadabilityScore.tsx index 4c760d33..aef278b2 100644 --- a/src/panelWebView/components/ContentHealth/ReadabilityScore.tsx +++ b/src/panelWebView/components/ContentHealth/ReadabilityScore.tsx @@ -17,7 +17,8 @@ interface Props { minScore: number; } -const scoreColor = (score: number): string => { +const scoreColor = (score: number, isLow: boolean): string => { + if (isLow) { return 'text-[var(--vscode-problemsWarningIcon-foreground)]'; } if (score >= 60) { return 'text-[var(--vscode-testing-iconPassed)]'; } if (score >= 30) { return 'text-[var(--vscode-problemsWarningIcon-foreground)]'; } return 'text-[var(--vscode-problemsErrorIcon-foreground)]'; @@ -63,7 +64,7 @@ const ReadabilityScore: React.FunctionComponent = ({ readability, minScor {localize(LocalizationKey.panelContentHealthReadabilityLabel)} - + {readability.score}