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
99
downloads
0
forks
24
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.3.4

Structure Commander — плагин для Obsidian, который превращает Markdown-документ в управляемую структуру. Не просто «ещё одна панель заголовков», а рабочий инструмент для длинных заметок, технических заданий, конспектов, проектной документации и любых текстов, где разделы нужно двигать, сворачивать, повышать, понижать, нумеровать и экспортировать без ручной хирургии по строкам.

Если встроенная структура Obsidian показывает дерево, Structure Commander даёт с этим деревом работать: переставлять ветки, менять уровни, сворачивать нужные части, быстро показывать документ до выбранной глубины и выносить отдельные ветки в самостоятельные .md-файлы.

Последнее обновление: v2.3.4

Исправлено сохранение выделения после перемещения блока вверх/вниз: повторное перемещение выделенного блока больше не теряет строки. Также восстановлено свёрнутое состояние ветки после перемещения и синхронизирована версия в manifest.json и README.

Что умеет

  • Перемещать Markdown-ветки вверх и вниз вместе со всеми вложенными заголовками и текстом.
  • Перемещать выделенные строки вверх и вниз без потери выделения при повторных перемещениях.
  • Повышать и понижать уровень текущей ветки с сохранением внутренней иерархии.
  • Работать не только с заголовками, но и с обычным текстом, маркированными и нумерованными списками.
  • Сворачивать и разворачивать текущую ветку.
  • Показывать документ до H1, H2, H3, H4, H5 или H6.
  • Показывать только реально существующие уровни заголовков в меню «Показать до».
  • Полностью разворачивать документ через «Показать всё».
  • Перенумеровывать заголовки и списки.
  • Удалять нумерацию.
  • Заменять нумерацию на emoji-цифры.
  • Исправлять пропуски уровней, например H1 → H3.
  • Экспортировать текущую ветку в отдельную Markdown-заметку.
  • Показывать структуру в боковой панели.
  • Добавлять компактную панель инструментов над редактором.
  • Показывать текущие хоткеи прямо в tooltip, контекстном меню и меню тулбара.
  • Быстро назначать хоткеи из настроек плагина или через ПКМ по кнопке тулбара.
  • Добавлять файловые операции в контекстное меню vault.
  • Открывать файл/папку в проводнике, копировать путь и копировать файл в буфер.
  • Использовать режим отработки для файловых операций без фактического изменения файлов.
  • Выполнять Ctrl+Z/Ctrl+Y для файловых операций плагина.

Быстрый старт

Откройте Markdown-заметку, поставьте курсор внутрь нужного раздела и используйте хоткеи:

Действие Хоткей
Ветка выше Alt+Shift+↑
Ветка ниже Alt+Shift+↓
Повысить ветку Alt+Shift+←
Понизить ветку Alt+Shift+→
Свернуть ветку Alt+←
Развернуть ветку Alt+→

Эти же действия доступны через:

  • контекстное меню редактора;
  • панель инструментов над редактором;
  • боковую панель структуры;
  • палитру команд Ctrl+P;
  • ribbon-иконку Structure Commander.

Кнопка Structure Commander на левой панели Obsidian открывает правую боковую панель структуры.

Основная идея

Ветка — это ближайший заголовок выше курсора и всё его содержимое до следующего заголовка того же или более высокого уровня.

Пример:

# Раздел 1

Текст раздела.

## Подраздел 1.1

Текст подраздела.

## Подраздел 1.2

Текст подраздела.

# Раздел 2

Если курсор стоит внутри Раздел 1, команда «Ветка ниже» перенесёт весь блок Раздел 1 вместе с Подраздел 1.1 и Подраздел 1.2 ниже Раздел 2.

Если курсор стоит внутри Подраздел 1.1, команда работает только с этой вложенной веткой.

Контекстное меню редактора

ПКМ в Markdown-редакторе добавляет компактные верхнеуровневые пункты с подменю:

Развернуть/свернуть ▸
   ├─ Развернуть      Alt+→
   ├─ Свернуть        Alt+←
   ├─ Показать/скрыть панель структуры
   └─ Показать/скрыть панель инструментов

Показать до ▸
   ├─ H1
   ├─ H2
   ├─ H3
   ├─ ...
   └─ Показать всё

Уровень | Перенос ▸
   ├─ Повысить        Alt+Shift+←
   ├─ Понизить        Alt+Shift+→
   ├─ Вверх           Alt+Shift+↑
   ├─ Вниз            Alt+Shift+↓
   ├─ Понизить до ▸   H2, H3, H4, ...
   └─ Повысить до ▸   H1, H2, H3, ...

Нумерация ▸
   ├─ Перенумеровать…
   ├─ Удалить нумерацию…
   ├─ Emoji-цифры…
   └─ Исправить пропуски уровней

Экспорт ветки…

В меню «Показать до» выводятся только уровни заголовков, которые реально есть в документе. Если в файле есть только H2 и H4, меню не будет притворяться, что H1 и H3 существуют.

В подменю «Понизить до» и «Повысить до» показываются только допустимые уровни: плагин не даст сдвинуть ветку так, чтобы вложенные заголовки вышли за пределы H1…H6.

Контекстное меню файлов vault

ПКМ по файлу или папке vault добавляет пункт Файл ▸.

Файл ▸
   ├─ Открыть в проводнике
   ├─ Скопировать путь
   ├─ Скопировать файл в буфер
   ├─ Отправить ▸
   ├─ Режим отработки
   ├─ Ctrl+Z — отменить файловую операцию
   └─ Ctrl+Y — повторить файловую операцию

Режим отработки показывает план операции, но не меняет файлы.

Панель инструментов над редактором

Над Markdown-редактором появляется компактная панель:

[↑] [↓] [←] [→] [−] [+] [Показать: H1 ▾] [H? ▾] [№] [×]
Кнопка Действие
ветка выше
ветка ниже
повысить ветку / строку
понизить ветку / строку
свернуть текущую ветку
+ развернуть текущую ветку
Показать: Hn ▾ выбрать глубину показа документа и выполнить «Показать всё»
H? ▾ изменить уровень текущего заголовка или всей ветки
открыть перенумерацию
ПКМ по меню: перенумеровать, удалить нумерацию, emoji-цифры, исправить уровни
× скрыть toolbar

Tooltip у кнопок показывает действие и текущий хоткей. Если хоткей изменён в настройках Obsidian, tooltip подтянет актуальное значение.

Боковая панель структуры

Панель структуры похожа на штатную outline-панель Obsidian, но добавляет управляющие действия.

В панели есть:

  • поиск по заголовкам;
  • фильтр глубины: До H1, До H2, До H3, До H4, До H5, Все;
  • счётчик показано / всего;
  • подсветка активного заголовка по позиции курсора;
  • кнопка обновления;
  • кнопка закрытия панели;
  • контекстное меню для каждого заголовка.

ПКМ по заголовку в панели:

Перейти
Свернуть ветку
Развернуть ветку
Ветку выше
Ветку ниже
Повысить
Понизить
Экспорт ветки…

Уровни в панели передаются визуально: отступом, жирностью, наклоном и цветом. Подписи H1, H2, H3 не повторяются в каждой строке.

Экспорт ветки

Команда Экспорт ветки… сохраняет текущую ветку в отдельный Markdown-файл.

Окно экспорта позволяет выбрать:

  • сохранить рядом с текущей заметкой;
  • сохранить в указанную папку;
  • спрашивать каждый раз;
  • открыть файл после экспорта;
  • привести корневой заголовок экспортируемой ветки к H1.

Имя файла берётся из заголовка ветки. Запрещённые символы очищаются. Если файл уже существует, добавляется суффикс 2, 3, 4 и так далее.

Перенумерация

Окно перенумерации поддерживает три области:

  • весь документ;
  • текущая ветка;
  • выделенный фрагмент.

И три цели:

  • только заголовки;
  • только списки;
  • заголовки и списки.

Стили:

1. / 1.1. / 1.1.1.
1️⃣ / 1️⃣.1️⃣ / 1️⃣.1️⃣.1️⃣

Перед применением показывается предпросмотр: первые 8 изменений в формате было → станет и общее количество изменяемых строк.

Транзакционность и Undo

Массовые операции применяются одной транзакцией редактора:

  • перемещение ветки;
  • перемещение выделенного диапазона;
  • повышение/понижение;
  • нормализация уровней;
  • перенумерация;
  • удаление нумерации;
  • emoji-нумерация.

Ctrl+Z откатывает операцию одним действием.

Перемещение реализовано через атомарную перестановку строк. Оно не должно:

  • добавлять лишние пустые строки;
  • склеивать заголовки;
  • терять выделение строк при повторном перемещении;
  • разворачивать свёрнутую ветку после перемещения;
  • ломаться на первой или последней ветке;
  • ломаться на файле без финального перевода строки.

Ограничения

  • Поддерживаются ATX-заголовки: #, ##, ###, ####, #####, ######.
  • Markdown-заголовки H1…H6 — это предел.
  • Setext-заголовки с подчёркиванием === / --- не поддерживаются.
  • Заголовки внутри fenced code blocks (``` или ~~~) игнорируются.
  • Глобальные хоткеи Windows / macOS / других приложений не проверяются.
  • На мобильных устройствах физические хоткеи обычно бесполезны, используйте toolbar и меню.
  • Файловые действия с проводником, буфером файлов и SendTo зависят от desktop-среды и возможностей Electron/ОС.

Установка вручную

  1. Закрыть Obsidian.
  2. Создать папку:
.obsidian/plugins/structure-commander/
  1. Скопировать в неё:
main.js
manifest.json
styles.css
  1. Открыть Obsidian.
  2. Перейти в Настройки → Community plugins.
  3. Включить Structure Commander.

Состав релиза

Для релиза GitHub должны быть приложены отдельные assets:

main.js
manifest.json
styles.css

Не только Source code (zip) и не только архив. Obsidian Community Plugins проверяет именно отдельные release assets.

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

minAppVersion: 1.0.0.

Плагин не требует внешних сервисов, аккаунтов, сетевых запросов или отдельной базы данных. Работает внутри текущего vault и меняет файлы только по команде пользователя.

License

MIT