Structure Commander

by akudlay-ru
5
4
3
2
1
Score: 35/100

Description

This plugin has not been manually reviewed by Obsidian staff. Manage Markdown structure as a tree: move branches, change heading levels, fold sections, renumber outlines, export branches, and navigate long notes.

Reviews

No reviews yet.

Stats

stars
downloads
0
forks
1
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

Structure Commander v2.2.2

Плагин Obsidian для управления многоуровневой Markdown-структурой: перемещение веток, повышение и понижение уровня (включая преобразования между текстом, заголовками и списками), сворачивание/разворачивание, перенумерация, экспорт ветки, боковая панель и узкая панель инструментов над редактором.

Назначение

Плагин превращает заголовки документа в управляемое дерево. Удобно работать с длинными заметками, ТЗ, конспектами, документацией: переставлять разделы, менять глубину иерархии, быстро сворачивать/разворачивать ветки, экспортировать отдельные подразделы в самостоятельные заметки.

Команды

Все команды доступны через палитру 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
  1. Открыть Obsidian.
  2. Настройки → Community plugins → включить Structure Commander.

Совместимость

minAppVersion: 1.0.0. Тестировалось с актуальными десктопными сборками Obsidian. На мобильных Obsidian панель инструментов над редактором тоже работает, но физических хоткеев на телефоне нет — пользуйтесь верхней панелью и подменю ПКМ.