From 430ce8940cbb740e31a4b0a640ce28f4ee4b4689 Mon Sep 17 00:00:00 2001 From: Elio Struyf Date: Thu, 11 Jan 2024 14:11:02 +0100 Subject: [PATCH] Issue: keyword usage not works for Cyrillic keywords/content #721 --- CHANGELOG.md | 1 + src/panelWebView/components/SeoKeywordInfo.tsx | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e78972d..c4f0eb90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ ### 🐞 Fixes +- [#721](https://github.com/estruyf/vscode-front-matter/issues/721): Fix keywords regex to support unicode characters - [#725](https://github.com/estruyf/vscode-front-matter/issues/725): Fix for opening menu of pinned items ## [9.4.0] - 2023-12-12 - [Release notes](https://beta.frontmatter.codes/updates/v9.4.0) diff --git a/src/panelWebView/components/SeoKeywordInfo.tsx b/src/panelWebView/components/SeoKeywordInfo.tsx index ea1b0ebe..bcb567ea 100644 --- a/src/panelWebView/components/SeoKeywordInfo.tsx +++ b/src/panelWebView/components/SeoKeywordInfo.tsx @@ -28,7 +28,7 @@ const SeoKeywordInfo: React.FunctionComponent = ({ return null; } - const pattern = new RegExp('\\b' + keyword.toLowerCase() + '\\b', 'ig'); + const pattern = new RegExp(`(^${keyword.toLowerCase()}(?=\\s|$))|(\\s${keyword.toLowerCase()}(?=\\s|$))`, 'ig'); const count = (content.match(pattern) || []).length; const density = (count / wordCount) * 100; const densityTitle = l10n.t(LocalizationKey.panelSeoKeywordInfoDensity, `${density.toFixed(2)}%`);