Поддержка русских символов в тегах
This commit is contained in:
parent
350e8b3471
commit
6c6191480e
61
RUSSIAN_TAGS_UPDATE.md
Normal file
61
RUSSIAN_TAGS_UPDATE.md
Normal file
@ -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` - регистронезависимый поиск
|
||||||
@ -42,7 +42,7 @@ function autoExpandTextarea(textarea) {
|
|||||||
|
|
||||||
// Функция для извлечения тегов из текста заметки
|
// Функция для извлечения тегов из текста заметки
|
||||||
function extractTags(content) {
|
function extractTags(content) {
|
||||||
const tagRegex = /#(\w+)/g;
|
const tagRegex = /#([а-яё\w]+)/gi;
|
||||||
const tags = [];
|
const tags = [];
|
||||||
let match;
|
let match;
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ function extractTags(content) {
|
|||||||
// Функция для преобразования тегов в заметках в кликабельные элементы
|
// Функция для преобразования тегов в заметках в кликабельные элементы
|
||||||
function makeTagsClickable(content) {
|
function makeTagsClickable(content) {
|
||||||
// Сначала находим все теги, которые еще не обернуты в HTML
|
// Сначала находим все теги, которые еще не обернуты в HTML
|
||||||
const tagRegex = /#(\w+)/g;
|
const tagRegex = /#([а-яё\w]+)/gi;
|
||||||
let result = content;
|
let result = content;
|
||||||
let match;
|
let match;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user