# BIgo Reader - Обновления

## Новые возможности (v0.2)

### ✅ Обработка специальных токенов в тексте

Текст страниц книги теперь поддерживает интерактивные элементы:

1. **Пиктограммы диаграмм**: `@DIAGRAM1:Описание@`
   - Отображаются как кликабельные кнопки с иконкой доски Go
   - При клике открывается соответствующая диаграмма
   - Автоматически синхронизируется с combobox диаграмм

2. **Ссылки на страницы**: `pg123`
   - Отображаются как кликабельные кнопки с иконкой страницы
   - При клике осуществляется переход на указанную страницу
   - Номер страницы автоматически проверяется на валидность

### Пример использования

Текст в базе данных:
```
Рассмотрим @DIAGRAM1:Задача 1@ - простой случай тэсудзи.
После изучения диаграммы см. также pg45 для продолжения темы.
```

Отображение:
- "Задача 1" отображается как кнопка с иконкой доски
- "pg45" отображается как кнопка с иконкой страницы
- Обе кнопки кликабельны и выполняют соответствующие действия

### Автоматический список диаграмм

Если на странице есть диаграммы, но в тексте нет токенов @DIAGRAM@, 
то внизу текста автоматически добавляется список "Diagrams on this page:"
с кнопками для каждой диаграммы.

## Технические детали

### Модули

- **utils/text_tokens.py** - Парсинг токенов (regex patterns)
- **utils/icons.py** - IconManager для создания иконок
- **ui/main_window.py** - Обновлен метод _display_text()

### Регулярные выражения

```python
DIAGRAM_TOKEN_PATTERN = r"@DIAGRAM(\d+):([^@]*)@"
PAGE_LINK_PATTERN = r"\bpg(\d{1,4})\b"
```

### API

```python
# Создание иконки диаграммы
icon = self.icon_manager.create_diagram_icon()

# Создание иконки страницы
icon = self.icon_manager.create_page_icon()

# Переход на страницу
self._goto_page(page_number)

# Открытие диаграммы
self._open_diagram_from_button(diagram)
```

## Следующие шаги

1. ⏳ Интеграция PDF viewer
2. ⏳ Diagram Viewer integration
3. ⏳ Экспорт диаграмм (SGF, PNG, SVG)
