diff --git a/README.md b/README.md index 0946084..cac2387 100644 --- a/README.md +++ b/README.md @@ -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 панель инструментов над редактором тоже работает, но физических хоткеев на телефоне нет — пользуйтесь верхней панелью и подменю ПКМ.