Update README version to 2.3.0

This commit is contained in:
Андрей Кудлай 2026-05-15 11:29:17 +03:00
parent 1783d36e42
commit 8c9b368fec

178
README.md
View file

@ -1,4 +1,4 @@
# Structure Commander v2.2.2
# Structure Commander v2.3.0
Плагин Obsidian для управления многоуровневой Markdown-структурой: перемещение веток, повышение и понижение уровня (включая преобразования между текстом, заголовками и списками), сворачивание/разворачивание, перенумерация, экспорт ветки, боковая панель и узкая панель инструментов над редактором.
@ -9,179 +9,3 @@
## Команды
Все команды доступны через палитру `Ctrl+P`. Названия команд начинаются с `Structure Commander`.
| Команда | Действие |
|---|---|
| Ветка выше | переместить ветку выше (или, если есть выделение — переместить выделенные строки выше) |
| Ветка ниже | переместить ветку ниже (или, если есть выделение — переместить выделенные строки ниже) |
| Повысить (заголовок/текст/список) | универсальное «повышение» по цепочке: `а)``1)``1.``- ` → текст → H6 → H5 → … → H1 |
| Понизить (заголовок/текст/список) | универсальное «понижение» по цепочке: H1 → … → H6 → текст → `- ``1.``1)``а)` |
| Свернуть ветку | свернуть только текущую ветку |
| Развернуть ветку | развернуть только текущую ветку |
| Показать документ до Hx | свернуть всё, что глубже Hx |
| Показать всё | полностью развернуть документ |
| Скрыть/показать боковую панель | переключатель видимости панели структуры |
| Скрыть/показать панель инструментов | переключатель видимости тулбара над редактором |
| Поставить заголовку ветки H1…H6 | назначить уровень верхнему заголовку, всю ветку сдвинуть с сохранением иерархии |
| Перенумеровать структуру | пронумеровать заголовки и/или списки |
| Удалить нумерацию | убрать существующие префиксы нумерации |
| Emoji-цифры | заменить нумерацию на 1⃣, 2⃣, … |
| Исправить пропуски уровней | подтянуть уровни так, чтобы не было прыжков H1 → H3 |
| Экспорт ветки | сохранить текущую ветку в отдельный `.md` |
## Хоткеи по умолчанию
| Действие | Хоткей |
|---|---|
| Ветка выше | `Alt+Shift+↑` |
| Ветка ниже | `Alt+Shift+↓` |
| Повысить ветку | `Alt+Shift+←` |
| Понизить ветку | `Alt+Shift+→` |
| Свернуть ветку | `Alt+←` |
| Развернуть ветку | `Alt+→` |
Хоткеи `Alt+←/→` выбраны намеренно вместо `Ctrl+Shift+←/→`: последние конфликтуют со стандартным выделением текста по словам в любом текстовом поле.
Изменить хоткеи: `Настройки → Hotkeys`, ищите `Structure`. В настройках плагина есть кнопка `Открыть Hotkeys`.
## Панель инструментов над редактором
Над Markdown-редактором есть узкая горизонтальная панель:
```
[↑] [↓] [←] [→] [] [+] [Показать: H1 ▾] [H? ▾] [№]
```
| Кнопка | Действие |
|---|---|
| ↑ ↓ | переместить ветку выше/ниже |
| ← → | повысить/понизить (заголовок, текст или список) |
| + | свернуть / развернуть ветку |
| Показать: Hn ▾ | дропдаун с уровнями документа + «Показать всё». В тексте кнопки показан последний выбранный уровень |
| H? ▾ | уровень текущего заголовка; меню позволяет сменить уровень или назначить уровень верхнему заголовку всей ветки |
| № | перенумерация (ПКМ — подменю с другими режимами) |
В tooltip на кнопках показано действие и текущий хоткей. ПКМ по кнопке открывает меню с пунктом **«Назначить хоткей»** — это всплывающее окно, в котором достаточно нажать желаемую комбинацию клавиш (включая `Numpad1..9`, `F1..F12`, любые модификаторы), и плагин сразу её сохранит. Можно также очистить хоткей или открыть штатный редактор Obsidian.
Все выпадающие меню тулбара (`Показать ▾`, `Hn ▾`, ПКМ по `№`) показывают рядом с пунктами их текущие хоткеи, если хоткей назначен.
Кнопка `×` справа на тулбаре скрывает его. Вернуть тулбар: команда `Скрыть/показать панель инструментов над редактором` (или галка в настройках плагина).
Когда курсор стоит вне ветки заголовков, кнопки операций над веткой подсвечены приглушённо.
Если не нужна — отключается в настройках плагина.
## Контекстное меню редактора (ПКМ)
ПКМ в Markdown-редакторе добавляет в контекстное меню несколько верхнеуровневых пунктов с подменю:
```
Развернуть/свернуть ▸
├─ Развернуть Alt+→
├─ Свернуть Alt+←
└─ Показать/скрыть панель структуры
Показать до ▸ H1, H2, …, Показать всё
(только реально существующие в документе уровни)
Уровень | Перенос ▸
├─ Повысить Alt+Shift+←
├─ Понизить Alt+Shift+→
├─ Вверх Alt+Shift+↑
├─ Вниз Alt+Shift+↓
├─ Понизить до ▸ H2, H3, … (вся ветка с сохранением иерархии)
└─ Повысить до ▸ H1, H2, … (вся ветка с сохранением иерархии)
Нумерация ▸ Перенумеровать, Удалить, Emoji, Исправить пропуски
Экспорт ветки…
```
В подменю «Понизить до» / «Повысить до» — только те уровни, при сдвиге к которым ни один заголовок ветки не выйдет за пределы H1…H6.
`Повысить` / `Понизить` универсальны: работают и на заголовке (вся ветка), и на обычном тексте (текст → H6 / текст → список), и на маркированном списке (список → текст).
## Боковая панель
Команды:
- `Открыть боковую панель структуры справа`
- `Открыть боковую панель структуры слева`
- `Открыть боковую панель структуры снизу`
- `Скрыть/показать боковую панель структуры` (можно повесить хоткей)
В панели:
- поиск по заголовкам;
- фильтр глубины (`До H1` … `До H6`, `Все`);
- счётчик `видно / всего`;
- подсветка текущего заголовка (по позиции курсора в активном редакторе);
- кнопка `×` в шапке скрывает панель;
- ПКМ по пункту: `Перейти`, свернуть/развернуть, переместить выше/ниже, повысить/понизить, экспорт.
Уровень заголовка в панели передаётся **визуально** — отступом, жирностью, наклоном и цветом текста. Подписи `H1`, `H2` намеренно не дублируются в каждой строке.
Панель обновляется при смене активного файла, при изменении файла, при смене активного редактора. Чтение файла защищено от устаревших async-результатов и работает с debounce (≈220 мс).
## Экспорт ветки
Окно экспорта:
- куда сохранить: рядом с текущей заметкой / в указанную папку / спрашивать каждый раз;
- папка по умолчанию: `_Exports`;
- чекбокс «Открыть файл после экспорта» (по умолчанию выключен);
- чекбокс «Привести корневой заголовок к H1» — при экспорте сдвигает уровни так, чтобы корень стал H1;
- имя файла берётся из заголовка корня ветки, запрещённые символы вычищаются;
- при коллизии добавляется суффикс ` 2`, ` 3`, ` 4` …;
- последний выбор запоминается, `Enter` повторяет.
## Перенумерация
Окно перенумерации:
- область: весь документ / текущая ветка / выделенный фрагмент;
- что менять: только заголовки / только списки / заголовки и списки;
- стиль: `1. / 1.1.` или `1⃣ / 1⃣.1️⃣`;
- предпросмотр: первые 8 изменений в виде `было → станет`;
- сводка `Будет изменено строк: N`.
Применение — одной транзакцией. Курсор и позиция скролла сохраняются. `Ctrl+Z` откатывает всю операцию одним действием.
## Транзакционность
Все массовые изменения (перемещение ветки, повышение/понижение, нормализация, перенумерация, удаление нумерации, emoji-цифры) применяются одной транзакцией редактора — `Ctrl+Z` откатывает каждую операцию одним действием.
`moveBlock` переписан так, чтобы:
- корректно работать на первой и последней ветке;
- корректно работать на файле без финального перевода строки;
- не создавать лишних пустых строк;
- не склеивать заголовки.
## Ограничения
- Markdown поддерживает только заголовки **H1 … H6**.
- Плагин работает с **ATX-заголовками**: `#`, `##`, `###`, …
- **Setext-заголовки** (с подчёркиванием `===` / `---`) не поддерживаются.
- Заголовки внутри **fenced code blocks** (` ``` ` или `~~~`) игнорируются.
- Глобальные хоткеи Windows / macOS / других приложений изнутри Obsidian проверить нельзя — коллизии с системными или сторонними хоткеями плагин не покажет, только коллизии внутри Obsidian.
- При использовании `Alt+←/→` для свёртывания: на macOS `Alt` это `Option` — учитывайте раскладки клавиатуры.
## Установка
1. Закрыть Obsidian.
2. Скопировать папку `structure-commander` в `.obsidian/plugins/` хранилища.
3. Проверить структуру файлов:
```
.obsidian/plugins/structure-commander/manifest.json
.obsidian/plugins/structure-commander/main.js
.obsidian/plugins/structure-commander/styles.css
```
4. Открыть Obsidian.
5. `Настройки → Community plugins` → включить `Structure Commander`.
## Совместимость
`minAppVersion`: 1.0.0. Тестировалось с актуальными десктопными сборками Obsidian. На мобильных Obsidian панель инструментов над редактором тоже работает, но физических хоткеев на телефоне нет — пользуйтесь верхней панелью и подменю ПКМ.