From 6c6191480ed0e7212fc366ebf30877e1c569a15c Mon Sep 17 00:00:00 2001 From: Fovway Date: Sun, 19 Oct 2025 14:49:52 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=80=D1=83=D1=81=D1=81=D0=BA=D0=B8=D1=85=20?= =?UTF-8?q?=D1=81=D0=B8=D0=BC=D0=B2=D0=BE=D0=BB=D0=BE=D0=B2=20=D0=B2=20?= =?UTF-8?q?=D1=82=D0=B5=D0=B3=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RUSSIAN_TAGS_UPDATE.md | 61 ++++++++++++++++++++++++++++++++++++++++++ public/app.js | 4 +-- 2 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 RUSSIAN_TAGS_UPDATE.md diff --git a/RUSSIAN_TAGS_UPDATE.md b/RUSSIAN_TAGS_UPDATE.md new file mode 100644 index 0000000..7a544dc --- /dev/null +++ b/RUSSIAN_TAGS_UPDATE.md @@ -0,0 +1,61 @@ +# Обновление поддержки русских символов в тегах + +## Описание изменений + +Добавлена поддержка русских символов в тегах приложения NoteJS. Теперь пользователи могут использовать кириллические символы в тегах наряду с латинскими буквами и цифрами. + +## Измененные файлы + +### `/public/app.js` + +1. **Функция `extractTags`** (строка 45): + - Изменено регулярное выражение с `/#(\w+)/g` на `/#([а-яё\w]+)/gi` + - Добавлен флаг `i` для регистронезависимого поиска + - Добавлена поддержка русских букв (а-я, ё) + +2. **Функция `makeTagsClickable`** (строка 62): + - Изменено регулярное выражение с `/#(\w+)/g` на `/#([а-яё\w]+)/gi` + - Добавлен флаг `i` для регистронезависимого поиска + - Добавлена поддержка русских букв (а-я, ё) + +## Поддерживаемые символы в тегах + +- Латинские буквы (a-z, A-Z) +- Русские буквы (а-я, А-Я, ё, Ё) +- Цифры (0-9) +- Подчеркивания (_) + +## Примеры использования + +Теперь поддерживаются теги: +- `#работа` - русский тег +- `#проект` - русский тег +- `#важно` - русский тег +- `#work` - латинский тег +- `#задача1` - смешанный тег с цифрами +- `#meeting_встреча` - смешанный тег + +## Тестирование + +Создан тестовый файл `test_russian_tags.html` для проверки функциональности: +- Извлечение русских тегов из текста +- Преобразование тегов в кликабельные элементы +- Обработка смешанных тегов (русские + латинские символы) + +## Обратная совместимость + +Изменения полностью обратно совместимы: +- Существующие теги с латинскими символами продолжают работать +- Все функции фильтрации и поиска работают с русскими тегами +- Дизайн и стили тегов остались без изменений + +## Технические детали + +Регулярное выражение `/#([а-яё\w]+)/gi`: +- `#` - символ решетки в начале тега +- `[а-яё\w]+` - один или более символов из диапазона: + - `а-я` - русские строчные буквы + - `ё` - русская буква ё + - `\w` - латинские буквы, цифры и подчеркивания +- `g` - глобальный поиск (все совпадения) +- `i` - регистронезависимый поиск diff --git a/public/app.js b/public/app.js index 3c37637..8b96b43 100644 --- a/public/app.js +++ b/public/app.js @@ -42,7 +42,7 @@ function autoExpandTextarea(textarea) { // Функция для извлечения тегов из текста заметки function extractTags(content) { - const tagRegex = /#(\w+)/g; + const tagRegex = /#([а-яё\w]+)/gi; const tags = []; let match; @@ -59,7 +59,7 @@ function extractTags(content) { // Функция для преобразования тегов в заметках в кликабельные элементы function makeTagsClickable(content) { // Сначала находим все теги, которые еще не обернуты в HTML - const tagRegex = /#(\w+)/g; + const tagRegex = /#([а-яё\w]+)/gi; let result = content; let match;