10 KiB
mdMenu
Небольшой WYSIWYG-подобный слой Markdown-форматирования для пользователей Obsidian.
English | Русский | Español | Deutsch | 中文 | 日本語
mdMenu - clean-room плагин с Markdown-панелью инструментов, вдохновленный идеей cMenu. Он добавляет к редактору мини WYSIWYG-подобный слой для частого форматирования, но ваши заметки остаются обычным plain Markdown. Заголовки, чекбоксы, callout-блоки, ссылки, подсветка, код, списки, жирный, курсив и несколько спокойных помощников остаются рядом с текстом, который вы пишете.
Закрепите панель снизу, показывайте ее рядом с выделением или перетащите в удобное место. Вы по-прежнему пишете Markdown, просто с меньшим числом походов в command palette, меньшим количеством запомненных шорткатов и чуть более прямым управлением форматированием.
Статус: готов к GitHub-релизам. Подача в каталог community plugins: в процессе.
Что уже работает
Markdown-действия
Встроенный реестр команд поддерживает:
- Жирный
- Курсив
- Зачеркнутый
- Подчеркнутый
- Подсветку
- Очистку форматирования
- Инлайн-код
- Блок кода
- Цитату
- Callout
- Чекбокс
- Маркированный список
- Нумерованный список
- Markdown-ссылку
- Wikilink
- Заголовки H1-H6
Панель по умолчанию не показывает все команды сразу. Она начинается с полезного набора для письма, а остальные действия доступны через пресеты или вкладку настроек.
Заголовки
Панель по умолчанию показывает H1, H2, H3 и H4 отдельными кнопками. H5, H6 и сгруппированное меню заголовков тоже доступны, если нужна другая раскладка.
Размещение панели
mdMenu поддерживает четыре режима размещения:
fixed: держать панель снизу рабочей области.selection: показывать рядом с выделенным текстом.cursor: размещать рядом с текущим выделением или курсором, когда браузер дает usable selection rectangle.manual: перетащить панель за ручку и сохранить позицию.
Режимы selection, cursor и manual удерживают панель внутри viewport даже в небольших окнах.
Настройка панели
Панель редактируется в настройках:
- Добавить любую встроенную команду, которой еще нет на панели.
- Найти и добавить любую доступную команду из палитры команд Obsidian.
- Удалить ненужные кнопки.
- Добавить визуальные разделители между группами.
- Переставить кнопки drag and drop.
- Переставить кнопки стрелками, если drag and drop неудобен.
- Сбросить панель к набору по умолчанию.
Разделители являются настоящими элементами панели, поэтому можно сделать группы вместо одной длинной линии кнопок.
Пресеты
Пресеты помогают быстро начать:
Writer: полный набор по умолчанию для обычного Markdown-письма.Zettelkasten: заголовки, чекбоксы, цитаты, подсветка, wikilinks и Markdown-ссылки.Code notes: инлайн-код, блоки кода, списки, callout-блоки и ссылки.Compact: более короткая панель со сгруппированными заголовками и компактным стилем.
После выбора пресета можно добавлять и удалять кнопки, добавлять разделители и менять порядок. Пресеты не блокируют панель, а только дают стартовую раскладку.
Стили
default: обычная плотность панели в стиле Obsidian.compact: кнопки меньше, когда заметке нужно больше места.
Оба стиля используют theme variables Obsidian, поэтому mdMenu следует светлым и темным темам без собственной цветовой системы.
Детали редактирования
- Действия панели возвращают фокус в активный Markdown-редактор.
- Пустые инлайн-действия ставят курсор между вставленными маркерами.
- Если выделенный текст уже обернут тем же инлайн-форматированием, повторное нажатие снимает обертку.
- Переключение чекбокса сохраняет отступы и обрабатывает пустые checked/unchecked task items.
- Callout превращает текущую строку в
> [!note]или убирает существующий callout marker. - Очистка форматирования снимает распространенные инлайн-обертки с выделения или текущей строки.
- Заголовки, чекбоксы и callout-действия применяются ко всем выделенным строкам.
- Переключение блока кода добавляет или снимает fenced code block.
Безопасность настроек
Сохраненные настройки нормализуются при загрузке. Если появятся старые или некорректные данные, mdMenu вернется к значениям по умолчанию вместо поломки панели.
Поддержка релизов
В репозитории есть локальная сборка релиза и tag-based GitHub release workflow. Релизные assets включают main.js, manifest.json и styles.css, с GitHub artifact attestations.
Настройки
Вкладка настроек позволяет:
- Включить или выключить панель.
- Выбрать режим размещения.
- Выбрать визуальный стиль.
- Сбросить ручную позицию панели.
- Применить пресеты Writer, Zettelkasten, Code notes и Compact.
- Добавить встроенные кнопки.
- Добавить команды из палитры команд Obsidian.
- Добавить визуальные разделители.
- Переставить кнопки drag and drop или стрелками.
- Удалить кнопки.
- Сбросить элементы панели к набору по умолчанию.
Установка из Community plugins
Установите mdMenu из официального каталога Obsidian Community Plugins:
mdMenu в Obsidian Community Plugins
Затем включите mdMenu в настройках community plugins.
Установка через BRAT
BRAT может установить mdMenu напрямую из GitHub releases:
- Установите плагин "Obsidian42 - BRAT".
- В BRAT добавьте beta plugin из
sandsaber/mdMenu. - Включите
mdMenuв настройках community plugins.
Установка из GitHub release
Скачайте эти файлы из последнего GitHub release:
main.js
manifest.json
styles.css
Положите их в vault:
.obsidian/plugins/mdmenu
Затем включите mdMenu в настройках community plugins.
Локальная сборка
Соберите release folder:
npm run build:dist
Скопируйте папку:
dist/mdmenu
в vault:
.obsidian/plugins/mdmenu
Затем включите mdMenu в настройках community plugins.
Разработка
Установить зависимости:
npm install
Запустить тесты:
npm run test
Запустить lint-проверки:
npm run lint
Запустить TypeScript-проверку:
npm run typecheck
Собрать root plugin bundle:
npm run build
Собрать release folder:
npm run build:dist
Запустить полный pre-release check:
npm run check
Privacy
mdMenu работает локально внутри Obsidian. Он не отправляет заметки, выделения, настройки или телеметрию.
Inspiration
mdMenu вдохновлен cMenu, более ранним плагином панели форматирования для Obsidian. Этот проект не копирует исходные файлы cMenu.
License
MIT. See LICENSE.
