♻ update

This commit is contained in:
gsr
2026-10-02 22:23:56 +03:00
parent 2afb37aa6e
commit 935f7503e5
+35
View File
@@ -1,3 +1,38 @@
# Changelog
## [0.5.8-beta] - 2026-10-03
### Добавлено
- **📑 Оглавление (Table of Contents)** — новая опция `include_toc` в API-запросе для генерации оглавления на основе заголовков H1–H3.
- **Локализация оглавления** — заголовок TOC автоматически переводится на 84 языка (определяется из контента): «Оглавление» для русского, «Table of Contents» для английского и т.д.
- **Кнопка «Оглавление» на фронтенде** — новый чип в панели параметров конвертации для включения/отключения TOC.
- **Отображение метаданных в UI** — блок с количеством слов, токенов и размером в байтах под превью конвертации.
- **Расширенный YAML Frontmatter** — добавлены поля: `language`, `words`, `tokens`, `reading_time`, `extracted_at`.
### Изменено
- Формат якорных ссылок в TOC изменён на универсальный `[Заголовок](<#Заголовок>)` — корректно работает в Obsidian, GitHub и стандартных Markdown-парсерах.
- Метаданные (`words`, `tokens`, `bytes`) вычисляются для чистого контента статьи **до** добавления title/frontmatter/toc и всегда возвращаются в ответе API.
---
## [0.5.7-beta] - 2026-10-03
### Добавлено
- **🔍 Автоматическое определение языка контента** — триграммный анализ через `whatlanggo` с предочисткой текста от Markdown-разметки, кода и URL-адресов.
- **Структура `Metadata`** в ответе API с полями `words`, `tokens`, `bytes` — возвращается для каждой успешной конвертации независимо от флагов.
- **Поле `language` в YAML Frontmatter** — определяется автоматически (например, `"Russian"`, `"English"`, `"German"`).
- **Метаданные времени чтения** (`reading_time`) и даты извлечения (`extracted_at`) в Frontmatter.
### Изменено
- Оптимизирована производительность генерации TOC: регулярные выражения и `strings.NewReplacer` вынесены на уровень пакета, используются `sb.Grow()` и прямой `WriteString` вместо `fmt.Fprintf`.
- Улучшена точность определения языка: анализ ограничен первыми 5000 символами, используется порог уверенности `> 0.05` вместо строгого `IsReliable()`.
- Вызов `detectContentLanguage` выполняется только один раз и только при необходимости (`include_toc` или `include_frontmatter`).
### Безопасность
- Очистка текста перед анализом языка предотвращает ложные срабатывания на технических фрагментах (URL, код, HTML-теги).
---
## [0.5.6-beta] - 2026-09-27
### Добавлено