Справка LightNote
Лёгкий редактор кода и заметок для Windows. Боковая панель перечисляет разделы и следует за тем, что вы читаете; кнопки Домой и Назад вверху окна возвращают к началу, а поле Поиск ищет по тексту этой справки (Enter — вперёд, F3 / Shift+F3 — навигация). Нажмите F1 в любой момент, чтобы открыть эту справку сразу на разделе текущего экрана.
Указатель
Редактирование
- Обзор
- Рабочее пространство и окна
- Редактор кода
- Markdown и вики-ссылки
- Диаграммы (Mermaid)
- Математика и химия (LaTeX)
- Календарь в заметке
- Нумерация и перекрёстные ссылки
- Цитаты и список литературы
- Граф связей
- Таблицы (Parquet, CSV, JSON, Excel)
- Область анализа: сводная таблица и несколько диаграмм
- PDF и изображения
- Изображения: пометки на снимке
- HTML-страницы (.html)
- Печать
- Zip как папка (.zip)
- Блоки (.lnb)
- Задачи (Kanban / Gantt)
- Пользовательская таблица (.lnd)
- Базы (сохранённые запросы по заметкам)
Инструменты
- Поиск по файлам и раздел «Ожидающие»
- Версионирование (упрощённый Git)
- Снимки состояния и резервные копии
- Просмотр изменений (контрольные точки)
- Сравнение файлов (diff)
- Запуск кода (F5)
- Терминал и ИИ-CLI
- ИИ-ассистент для выделенного текста (Ctrl+K / Ctrl+I)
- Сеансы ИИ
- Чат с ИИ
- Тестирование HTTP API (.lnh)
- Базы данных (.lnc)
- SSH-подключение (.lns)
- Безопасность: секретная фраза, PIN и защищённый Markdown
- Ежедневные заметки, быстрый захват и трей
- Вернуть старые заметки
- Ваши заметки на телефоне
- Запись аудио (голос, встреча) с транскрипцией ИИ
- Стикеры
- Календарь
- Палитра команд
Автоматизация (ИИ / скрипты)
Справочник
- Настройки и темы
- Портативный режим: данные рядом с программой
- Комбинации клавиш
- Лицензия, редакции и сообщество
Обзор
LightNote открывает папку как рабочее пространство и показывает дерево файлов слева, вкладки редактирования справа и строку состояния внизу. Небольшая полоска в верхней части боковой панели переключает разделы Проводник (дерево), Поиск, Версионирование (Git), История файлов и Ожидающие (TODO/FIXME и задачи из заметок).
Помимо кода и заметок, приложение открывает и редактирует множество форматов
«на своём месте»: таблицы (Parquet/CSV/JSON через DuckDB и Excel
.xlsx), PDF, изображения (включая анимированный GIF),
.zip как папку, блокноты Блоков (.lnb), доски
Задач (.lnt), пользовательские таблицы
(.lnd), подключения к базам данных (.lnc) и
SSH-подключения (.lns). Есть встроенный терминал,
глобальный поиск (ripgrep), упрощённое версионирование Git, интеграция с
ИИ-CLI, сервер MCP и командная строка (lnote) для
автоматизации.
Впервые здесь? Вводные материалы (приветственное рабочее пространство) остаются доступны в любой момент через Справка → Заново открыть приветственный тур.
Рабочее пространство и окна
Корневая папка и окно
Открытая корневая папка становится вашим рабочим пространством. Простое открытие ничего не создаёт; при закрытии LightNote записывает лишь небольшой файл сессии (открытые вкладки и положение). Рабочее пространство становится «проектом» — с собственной сохранённой конфигурацией — только когда вы включаете Версионирование (Git) или MCP в Инструменты → Настройки рабочего пространства.
Общие настройки применяются ко всему приложению; Настройки рабочего пространства — только к открытой папке. Конфигурация и состояние хранятся в центральной базе данных, а не разбросаны по папке.
LightNote работает как единственный экземпляр: открытие второй папки
использует тот же процесс (несколько окон, меньше памяти). Есть значок в
трее и лаунчер с полем поиска, показывающий рабочие пространства
(закрепите избранные вверху через контекстное меню) — см.
Ежедневные заметки и трей. Каждой вкладке можно
назначить цветовую метку через контекстное меню панели вкладок. Для
повторяющихся заметок создайте в корне рабочего пространства папку Modelos (или Templates) с
файлами .md и используйте Файл → Новая заметка из шаблона… Четыре научных шаблона уже готовы в том же списке — Научная статья, Конспект прочитанного, Лабораторный журнал и Протокол эксперимента: если выбрать один, .md запишется в эту папку и дальше он ваш.
Как упорядочить и писать шаблоны. Подпапки Templates становятся категориями: Работа/Встреча.md отображается как Работа/Встреча, и именно это имя папка записывает, когда принимает шаблон. Поля {{title}}, {{date}}, {{time}} и {{date:dd/MM/yyyy}} заполняются при создании (заголовок — это имя заметки; если переименовать её сразу после создания, ещё ничего в ней не написав, заголовок обновится), а внутри кода (между обратными кавычками или в блоке) ничего не заменяется, чтобы шаблон мог объяснять собственный синтаксис. В шаблоне они отмечены так же, как поля для заполнения, тем же фоном (в форматированном редакторе — сплошной рамкой синтаксиса), а в обычной заметке остаются без цвета, потому что там ничего не делают. Frontmatter шаблона переходит в заметку, кроме description:, который описывает сам шаблон, и citation-style:, который относится к папке. Шаблоны и промпты (папка Prompts/) — это инструменты, а не содержимое: они не попадают в поиск по смыслу и в контекст чата с ИИ, а объявленные в них теги и aliases: не учитываются — текстовый поиск по-прежнему находит и те, и другие. Когда шаблон открыт, полоса вверху редактора сообщает, что это шаблон, и предлагает Вставить поле, Показать синтаксис и Предпросмотр — заметку такой, какой она рождается сейчас. Библиотека шаблонов (в меню Инструменты; её же открывает Файл → Новая заметка из шаблона…) перечисляет их все с поиском по имени и описанию, группирует по подпапкам и показывает предпросмотр; там же создаётся новый шаблон — в том числе из открытой заметки, у которой заголовок и сегодняшняя дата становятся полями. В библиотеке есть ещё группа С сайта: шаблоны, которые публикуем мы, на языке интерфейса, и загружаются они только когда вы её открываете. Импорт это копия — шаблон становится вашим файлом в Templates, и после этого их ничего не связывает: исправленный на сайте шаблон не догоняет то, что вы уже импортировали, а ваш шаблон с тем же именем всегда побеждает. Без соединения библиотека говорит, что не смогла их загрузить, и продолжает показывать то, что уже есть на этом компьютере.
Поля для заполнения. Шаблон может оставить пропуски: {{ask:Тема встречи}} это свободное поле, а {{choice:черновик|правка|финал}} список. При создании они не подставляются — заметка рождается с ними, помеченными в тексте, и именно это заставляет их работать и в Заметке на сегодня, и в lnote, и в MCP, где нет экрана, чтобы что-то спросить. В заметке форматированный редактор показывает каждое поле как метку с пунктирной рамкой вокруг подписи (вопроса или первого варианта); щелчок выделяет поле целиком, и следующая клавиша его заменяет. На поле выбора щелчок открывает ещё и список: выбранный вариант заменяет поле, а закрытие списка без выбора оставляет поле выделенным, готовым принять что-то другое. При создании заметки курсор уже встаёт в первое поле; дальше Tab и Shift+Tab переходят от поля к полю — строка состояния показывает, в каком вы находитесь, — Alt+↓ открывает список поля выбора с клавиатуры, а Esc (или уход со строки поля) возвращает клавише Tab её обычную роль. В самом шаблоне переключатель Показать синтаксис включён: поля показаны как {{…}} со сплошной рамкой, и щелчок ставит курсор внутрь, чтобы исправить вопрос или варианты; если он выключен, шаблон выглядит как заметка, которая из него создаётся. Шесть полей есть также в меню / и в Вставить → Поля шаблона — только в файлах шаблонов. В текстовом редакторе поле показано так, как оно записано в файле, с цветными фигурными скобками, и проверка орфографии в него не заходит.
Создание файлов
Создание файла с выбором типа. Меню Создать (☰ Файл, кнопка Создать на панели действий или Создать в контекстном меню папки) предлагает Новую заметку (.md), Новый текстовый файл (.txt) и подменю Новый файл кода с самыми ходовыми языками. Во всех случаях файл сразу создаётся на диске с именем по умолчанию, а дерево открывает редактирование имени: выделяется только имя, поэтому ввод заголовка не стирает расширение. Чтобы принять предложенное имя, достаточно щёлкнуть в редакторе и начать писать. Для расширения, которого нет в подменю, создайте файл и переименуйте его (F2): смена расширения меняет представление — переименование .txt в .md заново открывает ту же вкладку как заметку, с чтением и оглавлением, а обратное действие возвращает редактор кода. Собственные расширения LightNote (.lnc, .lne, .lnq, .lnh, .lns и бандлы) — исключение: там расширение объявляет формат содержимого, поэтому переименование запрашивает подтверждение и отклоняется, пока вкладка открыта.
Новый файл, которым вы не воспользовались. Если закрыть вкладку только что созданного файла, не переименовав его, не сохранив и ничего не напечатав, он отправляется в Корзину, а строка состояния предлагает Отменить — так случайно нажатое Создать не оставляет мусора в папке. Любой признак того, что файл ваш, делает его постоянным: переименование, сохранение (Ctrl+S) или ввод чего угодно.
Черновик — это редактор Markdown. Вкладка Черновик (это не файл на диске) использует тот же текстовый редактор, что и заметки: подсветку разметки, проверку орфографии, автодополнение [[ и Ctrl+щелчок по викиссылкам и меткам. Чего в нём нет — то же, что и раньше: файла нет, значит нет ни автосохранения, ни режимов отображения; содержимое переживает закрытие приложения и исчезает, если закрыть вкладку.
Где создаётся новый файл. Создать всегда создаёт в отмеченной папке Проводника, и отмечена всегда ровно одна. В верхней части дерева находится строка корневой папки с именем рабочего пространства: это такой же элемент, как остальные — щёлкните по ней, чтобы вернуть назначение в корень. Выбор папки переносит отметку на неё; выбор файла отмечает папку, которая его содержит. В режиме Список, где папки не отображаются, отметка остаётся на корневой строке, и она показывает фактическое назначение. Контекстное меню корневой строки содержит Создать и Создать папку.
Отдельные файлы и избранное
Чтобы открыть отдельный файл, не превращая его в рабочее пространство, используйте пункт Открыть отдельный файл… (меню трея): в отдельном окне показывается дерево файлов, но без Git, MCP или переопределения темы. Если это включено в Настройки → Общие → Функции, LightNote встраивается в меню проводника Windows (для текущего пользователя, без прав администратора): помимо списка «Открыть с помощью», в контекстном меню появляются пункты «Открыть в LightNote» для любого файла и «Открыть как рабочее пространство LightNote» для папок (в Windows 11 — внутри Показать дополнительные параметры). Файлы открываются в том же отдельном окне; папки — как рабочее пространство.
Если выделить несколько файлов сразу в проводнике Windows — даже из разных папок — все они откроются в одном и том же отдельном окне, вкладка за вкладкой (а не по окну на файл). Вкладки этого окна запоминаются: закройте его и откройте снова — те же файлы вернутся. Поскольку здесь главное — вкладки, дерево файлов вначале свёрнуто: нажмите Ctrl+B (или кнопку вверху панели действий), чтобы показать его.
Возврат к сессии. Окно отдельных файлов везде называется Отдельные файлы — в том числе в заголовке окна, там, где остальные окна показывают имя рабочего пространства: так их можно различить в Alt+Tab. В меню в области уведомлений, в пункте Открыть, элемент получает суффикс (N вкладок), когда есть сохранённые вкладки — щелчок возвращает их все. Оно также занимает первую строку лаунчера, рядом с рабочими пространствами. А при повторном запуске LightNote возвращает всё, что было открыто при выходе: каждое окно в своей папке плюс окно отдельных файлов. Если вы предпочитаете открывать только последнюю использованную папку, измените это в Настройки → Общие → Интерфейс → При запуске открывать. Окно, закрытое до выхода, не восстанавливается: закрыть — это способ сказать «с этим пространством я закончил».
Избранное: на боковой панели есть раздел Избранное с тем, что вы закрепили (контекстное меню дерева или вкладки → Добавить в избранное), а также недавно открытые файлы. Закреплённое хранится по папкам как относительные пути, поэтому переживает перенос рабочего пространства.
Открыть вкладку в отдельном окне: в контекстном меню вкладки пункт
Открыть в новом окне заново открывает этот файл в отдельном окне (удобно держать
заметку рядом с кодом). Типы, зависящие от рабочего пространства (.lnc,
.lne, .lns и бандлы), отделить нельзя.
Проводник
Перемещение файла при открытой вкладке. Если перетащить файл в дереве в другую папку, вкладка переедет вместе с ним — она останется открытой и будет указывать на новое место. То же верно для вырезания и вставки и для перемещения целой папки — вкладки файлов внутри неё следуют за ней. С зажатой Ctrl перетаскивание копирует, а не перемещает. Наружу из LightNote перетаскивание ВСЕГДА КОПИРУЕТ: перетащите файл из дерева — или саму вкладку с панели вкладок — в папку Windows, в письмо или в чат Teams, и оригинал останется в вашем рабочем пространстве. Внутри программы вкладка остаётся просто вкладкой: перетаскивание её в другую панель перемещает вкладку, а проход с ней над редактором или деревом ничего не пишет и ничего не перемещает.
Множественный выбор. Дерево принимает Ctrl+щелчок (поштучно) и Shift+щелчок (диапазон) во всех трёх режимах отображения. Когда выбрано несколько элементов, контекстное меню действует на весь выбор: Вырезать и Копировать (совместимо с Проводником Windows), Удалить (одно подтверждение на всё), Дублировать, Копировать хеш, Сжать в .zip (один архив, каждый элемент под своим именем на верхнем уровне), Применить цвет, Избранное, Git (add/restore) и Копировать пути (по строке на элемент). Действия, осмысленные лишь для одного элемента — переименование на месте, Свойства, Открыть как, Преобразовать — становятся недоступными, причина указана в подсказке. Щелчок правой кнопкой внутри выбора сохраняет его; щелчок вне выбирает только тот элемент. Если выбрать папку и что-то внутри неё, операция не выполнится дважды: внутренний элемент отбрасывается.
Заглянуть, не открывая. Одиночный щелчок по файлу уже открывает вкладку предпросмотра (она переиспользуется и показана курсивом на панели вкладок). При переходе по дереву стрелками клавиша Пробел делает то же самое и возвращает фокус дереву, чтобы можно было двигаться по списку дальше.
Файловые инструменты. В контекстном меню Проводника есть подменю Файловые инструменты: Пакетное переименование (фильтр по расширению/шаблону/регэкспу + конвейер правил с предпросмотром и обнаружением конфликтов), Разделить файл (по строкам, размеру или регэксп-разделителю), Объединить файлы (с сохранением только 1-го заголовка CSV, по желанию), Дублировать, Копировать хеш (MD5/SHA-256) и Сжать в .zip / Извлечь сюда. Когда выбрано несколько элементов, Пакетное переименование и Объединение файлов получают именно выбранные элементы (а не обход папки) — и Объединение соблюдает порядок выбора.
Навигация в отдельном окне. Над деревом есть кнопки назад (Alt+←), вперёд (Alt+→) и вверх, а также кликабельная цепочка папок — каждый сегмент ведёт на свой уровень. Боковые кнопки мыши тоже работают как назад и вперёд. Чтобы ввести путь, щёлкните по пустому месту полосы или нажмите Ctrl+L; Esc отменяет и возвращает цепочку. Переключение вкладки также меняет показанную папку: поскольку отдельное окно собирает вкладки из разных папок, щелчок по вкладке переходит к её папке.
Меню и масштаб
Меню. Кнопка ☰ (вверху панели действий) содержит меню Файл, Правка, Вид, Окно, Инструменты, ИИ и Справка. Действия ИИ вынесены в отдельное меню (также доступно по кнопке с волшебной палочкой на панели действий). В Инструментах группы собраны в подменю: Выполнить (F5/F6/F8, линтер, отправить в терминал, макросы), Захват (заметка дня, быстрый захват, быстрая задача, запись звука, наклейки) и Рабочее пространство (настройка, снимок, экспорт копии, перенос папки) — последнее также в меню шестерёнки. Меню Создать одинаково во всех трёх местах: ☰ Файл, кнопка Создать и Создать в контекстном меню папки.
Масштаб в любом представлении. Уровень масштаба живёт в одном месте: группа − 100% + справа в строке состояния. Средняя кнопка открывает стандартный список — По ширине и По размеру окна (только там, где у содержимого есть собственный размер, например PDF и изображения), уровни 200%, 150%, 120%, 100%, 75% и 50%, а также Другой… — с отметкой на активном пункте. Сочетания клавиш одинаковы во всех представлениях с масштабом (код, заметки, PDF, изображения, HTML и таблицы): Ctrl++, Ctrl+−, Ctrl+0 для возврата к 100% и Ctrl+колесо мыши. В представлении без масштаба группа просто не появляется; в режиме подгонки надпись показывает Ширина или Окно вместо процента. Масштаб принадлежит вкладке, а не файлу: вкладка, которая простаивала и чью память освободили, — или которая вернулась при повторном запуске LightNote — открывается с тем масштабом, на котором вы её оставили; открытие файла заново начинается со 100%.
Редактор кода
Открытие, подсветка и форматирование
Текстовые/кодовые файлы открываются в редакторе (Scintilla) с подсветкой синтаксиса. Есть комментирование/раскомментирование (Ctrl+/), перемещение и дублирование строки, закладки (Ctrl+F2), список символов/функций, автодополнение по словам, направляющие отступов, перенос строк, масштабирование и обнаружение изменений файла на диске. При включённом версионировании на полях отмечаются строки, добавленные или изменённые с последней версии.
Есть также макросы (запись/воспроизведение последовательности правок клавишами Ctrl+Shift+R / F4, в Инструменты → Макросы), форматирование/причёсывание (Shift+Alt+F), таблица ASCII на панели инструментов вкладки (для вставки символов/псевдографики) и орфографический словарь (Hunspell). pt-BR и en-US встроены сразу; остальные языки скачиваются по требованию из таблицы в Настройки → Заметки и письмо → Орфография (по одной строке на язык, с кнопкой Скачать/Удалить). Чтобы следить за растущим лог-файлом, используйте кнопку Мониторинг (tail -f) на панели инструментов самой вкладки. Очень большие файлы (свыше ~1 МБ) открываются в виртуализированном облегчённом редакторе, который загружает только видимые фрагменты; его можно вызвать принудительно через Файл → Открыть в облегчённом редакторе…
Форматирование и линтинг: Shift+Alt+F форматирует документ с помощью внешнего форматтера для языка (black, prettier, clang-format, gofmt, rustfmt…), если он установлен, иначе используется встроенный форматтер (JSON/XML), работающий офлайн; F7 запускает линтер для языка (ruff, eslint, shellcheck, luacheck…) и подчёркивает проблемы в редакторе и на панели Проблемы (нижняя область, с переходом по клику). Оба инструмента имеют каталог с кнопкой Добавить в Настройки → Форматирование и → Линтеры, а также опции форматировать при сохранении / проверять при сохранении. Запустите файл на панели вывода клавишей F6 (фиксирует код завершения и длительность, можно остановить/перезапустить) или только фрагмент — клавишей F8.
Файл .md, открытый как код, возвращается к заметке одним щелчком. На панели редактора появляется Открыть как заметку, когда открытый файл — заметка. Это обратная операция к Открыть как → Код из меню дерева: вкладка возвращается к виду заметки с форматированным редактированием, чтением, оглавлением и свойствами. Кнопка появляется только когда переключение возможно: слишком большая заметка остаётся в редакторе кода.
Мультикурсор, история и определение
Дополнительные возможности редактирования: мультикурсор по
вхождениям (Ctrl+D, все сразу — Alt+F3), дублирование строки
(Ctrl+Shift+D), объединение строк (Ctrl+Shift+J), расширение/
сужение выделения по области видимости (Ctrl+Shift+Space /
Ctrl+Alt+Space), прямоугольное выделение (Alt+перетаскивание),
свернуть/развернуть все блоки, сниппеты (Ctrl+J, редактируются в
Настройки → Редактор), Перейти к символу в файле (#
в палитре) и в проекте (Ctrl+T или ##), история
навигации (Alt+←/→), дорожка «хлебных крошек» в верхней части
редактора, линейки колонок, подсветка парных скобок цветом,
автозакрытие/оборачивание парных символов и очистка при сохранении (обрезка
пробелов, финальный перевод строки) — всё в Настройки → Редактор.
Локальная история и буфер обмена: при каждом сохранении LightNote хранит версию файла (Файл → Локальная история…, с возможностью восстановления), независимо от Git. Ctrl+Alt+V открывает историю буфера обмена для вставки ранее скопированного элемента. Ctrl+Shift+T заново открывает последнюю закрытую вкладку; вкладки можно закрепить (контекстное меню) — это защищает их от освобождения при простое.
Перейти к определению: F12 или Ctrl+щелчок по идентификатору переходит к месту его определения в проекте; Shift+F12 находит его использования.
Мини-карта и операции с текстом
Мини-карта. У правого края редактора показывается миниатюра всего документа: она передаёт «форму» кода (цвета подсветки синтаксиса в уменьшенном виде) и отмечает видимую область. Щёлкните или перетащите по ней, чтобы перейти в любое место файла. Включается в Вид → Мини-карта или в Настройки → Редактор. Кнопка Мини-карта на панели самой вкладки кода (рядом с ASCII) включает и выключает её, не покидая редактор. Вдоль левого края миниатюры идёт полоса меток: синим — строки с закладкой (тот же кружок, что и на поле), янтарным — совпадения быстрого поиска. Так с одного взгляда видно, как они распределены по всему файлу, включая части за пределами экрана.
Операции с текстом. В меню Правка — и в контекстном меню редактора — есть подменю Строки (переместить, дублировать, удалить, отсортировать, объединить, перевернуть, пронумеровать) и Очистка (убрать пробелы, удалить пустые/повторяющиеся строки, табуляции ↔ пробелы). При выделении контекстное меню также предлагает Сохранить выделение в новый файл…: фрагмент записывается в файл рядом с текущим и открывается во вкладке (оригинал не меняется).
Markdown и вики-ссылки
Режимы отображения
Заметки .md открываются с редактором и чтением рядом
(настраивается). Разметка приглушается вне абзаца, где находится курсор, — так
страница выглядит как готовый документ.
Горячие клавиши: Ctrl+B/Ctrl+I — жирный/курсив, Ctrl+E переключает режим просмотра (редактор → разделённый → форматированный → чтение).
Меню /: в форматированном редакторе наберите / в начале строки (отступ не мешает) или после пробела — список вставки откроется у курсора. Набирайте, чтобы отфильтровать (/таблица, /выноска, /h1), выбирайте клавишами ↑/↓ и вставляйте по Enter; Esc или пробел закрывают список, а набранное остаётся текстом. В правом столбце показана разметка, которую пишет каждый пункт, — в следующий раз её можно набрать сразу. Внутри блока кода, формулы или ячейки таблицы меню не открывается.
Режим чтения: последний режим Ctrl+E — тот же экран, что и форматированное редактирование, но только для чтения, и именно поэтому он может показать то, чего нет в файле: оглавление по токену [TOC]. Список папки по токену [files] и текст заметок, включённых через ![[заметка]], показываются и в форматированном редактировании. Ничего из этого не записывается в .md: в файле остаётся токен, а созданный текст не принимает правки. В этом режиме одиночный щелчок открывает ссылки, викиссылки и метки (без Ctrl), а кнопки редактирования отключены — в том числе отменить, вырезать и вставить, которые раньше действовали на текстовый редактор вне экрана. Копировать по-прежнему работает и копирует то, что вы видите. Ctrl+F ищет в том, что на экране; строка заменить отключена, с причиной в подсказке, потому что замена здесь не дошла бы до файла.
Расчёты с единицами, в режиме чтения. Строка, оканчивающаяся на =, получает результат: 3,5 km / 2 s = показывается как 3,5 km / 2 s = 1,75 km/s. Файл не меняется — та же идея, что у [TOC] и оформленной цитаты. Он делает анализ размерностей, и именно этим оправдывает себя: 1 km + 1 s = отклоняется с указанием обоих, потому что калькулятор, который вернул бы там 2, был бы не хуже — он был бы лгущим, а в лабораторном журнале такая ошибка дожила бы до статьи. Складывать одну и ту же величину в разных единицах можно, и она переводится (2 h + 30 min =), а результат выходит в той единице, которую вы написали. Он знает приставки СИ, физические постоянные (c, h, k_B, N_A, g…), явный перевод (3 km in m, также to и ->) и неопределённость: (2,00 ± 0,05) m / (1,0 ± 0,1) s = распространяет погрешность и пишет только те знаки, которые позволяет измерение. Код и формулы остаются в стороне — внутри ограды ```, между обратными кавычками или в $…$ знак = в конце строки — это синтаксис чего-то другого. А строка, которая не является расчётом (Итого =), молча остаётся как есть. Он выключен по умолчанию: включите его в Настройки → Функции → Научное → Калькулятор с единицами.
Карточки с интервальным повторением. Заметка, получившая метку #flashcards, становится колодой: внутри неё каждая строка Вопрос::Ответ — это карточка, ::: создаёт ещё и обратную карточку, одиночный ? между двумя строками даёт многострочную карточку, а ==вот так== становится пропуском. Без метки ни в одной заметке нет карточек — именно это не даёт std::vector из заметки о программировании превратиться в карточку, которую вы не писали. Инструменты → Карточки → Повторить карточки открывает сессию: ответ остаётся скрытым, пока вы его не запросите (в этом и весь смысл — видеть оба сразу значит перечитывать, а перечитывание не запоминается), а на четырёх оценках написано, сколько времени покупает каждая. Расписание строит FSRS, тот же алгоритм, что и в Anki. Личность карточки — это ВОПРОС: исправление ответа не трогает расписание, а переписанный вопрос отправляет карточку на покой и начинает другую — и это правильно, потому что учите вы именно вопрос. История лежит в открытом файле рядом с заметкой (заметка.md.cards.ndjson): её можно вести в Git и читать любым редактором, ценой одного лишнего файла в папке. Экспорт в Anki пишет текстовый файл, который он импортирует, — расписание с ним не уходит, потому что текстовый импорт Anki его не принимает; оно остаётся в .ndjson.
Блоки кода
Блок кода выводится с подсветкой. Ограждение с указанным языком (```python) подсвечивается по токенам теми же цветами, что и редактор кода, включая тему кода, выбранную для этого окна. Действует в форматированном редактировании, в режиме чтения, в экспортированном файле и в ответах Спросить заметки. Ограждение без указанного языка остаётся одноцветным, как и язык без доступной подсветки: текст никогда не пропадает.
Свёртывание, закрепление и экспорт
Сворачивание разделов и закрепление заголовка работают и в форматированном режиме, и в режиме чтения. Ctrl+Shift+[ сворачивает раздел под курсором, Ctrl+Shift+] разворачивает его; щелчок по стрелке слева от заголовка делает то же самое, а Вид → Свернуть/развернуть все заголовки действует на ту поверхность, которая сейчас на экране. При прокрутке заголовки, ушедшие вверх, закрепляются в полосе сверху — щелчок по одному из них переходит к его разделу. Сворачивание — это состояние экрана: .md не меняется, а свёрнутый текст остаётся в файле.
Экспорт: PDF и HTML создаются из того же документа, что и режим чтения — получается файл ровно с тем, что вы только что прочитали, вместе с оглавлением, списком папки и включёнными заметками. HTML самодостаточен (локальные изображения встраиваются), а PDF содержит векторный текст, поэтому по нему можно искать. HTML выходит с семантической разметкой — заголовок с якорем, врезка в <aside>, таблица с шапкой, сноска с обратной ссылкой — и с формулами в MathML: это настоящий текст, он копируется, читается вслух и не размывается при увеличении. Тема зависит от формата: HTML сохраняет цвета, которые вы видите на экране, включая тёмную тему (у файла собственный фон); PDF всегда выходит на светлой бумаге, потому что он предназначен для печати и отправки — если тема содержимого тёмная, он печатается со светлой темой по умолчанию, а уже используемая светлая тема сохраняется. Word, OpenDocument, LaTeX, Typst и EPUB LightNote создаёт сам, ничего устанавливать не нужно. В .docx и .odt попадают заголовки, списки, таблицы, сноски, изображения, а формулы становятся редактируемыми — формулами Word в одном случае и объектами LibreOffice Math в другом; .tex получает полную преамбулу и компилируется в pdfLaTeX, XeLaTeX и LuaLaTeX. Если в папке есть библиография и раздел Академическое включён, .tex выходит с живой цитатой: [@ключ] становится \autocite, токен [bibliography] — \printbibliography, а рядом сохраняется refs.bib только с процитированными работами — приложение об этом сообщает. Компилируйте через biber. .typ — то же самое на Typst, который компилируется за секунды и не требует установленного дистрибутива LaTeX: формула едет в LaTeX через пакет mitex (скачивается при первой компиляции), а цитата выходит как @ключ с #bibliography. .epub — это электронная книга: одна глава на заголовок 1-го уровня, оглавление для навигации, изображения как файлы пакета и та же семантическая разметка, что и в HTML. .ipynb — это блокнот Jupyter: проза становится текстовой ячейкой, а блок на языке ядра — ячейкой кода, и только он: ячейка кода уходит в ядро, и диаграмма Mermaid, превращённая в ячейку, при первом же запуске выполнилась бы как Python. Ядро берётся из ключа kernel в свойствах заметки или из самого частого блока. Вывод не выдумывается: ячейки выходят без результата, потому что результат бывает от запуска — то же правило, которому уже следует импорт блокнота, отбрасывая сохранённые выводы. И есть Markdown для…: та же заметка на диалекте назначения — блок > [!NOTE] на GitHub, !!! note в MkDocs, :::note в Docusaurus, ::: {.note} в Pandoc, запись Obsidian или строгий CommonMark. Викиссылка становится относительной (кроме Obsidian), а комментарий %%…%% не публикуется, потому что он личный. Если Typst установлен (winget install --id Typst.Typst), сам экспорт предлагает Скомпилировать PDF прямо там; без него кнопка становится Установить Typst... и открывает руководство. Если курс или заказчик выдаёт шаблон Word, укажите его .docx в разделе Настройки рабочего пространства → Цитаты и список литературы → Шаблон Word: экспортированный файл выходит со стилями, форматом бумаги, полями и колонтитулом шаблона. Отдельная заметка может выбрать другой, объявив reference-docx: shablon.docx в своих свойствах. Все три формата строятся из Markdown режима чтения — со сформатированными цитатами и пронумерованными рисунками, — а то, что не удалось перенести, называется в конце экспорта. Диаграмма Mermaid и химическая структура входят изображением — в .docx, .odt и EPUB на светлой бумаге, в HTML в цветах экрана; только через lnote, у которого нет окна, чтобы их нарисовать, они выходят блоком кода. Есть и Размеченный текст для…: reStructuredText, AsciiDoc, Org mode, MediaWiki и простой текст — их тоже пишет сам LightNote. Каждый получает свою родную конструкцию, а не подражание: блок становится .. note:: в Sphinx, [NOTE] в AsciiDoc и #+begin_note в Org; формула — .. math::, latexmath:[], чистым LaTeX и <math>; сноска — footnote:[] и <ref>. В простом тексте разметки нет вовсе — таблица выходит выровненной по столбцам, чтобы поместиться в письмо или в сообщение коммита. Чего в формате нет, говорится в конце: в ядре MediaWiki нет такого блока (он становится цитатой с подписью полужирным), а в reStructuredText нет зачёркивания. Чтобы унести фрагмент, не записывая файл, в контекстном меню редактора есть Копировать выделенный фрагмент как (или Копировать заметку как, если ничего не выделено): форматированный текст для вставки в Word, Google Документы или письмо, Markdown для GitHub, LaTeX и Typst. LaTeX и Typst содержат только основной текст — без преамбулы и заголовка, — потому что в документе назначения они уже есть; пакет, который нужен фрагменту, и цитата, зависящая от библиографии документа назначения, указываются в строке состояния, а комментарий %%…%% тоже не переносится. RTF находится в Другие форматы (pandoc) и идёт через pandoc — отдельную программу (winget install --id JohnMacFarlane.Pandoc). Без неё этот пункт выключен, и рядом сказано почему, а Установить pandoc... в том же подменю открывает руководство и выполняет установку. Если pandoc уже установлен в другом месте, укажите файл через Уже установлено: указать на диске... в руководстве или в разделе Настройки → Инструменты кода → Внешние программы.
Экспорт с параметрами... — первый пункт меню экспорта; меню вкладки и Файл → Экспортировать заметку — одно и то же меню. Он показывает все форматы с поиском по названию, назначению и расширению (wiki находит MediaWiki, sphinx — reStructuredText) и только те параметры, что относятся к выбранному формату: Оглавление в начале, если в заметке ещё нет [TOC]; Язык документа, от которого зависят переносы и подписи, создаваемые самим документом; Цитаты живые или разрешённые в тексте — для LaTeX и Typst; Шаблон Word с флажком, делающим его шаблоном папки по умолчанию; Формулы HTML и EPUB в MathML или изображением — для старых читалок или HTML, вставляемого в письмо; Бумага PDF, A4 или Letter; и Сразу скомпилировать PDF в Typst. Параметр, который относится к формату, но недоступен, отключён с объяснением причины — живые цитаты без библиографии в папке, — а формат, зависящий от отсутствующей программы, тут же предлагает её установить. Последний выбор запоминается для каждой папки, и диалог открывается таким, каким вы его оставили; прямые пункты меню по-прежнему экспортируют с заводскими значениями, чтобы выбор, сделанный недели назад, не менял файл, создаваемый сочетанием клавиш. Написанный в заметке [TOC] работает во всех форматах: он становится оглавлением в Word и LibreOffice (Word обновляет его при открытии), \tableofcontents в LaTeX, #outline() в Typst и списком ссылок в HTML и Markdown. В форматированном тексте команды Копировать выделенный фрагмент как формула и диаграмма уходят изображением, с исходным LaTeX в альтернативном тексте: неизвестно, куда текст будет вставлен, и одинаково в Word, Google Документах и письме выглядит только изображение — если нужна редактируемая формула, экспортируйте .docx или .odt.
Папка целиком тоже выходит: Файл → Экспорт папки... (или правый щелчок на папке в дереве) превращает её заметки в сайт HTML — по странице на заметку, с указателем, если ни одна заметка ещё не стала index.html, — в набор .docx или .odt либо в дерево Markdown на диалекте назначения. Структура подпапок сохраняется, ссылки и викиссылки между заметками начинают указывать на вышедшие файлы (в Word и LibreOffice тоже, из документа в документ), а изображения и вложения, которые живут внутри папки, идут вместе с ними, на то же место. То, что вне её, не копируется: остаётся так, как вы написали, и отчёт в конце перечисляет каждый случай вместе со ссылками без цели. Папка назначения должна быть пустой — или вы отмечаете Заменять файлы с тем же именем — и не может содержать экспортируемую папку. Без окна: lnote folder-export --path . --format html --out site и инструмент folder_export по MCP; там трансклюзия, [files] и нумерация рисунков не разрешаются, потому что разрешает их окно.
Форматированное редактирование
Форматированное редактирование (WYSIWYG): четвёртый режим показывает
заметку такой, какой она получается — заголовок кеглем заголовка, список с
маркером, таблицу сеткой и изображение прямо в тексте — а не разметку. Файл
остаётся тем же .md: его пишет LightNote, а не Qt, и поэтому жирный,
курсив, вики-ссылки, трансклюзия и врезки переживают путь туда и обратно. Войти в
режим и выйти без правок не меняет в файле ни байта. Панель предлагает только то,
что представимо в Markdown — заголовок, жирный, курсив, зачёркнутый, код, списки
(с флажком задачи), цитату, ссылку, таблицу и горизонтальную линию;
выравнивание, отступ и размер шрифта остались за бортом, потому что потерялись бы
при сохранении.
Внутри таблицы Tab переходит по ячейкам и на последней
создаёт следующую строку.
Enter в пустом месте справа от таблицы — туда попадает курсор при
щелчке справа от строки — добавляет строку в конец, а курсор ставится в
первую ячейку.
Внутри ячейки Enter переносит строку на месте (в файл это уходит как
<br> — единственная форма, которую принимает таблица
Markdown), а Ctrl+Enter создаёт строку ниже, курсор остаётся в том же
столбце.
При наведении на таблицу появляются неброские рукоятки: слева от строки —
пара стрелок, которая двигает её вверх или вниз (её же можно перетащить,
чтобы отнести строку в другое место); над столбцом — пара, которая двигает его
вбок; и + на нижней и на правой границе, добавляющие строку и столбец.
Первая строка — заголовок, и она не двигается. Всё это есть и в контекстном
меню, в разделе Таблица. Там же есть Удалить таблицу — безопасный
способ убрать её целиком.
В рамке (<details> или :::) последняя строка
закрывает рамку и не удаляется: именно она не даёт содержимому снизу попасть
внутрь. Чтобы убрать рамку, сохранив текст, воспользуйтесь пунктом Убрать
рамку в контекстном меню. Enter всегда создаёт строку. В пустом пункте
списка он выходит из списка, не добавляя строки — как в Word, — а в пустом абзаце
создаёт пустую строку. Одна пустая строка в файле — это обычное разделение
абзацев, и она не показывается как пустая строка; со второй показывается и
возвращается в файл ровно такой, какой вы её написали.
Перетаскивание правого края изображения меняет его
размер, и ширина уходит в файл как . На панели двенадцать элементов: полужирный, курсив и заголовок напрямую, плюс два меню, которые делят остальное по назначению — Формат действует на уже написанное (разметка, списки, цитата, выравнивание таблицы и операции Текст), а Вставить создаёт новое (ссылка, изображение, таблица, блок, диаграмма, формула, выноска). Форматирование таблицы и меню Текст по-прежнему принадлежат текстовому редактору: здесь они выглядят отключёнными, с указанием причины. Приглушение разметки перешло на кнопку Отображение, рядом с колонкой чтения и прокруткой как у пишущей машинки, которые работают во всех четырёх режимах. А меню Вставить предлагает здесь то же, что и в текстовом редакторе — выделение, верхний индекс, нижний индекс, викиссылка, сноска, выноска (callout), сворачиваемый блок, оглавление и список определений —, всё, что этот режим уже умел показывать и не умел создавать.
То, что показывает режим чтения, теперь показывает и форматированное редактирование. Эмодзи :fire: отображается как 🔥, ==выделенный== текст — как жёлтая пометка, ^2^ и ~2~ — как верхний и нижний индекс, #метка — как пилюля, а голый веб-адрес — как ссылка. Файл сохраняет записанную форму: открытие заметки ничего не переписывает. Правка внутри отображённого фрагмента сохраняет разметку — если печатать посреди выделения, оно остаётся выделением, — а то, что набрано сразу после него, остаётся снаружи. Комментарий %%…%% остаётся видимым, приглушённым: спрятать его значило бы сделать его невидимым и нередактируемым.
Выноски становятся рамкой и в форматированном редактировании. Цитата, начинающаяся с > [!NOTE] — или [!TIP], [!IMPORTANT], [!WARNING], [!CAUTION] — показывается с цветной полосой и заголовком, как в режиме чтения: маркер уступает место названию типа или вашему собственному заголовку, если написать > [!TIP] Мой заголовок. В файле остаётся записанный маркер, а правка заголовка сохраняет тип выноски. Названия блоков из Obsidian и MkDocs тоже распознаются: [!SUCCESS], [!ABSTRACT], [!FAILURE], [!QUESTION] и их синонимы (tldr, missing, faq) попадают в ближайший блок, поэтому заметка оттуда сразу выглядит цветной — а при экспорте каждый формат получает то название, которое он знает.
Это режим по умолчанию при новой установке. У тех, кто уже пользовался LightNote, сохраняется прежний режим; чтобы изменить его, откройте Настройки → Markdown → Вид по умолчанию при открытии заметки. Щелчок по заголовку в Структуре выполняет переход внутри текущего режима, не выводя вас из форматированного редактирования или чтения.
Выравнивание столбца таблицы. Когда курсор внутри таблицы, контекстное меню предлагает Таблица → Выровнять столбец: По левому краю, По центру, По правому краю или По умолчанию. Выравнивание относится к всему столбцу — именно так его представляет Markdown — и попадает в файл в строку-разделитель (:--, :-:, --:); По умолчанию возвращает к ---. Галочка в меню показывает, что действует сейчас: на экране столбец --- и столбец :-- выглядят одинаково.
Структура показывает то, что на экране. Список заголовков берётся с той поверхности, которую вы сейчас видите: в форматированном редакторе только что набранный заголовок появляется сразу, не дожидаясь, пока текст дойдёт до текстового редактора; в режиме чтения в него входят и заголовки заметок, вставленных через ![[заметка]], — они тоже часть того, что вы читаете. Щелчок по пункту в обоих случаях ведёт к нужному заголовку. А в режиме разделённого экрана прокрутка теперь двусторонняя: прокрутка области чтения тянет за собой текстовый редактор — как это уже работало в обратную сторону.
Разметка становится форматом прямо при вводе. Если написать
**тест**, применится жирный, а звёздочки исчезнут; то же с
*курсивом*, ~~зачёркнутым~~, `кодом` и
формами с подчёркиванием. В начале строки # …
###### становятся заголовками, - и
1. — списками (введённое число задаёт начало),
- [ ] — задачей с флажком, > — цитатой, а
одиночное --- по Enter — горизонтальной линией. Маркеры, которые
что-то рисуют, срабатывают уже на пробеле; только заголовок ждёт первой буквы,
потому что пустой заголовок ничего не показал бы. Ctrl+Z отменяет только преобразование и возвращает
разметку как есть — выход для того, кто действительно хотел звёздочки. Вставка тоже преобразует: вставленный текст с разметкой приходит уже оформленным, без символов. Здесь правило осторожнее, чем при вводе — срабатывает только однозначная разметка, — потому что при вставке вы не видите, как складывается результат: так фрагмент кода, полный * и _, остаётся кодом. Внутри блока
кода не преобразуется ничего: там разметка и есть предмет. Чтобы выключить всё:
Настройки → Общие → Преобразовывать разметку при вводе. Из Word, Google Документов или со страницы приходит текст со структурой: заголовок, список (включая список Word, который внутри вообще не список), таблица, ссылка, код в строке и блок кода с языком. Шрифт, размер и цвет источника остаются за бортом: Markdown их не представляет, а сохранённые они оставили бы синий фрагмент Arial, исчезающий при сохранении. Картинка, пришедшая вместе с текстом, становится вложением заметки, если Word или браузер оставили её во временной папке, которая очищается сама; картинка со ссылкой на интернет остаётся ссылкой, а её контекстное меню предлагает Скачать изображение в рабочее пространство.
Изображения, ссылки и викиссылки
Изображение и ссылка. Вставить изображение можно тремя путями:
Вставка → Изображение… на панели, ввести  или
перетащить файл в заметку — изображение вставляет изображение, заметка
.md вставляет [[вики-ссылку]], а любой другой файл
превращается в кликабельную ссылку, подписанную именем файла, — а если
перетащить несколько сразу, каждый окажется на своей строке. Сохранённый путь по
возможности
относителен папке заметки, чтобы заметка продолжала работать после
переноса хранилища. Адрес ссылки в тексте не виден (видна подпись),
поэтому он показывается в строке состояния при наведении, а Ctrl+клик
открывает его: веб-адрес — в браузере, локальный путь — в LightNote.
Изменить готовую ссылку: поставьте в неё курсор и нажмите кнопку
Ссылка (или Изменить ссылку… в контекстном меню) — окно откроется с
заполненными текстом и адресом. В контекстном меню на ссылке есть и
Копировать адрес ссылки, и Удалить ссылку — она снимает ссылку,
оставляя текст. На [[вики-ссылке]] есть Открыть заметку и
Скопировать цель, на #теге — Найти тег и
Скопировать тег. На изображении есть Альтернативный текст… (в
форматированном режиме он не виден, но уходит в файл и в поиск) и, после
перетаскивания рукоятки, Исходный размер, который возвращает изображению
его собственный размер.
На изображении с веб-адресом появляется Скачать изображение в рабочее
пространство: файл попадает в Вложения/ рядом с заметкой, и
заметка указывает на него — иначе она зависела бы от того, что этот URL всё ещё
существует. И есть самый короткий путь: выделите текст и вставьте адрес — он
станет [текст](адрес), а не заменит выделение. Работает в обеих
поверхностях редактирования. Пока изображение не загружено, картинка из веба показывается как
карточка с адресом и путём в меню — LightNote не выходит в сеть, чтобы
нарисовать заметку, а раньше там оставалась пустая рамка «битой» картинки, ничего
не поясняя.
И разметку можно снять. В меню Формат пункты
Выделение, Верхний индекс и Нижний индекс показаны
отмеченными, когда курсор внутри одного из них, и щелчок там снимает
разметку, а не применяет её ещё раз. С клавиатуры есть быстрый путь: поставьте
курсор в конец форматированного фрагмента и нажмите
Ctrl+Shift+Backspace — разметка вернётся буквально, без одного символа:
жирный станет **жирный* обычным текстом, а если дописать
недостающий разделитель, форматирование соберётся снова. Работает для жирного,
курсива, зачёркнутого, кода, выделения, верхнего и нижнего индексов. Один
Backspace удаляет букву — там, как и везде.
Диаграмму можно править, не выходя из заметки. В форматированном
редакторе диаграмма Mermaid и формула $$…$$ показываются
нарисованными; чтобы добраться до исходника, поставьте на них курсор и
нажмите Ctrl+Enter — или выберите Редактировать этот блок… в
контекстном меню. Нижняя панель показывает текст, пока она открыта, заметка
заблокирована, а закрытие (✕, Esc, Ctrl+Enter, щелчок по заметке) применяет
изменения: путь назад — Ctrl+Z. В том же меню пункт Извлечь в новую заметку…
записывает выделенный фрагмент в соседнюю заметку и оставляет на его месте
[[wikilink]] — разметка уходит вместе с ним, поэтому заголовок, список
и таблица попадают в новую заметку целиком. В поле показано только содержимое: строки ```mermaid и ``` (или $$) стали переключателем типа в заголовке панели, который к тому же меняет диаграмму на формулу или блок кода. Enter сохраняет отступ строки — в языке с отступами вроде Mermaid это действие каждой строки. А контекстное меню блока предлагает Копировать код Markdown и Копировать изображение — код вставляется в любой редактор Markdown и снова рисуется, изображение вставляется в письмо или чат. Оба пункта работают и в режиме только для чтения.
Попросить изменение у ИИ. Когда панель блока открыта, кнопка ИИ в заголовке открывает строку, где вы пишете, что изменить — «добавь путь ошибки, который возвращается к началу», «замени сумму на интеграл» — и Enter отправляет. Рядом с полем кнопка показывает, какой ИИ ответит: её меню меняет помощника только для этого блока, не трогая ваш ИИ по умолчанию, и содержит Посмотреть, что будет отправлено. Заглянуть стоит, потому что ИИ получает блок, заголовок и раздел заметки и текст вокруг — именно это позволяет попросить, чтобы диаграмма отражала написанное там. Ответ попадает в поле, и рисунок перерисовывается сразу: Ctrl+Z возвращает то, что вы написали сами. LightNote проверяет ответ собственным отрисовщиком и, когда он не рисуется, просит одно исправление, называя модели отвергнутую строку и команду — если и это не помогло, ответ всё равно записывается, а причина остаётся на панели, чтобы вы поправили две строки вручную. Кнопка появляется только у диаграммы, формулы и химической структуры.
Ссылка на раздел и метки из свойств.
[[Заметка#Раздел]] открывает заметку на этом разделе — якорь
называет текст заголовка, — а ![[Заметка#Раздел]] вставляет
только его (до следующего заголовка того же или более высокого уровня,
вместе с подзаголовками). Якорь, который не совпал ни с одним заголовком, говорит
об этом в строке состояния, а вставка остаётся как написана: подставить туда всю
заметку значило бы молча выдать другое. И tags: из фронтматтера
теперь считаются метками заметки, в обоих написаниях (tags: [a, b] и
список отдельными строками) — они попадают в Базы, в поиск по метке и в то, что
видит ассистент, вместе с #метками из текста. Без имени заметки якорь указывает на неё саму: [[#Вывод]] переходит к этому разделу, не открывая вкладку, а ![[#Вывод]] переносит раздел туда, где вы находитесь. И якоря вкладываются: [[Диссертация#Метод#Выборка]] — это Выборка внутри Метода, а не первая с таким названием в заметке. Третья форма указывает на блок: строка, заканчивающаяся на ^id (или ^id отдельной строкой сразу под блоком), — это цель [[Заметка#^id]]. LightNote не создаёт такие идентификаторы — он лишь приводит вас к тому, что вы написали. А якорь цели, которая не является заметкой, — это адрес внутри неё: [[статья.pdf#page=3]] открывает PDF на этой странице.
Панель меток. В полосе боковой панели есть раздел Метки: дерево всех #меток ваших заметок, вложенное по / (#project/alpha и #project/beta становятся ветвями project), а рядом — число заметок, считанное по заметкам, а не по вхождениям. При выборе метки внизу перечисляются заметки с ней (родитель показывает и заметки своих ветвей); двойной щелчок открывает заметку. Панель читает индекс, поэтому видит оба источника: #метки в тексте и tags: во фронтматтере. Ctrl+щелчок по метке внутри заметки открывает эту панель с уже выбранной меткой — раньше открывался текстовый поиск по #метка, который не находит заметку, объявившую метку во фронтматтере. Для буквального вхождения в тексте по-прежнему служит глобальный поиск.
Вики-ссылки: введите [[, чтобы получить автодополнение
по заметкам рабочего пространства; ссылка сама закрывается символами
]]. Удерживая Ctrl и щёлкнув по [[заметке]],
можно открыть соответствующую заметку. Панель Связи показывает связи
между заметками. Встроенный рисунок из Obsidian тоже виден: ![[фото.png]] рисуется как изображение, а ![[фото.png|300]] учитывает ширину. В файле остаётся то, что вы написали, — путь к изображению никогда не записывается вместо токена. А вложение, которое не является изображением, становится карточкой: ![[статья.pdf#page=3]], ![[лекция.ogg]] и ![[карта.canvas]] показываются как рамка с именем файла, по которой можно щёлкнуть, — и PDF открывается на той странице, которую вы указали. У .canvas и .base из Obsidian есть ещё одна строка: файл остаётся в папке, а LightNote его не рисует. Цель, которой не существует, остаётся такой, как вы её написали: карточка там обещала бы потерянный файл. Посреди предложения рисунок показывается так же, а вложение становится просто именем файла, которое открывается Ctrl+щелчком: карточка там разорвала бы абзац. Та же заметка под другим именем: напишите aliases: [Выборка, Метод выборки] в свойствах заметки, и [[Выборка]] будет её открывать — псевдоним попадает и в автодополнение [[. Файл с таким именем всегда побеждает псевдоним. Псевдонимы берутся из индекса папки, который приложение перестраивает в фоне при открытии рабочего пространства: только что написанный aliases: сработает на следующем проходе, а не в ту же секунду.
Блоки, сноски и расширенная разметка
Расширенное чтение: блоки кода в оградках отображаются в
рамке с меткой языка и ссылкой копировать; ~~зачёркнутый~~
и ==выделенный== текст отображаются корректно; а
колл-ауты в стиле GitHub (> [!NOTE],
[!TIP], [!WARNING], [!IMPORTANT],
[!CAUTION]) превращаются в цветные рамки. Теги
#хэштег подсвечиваются и по Ctrl+клику открывают поиск по
этому тегу; блок YAML-метаданных (frontmatter) в начале файла
(---) подсвечивается. На панели инструментов вкладки есть кнопка
экспорта заметки в PDF/HTML, переключаемая по центру
колонка чтения и режимы отображения заметки. Режим
Zen (F11) и прокрутка в стиле печатной машинки помогают
писать без отвлечений.
Сноски переходят в обе стороны. Ссылка [^1] показывается как надстрочный номер, и Ctrl+щелчок по ней ведёт к определению; в определении маркер [^1]: остаётся видимым — это цель перехода, и его нужно видеть, чтобы понимать, какую сноску вы правите, — а Ctrl+щелчок по нему возвращает к ссылке. В отличие от многих просмотрщиков Markdown, редактор не перенумеровывает сноски и не переносит определения в конец: порядок в файле ваш. Встроенная (inline) запись Obsidian и Pandoc — ^[текст сноски] — тоже отрисовывается: текст пишется там, где сноска вызывается, а в режиме чтения появляется пронумерованным в конце. В файле остаётся именно то, что вы написали, а при экспорте это становится настоящей сноской в Word, LaTeX, Typst и EPUB.
Выноска MkDocs (!!! note с телом, сдвинутым на 4 пробела) сохраняется ровно так, как написана, в форматированном редактировании: именно отступ делает тело частью выноски, поэтому её текст не получает форматирования — зато открытие заметки и сохранение не разрушают конструкцию.
Рамки с закрывающим маркером тоже показываются как рамка. :::tip … ::: (Docusaurus) и <details> … </details> получают цветную полосу и заголовок — и в компактной записи, и в записи с пустыми строками. Открывающий маркер уступает место названию типа, написанному вами заголовку или тексту из <summary>; закрывающий уходит с экрана и остаётся в файле: разметка, которую пишет само приложение, не должна оставаться на странице буквально. На экране остаётся последняя строка рамки — именно она задаёт границу, именно туда ставят курсор, чтобы писать внутри, и удалить её нельзя: иначе содержимое снизу попало бы внутрь рамки. Чтобы убрать рамку, сохранив текст, воспользуйтесь пунктом Убрать рамку в контекстном меню. : списка определений по-прежнему приглушается. Чтобы <summary> стал заголовком, он должен быть в той же строке, что и <details>: на отдельной строке он показывается как написан, а рамка сохраняет подпись по умолчанию.
Строчный HTML и блок кода. <kbd>, <mark>, <sub> и <sup> отображаются и в форматированном редактировании — теги исчезают, остаётся только содержимое, как в режиме чтения. Блок кода в ограде получает рамку, а в углу — название языка и ссылку копировать: та же ссылка в форматированном редактировании и в режиме чтения, где код копируют чаще всего. Она берёт только содержимое блока (без маркеров) и на мгновение показывает скопировано; обе надписи появляются, только когда помещаются, не наезжая на код.
Ещё о чтении: блок YAML-фронтматтера в начале файла не показывается в отрисованной заметке — он редактируется на панели Свойства. Теги #hashtag становятся кликабельными метками и открывают поиск по этому тегу (то же самое, что Ctrl+щелчок в редакторе). Комментарии в стиле Obsidian (%%это не отображается%% или блок между строками с %%) остаются только в файле. Кроме выносок GitHub, так же отрисовываются блоки диалектов Docusaurus (:::tip Заголовок … :::) и MkDocs (!!! note "Заголовок" с отступом в теле и ??? note) — удобно при чтении репозиториев с документацией.
Новое в чтении: помимо ~~зачёркнутого~~ и
==выделения==, доступны верхний индекс ^x^, нижний
индекс ~x~, эмодзи по сокращению (:rocket:),
автоссылки для URL, сноски [^1], сворачиваемые
блоки <details>, списки определений, задачи
- [ ]/- [x] (⬜/✅) и маркер [TOC]
(кликабельное оглавление в режиме чтения); также локальные изображения и
встроенный HTML (<kbd>, <mark>…). Панель
Структура (панель вкладки) проходит по заголовкам, следуя за курсором, а
кнопка Вставить (или контекстное меню → Формат/Вставить)
применяет любую разметку.
Заголовки, папка и текст
Закреплённые заголовки (sticky scroll): при прокрутке заголовки, охватывающие верхнюю строку, закрепляются в полосе вверху редактора; щелчок по одному переходит к разделу (включается в Настройки → Markdown). Контекстное меню папки в дереве создаёт/открывает Заметку папки (index.md с фронтматтером) — удобно как оглавление.
Заметка папки и список файлов: двойной щелчок по папке открывает её index.md, если он существует. В любой заметке токен [files] (или [arquivos]) отдельной строкой заменяется в форматированном редактировании и в режиме чтения списком файлов папки заметки в виде кликабельных ссылок — создаётся на лету, ничего не записывая в файл (как [TOC]).
Операции с текстом и строками. Операции редактора кода работают и в заметке —
через подменю Текст кнопки Формат на панели вкладки, контекстное меню и подменю Строки и
Очистка меню Правка: переместить строку (или выделенные строки)
вверх/вниз (Ctrl+Shift+↑/↓), продублировать (Ctrl+Shift+D),
удалить (Ctrl+Shift+L), сортировка (А→Я / Я→А), обращение
порядка, объединение строк, удаление повторяющихся и пустых строк,
удаление пробелов и регистр (ВЕРХНИЙ/нижний/инверсия). Нумеровать
строки… открывает диалог с началом, шагом, ведущими нулями и
разделителем — со значением по умолчанию (". ") получается корректный
нумерованный список Markdown. При наличии выделения операция применяется только к нему
(расширенному до целых строк), без выделения — ко всему документу, и всегда это один шаг
отмены. На панели вкладки также есть кнопка ИИ: Спросить / Изменить с ИИ — те же Ctrl+K / Ctrl+I, что и в коде, — и Спросить заметки, чат, который отвечает по заметкам рабочего пространства.
Сворачиваемые заголовки: нажмите на маленькую стрелку слева от заголовка (или используйте Ctrl+Shift+[ / Ctrl+Shift+]), чтобы свернуть или развернуть раздел; в меню Вид есть Свернуть/Развернуть все заголовки. Сворачивание — чисто визуальное, оно никогда не записывается в файл, и LightNote запоминает его между сеансами. Переход из оглавления или из поиска внутрь свёрнутого раздела разворачивает его.
Папка-регистратор: папка как одно произведение
Что это: папка, заметки которой становятся главами в порядке, который объявляете вы. Годится для книги, дипломной работы, курса, руководства, рунбука или рабочего журнала — механизм один и тот же. В контекстном меню папки пункт Сделать папкой-регистратором открывает окно с заметками в текущем порядке: перетащите, чтобы изменить порядок, и подтвердите. Порядок сохраняется в ключе chapters: файла index.md этой папки — это ваш текстовый файл, он путешествует вместе с заметками и работает на любой машине. В порядке можно назвать и вложенную папку: её главы входят на то место, где она указана, а свой порядок она объявляет в своём index.md — так у книги появляются части. Обложка вложенной папки не становится страницей документа; она нужна, чтобы объявить порядок этого уровня и чтобы перемещаться.
Перемещение: при объявленном порядке на панели заметки видно Глава 3 из 12, со стрелкой с каждой стороны (Alt+PgUp и Alt+PgDn); средняя кнопка перечисляет все главы. Панель Оглавление становится двухуровневой: главы произведения и, под открытой, её заголовки. На концах произведения соответствующая стрелка гаснет. В папке без объявленного порядка ничего этого не появляется, и всё остаётся как было.
Шаблон заметок: папка-регистратор может объявить, из какого шаблона начинаются заметки, созданные внутри неё (ключ template:). Готовых шаблонов пять — глава книги, глава дипломной работы, урок, шаг процедуры и запись в журнале, — и выбор одного из них сохраняет его файлом в папке Templates, где он остаётся редактируемым. Заметка, созданная внутри папки-регистратора, сама входит в порядок; файл, положенный туда извне, остаётся Вне порядка, пока вы его не примете. Переименование главы исправляет ключ и сохраняет её место. Чтобы начать с готового произведения, Создать структуру по шаблону… (в контекстном меню папки) записывает сразу оба ключа — порядок и шаблон глав — и сохраняет уже написанную обложку; а пока объявленная глава ещё не существует, в Оглавлении появляется кнопка, которая создаёт их все разом, каждую уже по шаблону папки. Ничего не перезаписывается: глава, которая уже есть, остаётся как есть.
Объединение в один документ: при экспорте папки флажок Объединить главы в один документ выдаёт один файл с главами в объявленном порядке. Поскольку текст объединяется до отрисовки, сноски, рисунки, таблицы и ссылки затем нумеруются по всему документу — и перекрёстная ссылка из одной главы на рисунок в другой начинает работать. Всё, чего нет в объявленном порядке, не войдёт, и отчёт скажет что именно.
Свойства, тема и масштаб
Свойства заметки: боковая панель Свойства показывает YAML-frontmatter как типизированные поля (текст, число, дата, флажок), с полем Тип сверху. Именно задание типа и свойств позволяет собрать заметки в Базу.
Тема заметки: поле Тема на панели Свойства
задаёт вид этой заметки — цвета и шрифт текста — не трогая тему остального
приложения. Выбор попадает во фронтматтер (ключ theme), поэтому он
путешествует вместе с файлом: заметка выглядит одинаково на любой машине.
Соседняя кнопка записывает цвета в саму заметку, чтобы она выглядела так же даже
у того, у кого этой темы нет. Без ключа заметка следует теме рабочего
пространства. Если вы предпочитаете, чтобы заметки, пришедшие извне, не меняли
ваш вид, отключите Учитывать тему, объявленную в заметке в
Настройках → Markdown.
Тема, которой LightNote ещё не знает: список тем — это один файл, загружаемый с сайта, поэтому заметка, ссылающаяся на тему, опубликованную после вашего последнего обновления, просто её не найдёт. Тогда заметка открывается с темой рабочего пространства, а панель Свойства сообщает об этом и даёт быстрый переход к доступным темам. LightNote сам ищет обновлённый список — один раз за сеанс, в фоне и не задерживая заметку. Если вы предпочитаете, чтобы он ничего не загружал, отключите Загружать каталог инструментов онлайн в разделе Настройки → Функции.
Ctrl++ и Ctrl+− (или Ctrl+колесо мыши) меняют размер заметки, а Ctrl+0 возвращает 100% — удобно читать длинную заметку, не трогая шрифт всех остальных. Редактор и чтение масштабируются вместе: в разделённом режиме обе стороны остаются одного размера. <svg>, написанный прямо в заметке, тоже отрисовывается в режиме чтения: можно вставить график, созданный ИИ, не делая из него отдельный файл.
Сколько слов и где именно. Строка состояния считает слова заметки и оценивает время чтения; рядом раздел N — это счёт раздела, в котором стоит курсор: того самого, что подсвечивает Оглавление, от его заголовка до следующего равного или более высокого уровня. Если задать дневную цель в Настройках → Заметки и письмо, появится и сегодня N/M: то, что приросло в заметках, открытых сегодня. Удаление ничего не вычитает — править собственный текст не должно быть наказанием, — заметка, которую вы не открывали, не учитывается, а в полночь счёт обнуляется.
Диаграммы (Mermaid)
Как это работает
Диаграммы Mermaid. Ограждение ```mermaid с блок-схемой (flowchart/graph, во всех четырёх направлениях), диаграммой последовательности (sequenceDiagram) или круговой диаграммой (pie) рисуется как диаграмма в режиме чтения, в экспортированном файле и в ответах Спросить заметки — откуда диаграммы чаще всего и приходят. Рисунок следует теме заметки (чернила, бумага и акцент), поэтому сочетается с текстом вокруг в обеих темах. В форматированном редактировании — режиме по умолчанию — диаграмма тоже рисуется, а сверху появляется панель блока (копировать, изменить, удалить). Изменить открывает внизу панель с исходником: пока она открыта, заметка заблокирована, а рисунок перерисовывается по мере набора; закрытие применяет изменение (ни сохранения, ни отмены здесь нет), Ctrl+Z отменяет всю правку одним шагом, а пустое поле удаляет блок. В режиме разделённого экрана щелчок по диаграмме переносит курсор к ограждению в исходном тексте. В текстовом редакторе всё остаётся текстом: нажмите Ctrl+E, чтобы увидеть диаграмму. Внутри элемента списка диаграмма — а также структура SMILES, блочная формула, [files] и ![[заметка]] — остаётся текстом в форматированном редактировании и рисуется в режиме чтения: там маркер элемента не смог бы вернуться в файл.
Подграфы (subgraph … end, включая вложенные) рисуются рамками с заголовком, а рёбра пересекают границу, выходя из настоящего узла; id подграфа тоже может быть концом ребра (sub --> X). Действуют цвета, объявленные автором: classDef, class, :::класс и style (заливка, обводка, толщина, штрих и цвет текста). Чтобы начать, используйте Вставить → Диаграмма (Mermaid) на панели заметки: подставится готовый каркас выбранного типа. В меню сразу лежат шесть самых используемых; Все диаграммы… открывает выбор из всех 33, сгруппированных по назначению, с поиском (по имени или по тому, что показывает диаграмма) и нарисованным предпросмотром каждой — это 33 рисунка, и увидеть рисунок быстрее, чем прочитать имя. Фронтматтер диаграммы — блок между --- перед первой строкой — тоже читается: title становится заголовком над рисунком (title в теле важнее), а ключи config, которые LightNote знает, доходят до диаграммы (gitGraph.mainBranchName, gantt.displayMode и ключи packet: bitsPerRow, bitOrder: descending — который зеркалит строку — и showBits: false); чего он не знает, то игнорируется и заметка не отклоняется.
Последовательность, сущности, классы и состояния
В диаграмме последовательности работают participant/actor (с as), формы стрелок (->>, -->>, -x, -)), активация (+/- и activate/deactivate), заметки (Note left of/right of/over), блоки loop/alt/else/opt/par и autonumber. То, что пока не рисуется — другие виды диаграмм — по-прежнему показывается как блок кода; direction внутри подграфа и linkStyle игнорируются. Синтаксис узла Mermaid v11 (A@{ shape: rounded, label: "текст" }) читается, и каталог фигур v11 рисуется: doc, lin-doc, docs, tag-rect, win-pane, hourglass, bolt, flag, das… — каждая является тем символом, который называет её имя, и ни одна не превращается в прямоугольник: прямоугольник вместо документа был бы другой диаграммой. Имя, которого у Mermaid нет, возвращает диаграмму в блок кода с указанием строки. Идентификатор ребра (A e1@--> B) и e1@{ animate: true } принимаются и игнорируются: анимация не рисуется. Типизированный участник (participant DB@{ "type": "database" }) рисует символ UML над дорожкой — boundary, control, entity, database, queue и collections —, а объявленный там "alias" работает как as.
erDiagram тоже рисуется: каждая сущность становится блоком с атрибутами, а кардинальность показывается на обоих концах связи (||--o{, }o--||, |o, |{); -- — идентифицирующая связь, .. — неидентифицирующая. Псевдоним p[Человек] задаёт имя блока, не меняя id, на который ссылаются связи. subgraph … end работает и здесь: сущности внутри получают рамку с заголовком, подграфы вложенные, а id рамки может быть концом связи (CLIENTE ||--o{ Vendas : faz) — тогда она приходит к границе, а не к сущности с таким именем.
classDiagram тоже: блок из трёх отсеков (имя, атрибуты и методы, разделяемые по скобкам метода), <<interface>> отдельной строкой, namespace в виде рамки и шесть видов связей (<|--, *--, o--, -->, ..>, ..|>). Внимание к направлению: в A <|-- B треугольник стоит у A — наследует B. Кардинальность в кавычках показывается на обоих концах ("1" --> "*"). Дженерики List~T~ показываются как List<T>, и в членах тоже. Лоллипоп-интерфейс (bar ()-- foo) рисует кружок сверху на той стороне, где стоит () — и только там —, а связь касается этого кружка; namespace тоже влагается, и после внутренней } класс возвращается во внешнее пространство имён.
stateDiagram-v2 рисует автомат состояний: [*] — начало (закрашенный круг) и конец (круг с кольцом), state X { … } становится рамкой, <<fork>>/<<join>> — полосой, а <<choice>> — ромбом. -- внутри составного состояния разделяет параллельные регионы, отмеченные пунктиром.
Хронология, путь, квадранты и Гант
timeline тоже рисуется: каждый период становится колонкой хронологии, а события складываются под ним; section объединяет эпохи в цветные полосы. Работают обе записи нескольких событий — двоеточия в одной строке (2004 : Facebook : Google) и продолжение на следующей (: другое событие), — и здесь любая строка, кроме title, section и direction, является свободным текстом. direction TD (вертикальная хронология) пока не рисуется и сохраняет блок кода.
journey (путь пользователя) тоже рисуется: каждая задача становится рамкой на оси пути, а оценка от 1 до 5 поднимает или опускает её лицо — именно ради профиля, который они образуют, эта диаграмма и существует. section объединяет этапы, а участники превращаются в цветные метки на задаче, с легендой слева. Грамматика здесь строгая (Задача: оценка: Участник, Участник), в отличие от timeline: без пары «имя/оценка» лицу негде разместиться, поэтому неверно записанная строка — или оценка вне диапазона 1–5 — отклоняет диаграмму с указанием строки.
А quadrantChart рисует плоскость из четырёх квадрантов: x-axis и y-axis называют концы каждой оси (правая часть --> необязательна), quadrant-1…quadrant-4 подписывают области, а каждая точка задаётся как Имя: [x, y], где x и y от 0 до 1. Осторожно с нумерацией: она из декартовой плоскости, а не из порядка чтения — quadrant-1 находится справа вверху, дальше против часовой стрелки; y = 1 — вверху. Цвет и радиус точки задаются напрямую (P: [0.5, 0.5] radius: 10, color: #109060) или классом (P:::класс и classDef), причём прямой стиль важнее класса. Координата вне диапазона 0…1 не обрезается, а отклоняет диаграмму с указанием строки — это положение на плоскости, и обрезка поместила бы точку в квадрант, которого вы не писали.
gantt рисует график работ: dateFormat задаёт формат дат, которые вы пишете (по умолчанию YYYY-MM-DD), а axisFormat — формат подписей оси (%d.%m); section объединяет задачи в полосы. Каждая задача записывается как Текст : метки, id, начало, конец — метки done, active, crit и milestone идут первыми и сочетаются между собой, начало — это дата или after другойId, а конец — дата, длительность (5d, 2w, 3h, 45m) либо until другойId. Если поле всего одно, задача начинается там, где закончилась предыдущая. after может ссылаться на задачу, объявленную ниже в заметке; а вот id, которого нет нигде, — или круговая зависимость — отклоняет диаграмму с указанием строки, вместо того чтобы поставить полосу на сегодняшний день. excludes weekends (а также excludes monday или конкретная дата) сдвигает конец каждой задачи на исключённые дни и потому меняет длину полос; includes 2026-03-07 важнее выходных — так вы говорите, что в эту субботу работают. Веха (milestone) показывается ромбом, а todayMarker off убирает линию сегодняшнего дня. displayMode compact укладывает несколько задач в одну строку, и здесь задача делит строку только тогда, когда ничто из занятого ею не касается уже стоящего там — включая подпись. Маркер vert (Начало : vert, v1, 20:15, 0m) рисует момент вертикальной линией через всю диаграмму, не занимая ни одной строки, а его подпись выходит под ось. dateFormat X (или x) читает дату как время Unix в секундах (или миллисекундах), а на оси %s/%Q пишет её обратно. tickInterval, который Mermaid не знает (1decade), молча игнорируется, как и там, и ось возвращается к автоматической.
Интеллект-карта, требования, Git и C4
В mindmap иерархия берётся из отступа: уровень пункта — это колонка, с которой начинается его текст, без скобок и стрелок (табуляция считается до следующей позиции, кратной 4, как в редакторе). Первый пункт — корень; второй пункт в той же колонке был бы вторым корнем, и тогда диаграмма отклоняется с указанием строки. Каждый пункт может объявить форму: [квадрат], (скруглённый), ((круг)), {{шестиугольник}}, ))взрыв(( и )облако(; без ограничителя выходит скруглённый. ::icon(...) и :::класс распознаются и игнорируются (мы не поставляем шрифт значков, а класс ссылается на внешний CSS, которого здесь нет). Рисунок двусторонний — корень в центре, ветви распределены влево и вправо, — у каждой ветви свой цвет, который наследуют потомки, а веточка утончается с глубиной. Это дерево, а не силовая симуляция, как в mermaid: в интеллект-карте иерархия и есть содержание, значит она должна читаться по положению; к тому же рисунок перерисовывается при смене темы, и раскладка, сходящаяся из случайных начальных точек, каждый раз перестраивала бы всю карту.
treeView (treeView-beta) рисует дерево папок проекта и принимает обе записи: отступ (то, что набирают) и сами символы команды tree (├──, │, └──) — именно они позволяют вставить вывод терминала прямо в заметку: там одного отступа мало, потому что │ и пробел занимают одну колонку, а продолжение ветки означает только первый. Косая в конце помечает папку (src/), имя с пробелами берётся в кавычки, ## текст вешает комментарий в конце строки, а :::highlight выделяет имя. icon(...) распознаётся и игнорируется, как ::icon() в интеллект-карте: наборы значков приходят из Iconify через JavaScript, и даже сам Mermaid по умолчанию их не рисует.
ishikawa (ishikawa-beta) рисует диаграмму «рыбий скелет» для анализа причин: первый пункт — ЭФФЕКТ (голова, справа), следующий уровень — категории (кости), а два внутренних — причины и подпричины. Уровней три; четвёртый отклоняет диаграмму с указанием строки — в Mermaid его нет. Кости чередуются сверху и снизу от хребта — именно это позволяет двум соседним категориям уместиться, не накладывая текст друг на друга, а порядок, в котором вы пишете причины, читается сверху вниз с обеих сторон.
venn (venn-beta) рисует пересекающиеся множества: set A["Желательно"] объявляет одно, union A,B["Реализуемо"] даёт имя общей области (объединение называется по множествам, которые оно пересекает), а text A1["React"] сразу под ними кладёт элемент внутрь этой области. Множеств может быть до трёх, четвёртое отклоняет диаграмму с указанием строки: четырьмя кругами нет расположения, дающего все области, а «почти правильный» рисунок скрыл бы объявленную вами область. :число после подписи (set A["Alpha"]:20) масштабирует круг — площадь следует за числом —, а не пересечения: Венн с пропорциональными пересечениями — другая диаграмма (Эйлера), требующая численной оптимизации. style A fill:#ff6b6b красит множество, а с запятой (style A,B color:#333) — объединение этих множеств.
cynefin (cynefin-beta) рисует рамку Сноудена для классификации решений: у пяти областей фиксированные имена — complex, complicated, chaotic, clear и confusion — и фиксированные места (четыре квадранта, в середине confusion); выбираете вы то, что попадёт внутрь. Каждый пункт — отдельной строкой и в кавычках, а complex --> complicated : "Паттерн найден" рисует переход между областями. Имя вне этих пяти отклоняет диаграмму с указанием строки и списком допустимых. Граница между clear и chaotic выходит волнистой: в модели это обрыв, и форма говорит об этом — здесь волна всегда одна и та же, чтобы заметка не меняла рисунок при каждом открытии.
swimlane (swimlane-beta) рисует процесс по дорожкам, по одной на ответственного: синтаксис — это синтаксис блок-схемы (те же фигуры, стрелки, подписи и classDef), а каждый subgraph перестаёт быть рамкой и становится дорожкой. Каждый узел должен лежать в одной из них — узел снаружи отклоняет диаграмму, потому что нечем сказать, чья это задача, — и дорожка внутри дорожки тоже отклоняется. При LR дорожки — строки, а поток идёт вправо; при TB это столбцы, а поток идёт вниз. Положение вдоль потока берётся из самого длинного пути до каждой задачи, а полоса — это полоса владельца: задача никогда не выходит из своей дорожки, даже если так рисунок вышел бы компактнее.
agentflow (agentflow-beta) рисует поток с ИИ-агентами и по сути является другим словарём блок-схемы: стрелки те же, flow id["Имя"] … end играет роль subgraph (и влагается), global … end хранит то, к чему обращаются все агенты, а connector id["Имя"] объявляет внешнюю систему. По-настоящему меняется форма, которая называет роль шага: @{ shape: input }, task, tool (вызов инструмента), decision, refdoc (справочный документ) и action (итоговое действие). Документ подключается через -.-, без стрелки: к нему обращаются, он не шаг потока. Ключи, описывающие агента словами (instruction, params, returns, connectorRef, protocol, endpoint), читаются и при рисовании игнорируются. Эти имена форм работают только здесь — в flowchart они отклоняются, потому что там их нет и у Mermaid.
usecase (usecase-beta) рисует диаграмму вариантов использования UML: то, что объявлено через actor, становится человечком, а всё остальное — вариантом использования и рисуется эллипсом — именно это различие диаграмма и показывает. Вариант пишется как Id("Подпись"), Id[Подпись], просто Id или просто текст в кавычках; systemBoundary "Имя" … end — граница системы, а note for X "текст" вешает заметку. Связи — умловские: --> ассоциация, --|> — обобщение (полый треугольник со стороны общего), а A ..> : include B — с целью после двоеточия — рисует пунктирное «include»; то же самое для extend. То, что описывает актёра, но не меняет рисунок (type, business, icon), читается и игнорируется, а <<Стереотип>> попадает в подпись. Узел json пока не рисуется и остаётся блоком кода: это многострочный блок с деревом данных, и там JSON остаётся читаемым как текст.
wardley (wardley-beta) рисует карту Уордли: плоскость, где вертикаль — это видимость для пользователя (сверху то, что он видит), а горизонталь — эволюция, от Genesis до Commodity. Внимание к порядку пары: component Чай [0.63, 0.81] — это [видимость, эволюция]: первое число — вертикальная ось, и прочитанная наоборот карта всё равно рисуется и начинает говорить другую стратегию. anchor — пользователь сверху, A -> B связывает цепочку (имя может содержать пробелы, с кавычками или без), A +> B — поток (толще; +<> в обе стороны и +'текст'> с подписью), а evolve Чайник 0.62 рисует пунктирную стрелку туда, куда деталь должна прийти. Ещё работают evolution (меняет названия этапов), size, (build)/(buy)/(outsource)/(market), (inertia) (полоса сопротивления), label [dx, dy], pipeline X { … }, note, accelerator/deaccelerator и нумерованные annotation с легендой annotations.
eventmodeling рисует event modeling: шкалу времени в трёх дорожках — экран сверху, команда (и модель чтения) в середине, событие снизу. Каждая строка — это tf 02 cmd AddItem: число — момент (столбец), а среднее слово — тип, который выбирает дорожку: ui, cmd/command, pcr/processor, rmo/readmodel, view и evt/event (длинные формы равнозначны). Дорожка не объявляется: она и есть метод. rf (resetframe) открывает новый срез с пунктирным разделителем — там история начинается заново. Схема кадра идёт в фигурных скобках ({ description: string }) или по ссылке ([[Data]]) на блок data Data { … }, который может идти позже; а ->> 02 ->> 03 связывает кадр с моментами, которые его питают, по номеру.
railroad (railroad-ebnf-beta, -abnf-beta, -peg-beta или railroad-beta) рисует грамматику в виде железнодорожных путей: каждое правило становится путём, по которому можно провести пальцем — что можно написать, то и можно пройти. Правило — это имя = выражение ; (или имя <- … ; в PEG) и может занимать несколько строк: оно закрывается на ;. Текст в кавычках — терминал (капсула), а одиночное имя — другое правило (прямоугольник); | (или /) — выбор, ? — необязательность, + — один или больше, * — ноль или больше, а ( ), [ ] и { } группируют, делают необязательным и повторяют. ABNF ставит повтор перед (1*( ALPHA / "-" ), *DIGIT), PEG принимает предикаты !x и &x — они идут в подпись, потому что не потребляют ввод — а railroad-beta принимает функциональную запись (sequence(choice(terminal("+"), …))). Все четыре дают один рисунок: обход сверху — это необязательность, а петля снизу со стрелкой назад — повтор.
requirementDiagram рисует требования и элементы как блоки с разделами: объявленный вид (requirement, functionalRequirement, performanceRequirement, interfaceRequirement, physicalRequirement, designConstraint) выводится в кавычках-ёлочках над именем, а поля id, text, risk и verifymethod становятся строками — у element это type и docref. Отношения (satisfies, traces, derives, verifies, refines, copies, contains) пишут как a - satisfies -> b или зеркально b <- satisfies - a, и в зеркальной форме первое имя — это назначение. Сплошной линией идёт только contains, и символ стоит со стороны того, кто содержит; остальные пунктирные, со стрелкой у назначения. Имя с пробелом берут в кавычки.
gitGraph рисует историю репозитория: каждый commit сдвигает время вперёд, branch имя открывает новую дорожку и сразу переключает работу на неё (как git switch -c), checkout возвращает на другую, а merge сводит их вместе. Атрибуты пишут через двоеточие: commit id: "текст" tag: "v1" type: HIGHLIGHT (можно и REVERSE), а branch имя order: 2 меняет порядок дорожек; cherry-pick id: "…" требует id существующего коммита. Форма говорит о виде — залитый кружок у обычного коммита, квадрат у выделенного, круг с крестом у отменённого, двойное кольцо у слияния и разрезанный круг у cherry-pick, — потому что в теме, где два оттенка палитры похожи, различает их только форма. LR: (по умолчанию), TB: и BT: поворачивают ось времени. checkout/merge несуществующей ветки отклоняет диаграмму с указанием строки, вместо того чтобы создать дорожку, которую вы не просили.
Семейство C4 (C4Context, C4Container, C4Component, C4Dynamic и C4Deployment) тоже рисуется, и в нём всё — макрос: в синтаксисе нет ни одной стрелки. Каждый элемент становится блоком, где вид стоит в кавычках-ёлочках сверху, имя — полужирным, а описание — ниже: Person(alias, "Имя", "Описание"), System, Container, Component и варианты Db, Queue, _Ext. У Container и Component третий аргумент — это технология (Container(app, "App", "C++/Qt", "что он делает")), у остальных третий — уже описание. Границы (Boundary, Enterprise_Boundary, System_Boundary, Container_Boundary и Node из C4Deployment) открывают фигурную скобку и становятся блоком с заголовком, в том числе вложенным. Связь пишут как Rel(a, b, "подпись", "технология"); BiRel ставит стрелку с обеих сторон, а Rel_Back указывает назад. C4Dynamic нумерует связи в порядке появления. Подсказки положения (Rel_U, Rel_D, Rel_L, Rel_R) и Update…Style принимаются и игнорируются: расстановку задаёт та же раскладка, что и у остальных диаграмм, а цвет приходит из темы заметки. Связь с необъявленным псевдонимом отклоняет диаграмму с указанием строки, вместо того чтобы выдумать блок, которого вы не писали.
Доска, графики и пакет
В kanban отступ — это синтаксис, с двумя уровнями: внешний — дорожка, внутренний — карточка (id[Подпись] или просто текст). @{ ticket: LN-9, assigned: 'ana', priority: 'High' } после карточки не попадает в её текст: тикет и ответственный уходят в собственный нижний ряд, а приоритет (Very High, High, Low, Very Low) становится цветом полосы у левого края, по шкале от тёплого к холодному. Все дорожки заканчиваются на одной линии, и дорожка без карточек всё равно видна — именно она и показывает пустой столбец. Это нарисованная доска, чтобы объяснить поток внутри заметки; доска, на которой действительно работают, с перетаскиванием карточек, — это панель Задачи самого приложения.
xychart (xychart-beta) рисует столбцы и линии на двух осях: x-axis "Заголовок" [янв, фев, мар] задаёт категории — имя с пробелом или запятой берётся в кавычки, — y-axis "Заголовок" 0 --> 100 фиксирует шкалу, а каждая строка bar [10, 40, 90] или line [20, 30, 80] добавляет ряд: по одному значению на категорию, в том порядке, в каком категории объявлены. Ряд, в котором значений больше или меньше, приводит к отказу с указанием строки: столбцы съехали бы на другие категории, и график начал бы утверждать другое. Без y-axis шкала берётся из данных и начинается с нуля, пока они не уходят ниже, — начинать с наименьшего значения значит преувеличить разницу между столбцами, а этого никто не выбирал; при объявленном диапазоне значение за его пределами отклоняется, а не вылезает за поле. x-axis принимает и непрерывный диапазон (0 --> 100), а без него категориями становятся номера. Два ряда столбцов рисуются рядом, а не друг поверх друга, как в mermaid: при наложении задний ряд исчезает. xychart-beta horizontal пока не рисуется и остаётся блоком кода, потому что нарисованный вертикально он был бы транспонированным. У ряда может быть имя (bar "Открытые" [10, 40], line "Закрытые" [20, 30]): имена собираются в легенду над полем, каждое в форме своего ряда — залитый столбик, линия с точкой —, потому что один цвет их не различает. А в линейном ряду значение может нести подпись ([540 "PaLM", 65]), которая рисуется над точкой; у столбиков подпись игнорируется, как и в Mermaid.
radar (radar-beta) рисует профиль одной или нескольких кривых по осям, расходящимся из центра: axis a["Подпись"], b, c объявляет оси — строку можно повторять, — а curve x["Имя"]{80, 60, 90} задаёт по одному значению на ось, в том порядке, в каком оси объявлены; именованная запись ({a: 80, c: 90, b: 60}) тоже работает. Обратите внимание на направление: первая ось смотрит вверх, а обход идёт по часовой стрелке. max и min задают шкалу — без max она берётся из наибольшего прочитанного значения, — и значение за её пределами не обрезается, а приводит к отказу с указанием строки; ticks меняет число колец, graticule circle делает их круглыми, а showLegend false убирает легенду. Кривая, у которой значений больше или меньше, чем осей, тоже отклоняется: это был бы не незаконченный рисунок, а другой рисунок.
packet (packet-beta) рисует карту битов пакета: каждое поле записывается как 0-15: "Подпись", и диапазон включает оба конца — 0-15 это шестнадцать битов. Один бит пишется как 4: "Подпись", а относительная форма +16: "Подпись" берёт следующие шестнадцать, чтобы не пересчитывать всё при вставке поля в середину. Поля должны идти подряд, без пропусков: разрыв или наложение приводят к отказу с указанием строки, потому что и то и другое молча сдвинуло бы всё последующее. В строке 32 бита, и поле, переходящее на следующую строку, рисуется на обеих, а подпись попадает в более широкую часть; числа над сеткой отмечают, где начинается каждое поле, плюс последний бит каждой строки.
Сетка, площади, архитектура, поток и ZenUML
block (block-beta) рисует сетку из прямоугольников, и положение в ней — это порядок, в котором вы их написали: columns 3 задаёт число столбцов (без него всё встаёт в один ряд), каждый прямоугольник принимает формы блок-схемы (a["Подпись"], b(("круг")), c{"ромб"}), a:2 заставляет его занять два столбца, а space (или space:2) оставляет пропуск. block:id … end вкладывает сетку в сетку, со своим columns, и снаружи получается рамка. Стрелки — те же, что в блок-схеме (a --> b, с подписью a -- "текст" --> b), но здесь они лишь ссылаются на уже объявленные блоки: стрелка к несуществующему имени приводит к отказу с указанием строки, а не к появлению прямоугольника в ячейке, которую вы не писали. Промежуток между столбцами растёт, пока не поместится подпись стрелки, чтобы она не касалась соседнего прямоугольника. Блочная стрелка (a<["Туда"]>(right)) — это рамка в форме стрелки: направления пишутся в скобках (right, left, up, down, либо x для обоих горизонтальных и y для обоих вертикальных) и сочетаются ((x, down)); выдуманное направление отклоняет диаграмму с указанием строки, а не превращается в какую-нибудь стрелку.
treemap (treemap-beta) рисует карту площадей: площадь каждого прямоугольника пропорциональна значению, а отступы задают вложенность любой глубины. Лист объявляет значение ("Имя": 12), а раздел не объявляет ничего — его значение это сумма детей, и собственный итог позволил бы прямоугольнику лгать о собственных частях, поэтому такое приводит к отказу с указанием строки. Имя с пробелом или двоеточием берётся в кавычки; classDef и :::класс задают цвет. Раскладка — squarified, она держит прямоугольники близкими к квадрату: резать всегда по одной оси значило бы получить полосы, которые не сравнить на глаз, а сравнение площадей — единственное, что делает этот тип. Подпись и значение появляются, только когда помещаются целиком внутри прямоугольника: обрезанные краем, они ничего не сообщили бы.
architecture (architecture-beta) рисует службы и связи между ними: service api(server)[API] объявляет компонент, group oblako(cloud)[Облако] открывает границу, суффикс in oblako помещает службу внутрь (группы вкладываются), а junction j создаёт угол, чтобы согнуть связь. Положение задаёт сторона связи: a:R -- L:b прикладывает правую сторону a к левой стороне b, то есть ставит b справа от a; годятся L, R, T и B, а остриё появляется со стороны < или > (-->, <--> либо -- вовсе без острия). Суффикс {group} на конце отправляет линию к границе группы, а не к прямоугольнику внутри. Значки — те пять, что Mermaid несёт с собой: cloud, database, disk, internet и server. Любое другое имя приводит к отказу с указанием строки и перечнем существующих. Остальные (logos:aws-lambda и подобные) берутся из Iconify и появляются только там, где издатель страницы регистрирует пакет через JavaScript, чего не делает даже GitHub: принять их здесь значило бы отдать вам рисунок, который больше нигде не воспроизводится. align row a b c (или align column) ставит перечисленных участников в один ряд — или в один столбец —, а несуществующее имя отклоняет диаграмму с указанием строки, а не оставляет раскладку как было, не сказав почему.
sankey (sankey-beta) рисует диаграмму потоков, где толщина ленты — это значение: в теле нет ни одной стрелки — это CSV из трёх столбцов (источник,приёмник,значение), одна связь на строку, а сцепляет поток повторение одного и того же имени на обоих концах. Подпись с запятой берётся в кавычки, а кавычка внутри неё пишется удвоенной ("Расход ""постоянный"""); одна и та же пара источник/приёмник при повторении суммируется. Высота столбика узла равна большей из двух сумм — входящей и исходящей, чтобы исходящие ленты узла, который раздаёт больше, чем получает, не выходили за край. Столбцы берутся из самого длинного пути до каждого узла, а то, у чего нет выхода, уходит в последний столбец. Значение меньше или равное нулю, связь узла с самим собой и цикл отклоняют диаграмму с указанием строки — в цикле нет самого длинного пути, а обрезать связь ради рисунка значило бы показать поток, которого вы не писали. title здесь нет: тело — чистый CSV, и принять его означало бы хорошо нарисовать в LightNote и получить синтаксическую ошибку в Mermaid.
zenuml — другой синтаксис для того же рисунка — диаграммы последовательности, — записанный как код, а не стрелками. Синхронный вызов называет только адресата (Магазин.записать(товар)), а отправитель — это блок, который его окружает: внутри Магазин.записать() { Склад.резерв() } Склад вызывает Магазин. На внешнем уровне вызывающий — это инициатор: @Starter(Аня) даёт ему имя, а без него берётся User с человечком, и он появляется, только если какой-то вызов его требует. Асинхронное сообщение — это A->B: текст (открытый наконечник, никто не ждёт), а A->B.метод() — синхронный вызов с явно указанным отправителем. {} вкладывает, return x возвращается к тому, кто сделал охватывающий вызов (if посередине этого не меняет), x = A.m() — другая запись того же ответа, new A(args) создаёт, а // комментарий становится заметкой над следующим сообщением. Блоки — это if/else if/else, while/for/forEach/loop, opt, par и try/catch/finally; } else { продолжает ту же рамку разделителем, а не открывает новую. @Actor рисует человечка; остальные аннотаторы (@Database, @Boundary…) становятся стереотипом в подписи («Database» Склад), потому что их значки здесь не рисуются — имя остаётся видимым, а это главное. Имя с пробелом берётся в кавычки. Обратите внимание, куда попадёт этот блок: в Mermaid zenuml — внешняя диаграмма, которую страница должна зарегистрировать через JavaScript; GitHub этого не делает, поэтому та же заметка, что рисуется здесь, там останется блоком кода.
А если LightNote не смог прочитать диаграмму, он сообщает почему и в какой строке, прямо под блоком — для типа, который мы ещё не рисуем, предупреждения нет: в написанном вами ошибки нет.
Математика и химия (LaTeX)
Формулы (LaTeX)
Математика (LaTeX). $E = mc^2$ посреди фразы и $$…$$ блоком превращаются в нарисованную формулу в режиме чтения, в экспортированном файле и в ответах Спросить заметки. Рисунок следует теме заметки. В форматированном редакторе формула блоком тоже рисуется, с панелью блока сверху (изменить, копировать, удалить); и формула посреди фразы тоже, стоя на строке текста. Чтобы её изменить, дважды щёлкните по ней или нажмите Ctrl+Enter: она откроется в той же панели. А Backspace сразу после неё вернёт её как $…$, чтобы править на месте. В текстовом редакторе всё остаётся текстом: нажмите Ctrl+E, чтобы увидеть формулу. Для начала используйте Вставить → Формула (LaTeX) на панели заметки. Формула рисуется системным математическим шрифтом — в Windows это Cambria Math, — а не шрифтом основного текста заметки: именно оттуда берутся математический курсив, символы, которых нет в текстовом шрифте, и скобки со знаками корня, растущие вместе с содержимым. Если математический шрифт не установлен, LightNote возвращается к шрифту заметки и рисует эти знаки сам.
Подмножество охватывает греческие буквы, операторы и отношения, степень ^ и индекс _, \frac, \sqrt (с показателем), \left…\right с растущими разделителями, \sum/\prod/\int с пределами, прямые функции (\sin, \log…), \text/\mathrm/\mathbf/\mathbb алфавиты \mathcal/\mathfrak/\mathsf/\mathtt/\boldsymbol, \binom, \overset/\underset, \bmod/\pmod, семейство \big…\Bigg пробелы \,/\quad/\hspace, окружения cases, matrix/pmatrix/bmatrix/vmatrix, aligned, gathered и array (с | и \hline), \overbrace/\underbrace, \begin{CD} и \begin{tikzcd} (коммутативные диаграммы), \xrightarrow, \boxed/\cancel, \not, \substack, \|/\middle, \smash, \textcolor/\color (оттенок ваш; светлота подстраивается под тему заметки), \colorbox/\fcolorbox (фон выводится тем цветом, который вы написали, а текст подстраивается под него), \tag (метка уравнения, сразу за ним; в align — по одной на строку, выровненные в столбец), \phantom, \displaystyle и инфиксные формы \over/\atop/\choose. Покрытие шире этого списка: есть также варианты сравнения (\leqslant), логика (\land, \vDash), операторы статистики (\argmax), растягивающиеся двойные стрелки (\xRightarrow) и двойные скобки (\llbracket). Работают и старые переключатели шрифта TeX ({\rm d}x, {\bf A}, {\cal L}), и обозначения Дирака (\braket{\phi|\psi}). Макросы, определённые в самой формуле (\newcommand, \def), действуют до её конца, символы Unicode, набранные напрямую (x ∈ ℝ), считаются своими командами, \text{…} принимает математику между $…$, а отдельная формула может занимать несколько строк с \\. \label{eq:name} внутри блока $$ нумерует уравнение в режиме чтения тем же счётчиком, что и {#eq:name}, а \eqref{eq:name} в тексте превращается в номер в скобках. Запись LaTeX тоже работает: \(…\) в строке и \[…\] блоком рисуются так же — именно эту форму обычно выдаёт ChatGPT. То, что нарисовать не удаётся, по-прежнему показывается как написанный вами текст.
Коммутативные диаграммы с диагональной стрелкой (\begin{tikzcd}). \begin{CD} рисует только горизонтальные и вертикальные стрелки, а самой частой диаграмме — коммутативному треугольнику — нужна диагональ. Каждый объект — ячейка (& разделяет, \\ начинает строку), а стрелка пишется внутри ячейки: A \arrow[r, "f"] \arrow[rd, "g"'] & B. Направление — это цепочка r/l/u/d (rd — диагональ, rr — два столбца), а \ar и сокращения (\rar, \dar, \drar) — та же стрелка. Подпись в кавычках встаёт над стрелкой, идущей вправо; ' (или swap) переносит её на другую сторону — и именно это говорит, внутри или снаружи фигуры окажется имя. Работают также hook (вложение), two heads (сюръекция), dashed, Rightarrow и equal. Изгиб (bend left) и любые опции, которые это подмножество не рисует, отклоняются с указанием имени: две изогнутые стрелки, нарисованные прямыми, легли бы одна на другую.
$ в обычном тексте формулой не становится: в стоит $5 и $10 цена остаётся ценой, потому что после открывающего знака не может стоять пробел, перед закрывающим — тоже, а после него не может стоять буква (именно это не даёт PATH=$dir1:$dir2 стать формулой); и $x$ в обратных кавычках остаётся кодом. Когда формула не появляется, LightNote сообщает почему: строкой под блоком $$, а для формулы внутри текста — по одному разу на каждое отдельное сообщение, называя команду или разделитель, который не удалось прочитать. Если формула вставлена в написании \(…\), а вы предпочитаете $…$, пункт Форматировать → Привести формулы к $ перепишет выделение (или всю заметку) — в текстовом редакторе, где символы заметки видны на экране.
Химия: mhchem и SMILES
Химия. Нотация mhchem тоже рисуется: \ce{2 H2 + O2 -> 2 H2O} сам расставляет индексы, -> и <=> становятся стрелками (подпись задаётся через ->[\Delta]), Na+ и SO4^2- — зарядом, (aq) и (l) выходят прямыми и вплотную, ^{227}_{90}Th выравнивает изотоп, а v/^ обозначают осадок и выделившийся газ. \pu{123 kJ//mol} записывает величину с единицей — двойная косая черта превращается в дробь. Смещённое равновесие (<=>> и <<=>) рисует длинную стрелку в ту сторону, куда смещена реакция, связи, записанные явно (\bond{~}, \bond{~-}, \bond{...}), накладывают штрихи друг на друга, как в учебниках, а запись Крёгера — Винка (O''_{i,x}, Li^x_{Li}) ставит эффективный заряд в верхний индекс. Переменная выводится курсивом, элемент — прямым шрифтом: в NO_x x — переменная, в Fe^{II} II — степень окисления.
Структуры в LaTeX (\chemfig). \ce пишет формулу, а \chemfig{...} рисует скелет внутри самой формулы — \chemfig{H_3C-[:30]CH_2-[:-30]OH} — этанол, \chemfig{*6(-=-=-=)} — бензол. Угол задаёте вы: [:30] — абсолютный, [::45] — относительно предыдущей связи, [3] — восьмые доли оборота. Связи — -, = и ~, а клинья стереохимии — >, <, >:, <:, >| и <|: узкий конец остаётся у стереоцентра. Скобки подвешивают ветвь, а *6(...) замыкает правильный цикл (**6(...) рисует ароматический круг); из вершины цикла связь без указанного угла смотрит наружу. Символ элемента выводится прямым, а линия останавливается перед буквой. Узлы отправления и прибытия chemfig ([,,1,2]) отклоняются с объяснением: они выбирают, к какой части подписи крепится связь, и пропустить их — значит нарисовать другую структуру. Конденсированное кольцо пишется внутри тела первого, сразу после общей связи, а внутреннее кольцо пишет на одну связь меньше: эта сторона уже нарисована. Нафталин — это \chemfig{*6(-=-*6(-=-=-)=-=)}.
Химическая структура (SMILES). Блок ```smiles с одной строкой на SMILES (CC(=O)Oc1ccccc1C(=O)O) рисуется как скелетная формула в режиме чтения, в форматированном редактировании, в экспортированном файле и в ответах Спросить заметки. Это дополнение к \ce: тот пишет формулу, а этот рисует молекулу. Действует скелетное соглашение — углерод не пишется (он и есть вершина), гетероатом выводится символом в акцентном цвете темы, а ароматический цикл (c1ccccc1) получает пунктирную окружность внутри. Стереохимия рисуется: [C@H] и [C@@H] становятся клином — сплошным, когда связь направлена к читателю, штриховым, когда уходит назад, узким концом у стереоцентра, — а F/C=C/F и F/C=C\F выходят транс и цис, как записаны. То, что нельзя изобразить на плоскости (именованные нететраэдрические формы, например @SP1), принимается, и подпись внутри изображения говорит, что это объявлено и не изображено. Один блок рисует одну структуру: пробел в середине строки отклоняется, потому что в SMILES он заканчивает структуру. Если прочитать не удалось, LightNote говорит, что именно не так (скобка, номер цикла, элемент), а блок кода остаётся таким, как вы его написали. Чтобы начать, используйте Вставить → Структура (SMILES) на панели заметки.
Календарь в заметке
Блок ```calendar рисует календарь внутри заметки — в режиме чтения, в форматированном редактировании и при печати. Это настоящая таблица, а не изображение: её можно выделить, скопировать (вставленная в Word или Excel, она сохраняет ячейки) и найти событие через Ctrl+F. Первая строка определяет, какой это календарь: месяц (2026-09) показывает месяц; дата (2026-09-24) — неделю, в которую она входит, с днями в столбцах и часами в строках; а week — неделю без дат: расписание уроков, распорядок, график дежурств. Каждая следующая строка — событие или параметр, а строки, начинающиеся с %%, — комментарии. Для начала используйте Вставить → Календарь на панели заметки (на месяц, на неделю или на неделю без дат — уже заполненные примерами) или наберите /calendar.
Месяц. Событие начинается с числа дня: 15: Защита диплома отмечает день, 22-26: Конференция — период, а 24: без текста только выделяет день. Текст периода появляется в его первый день, а если период переходит на следующую неделю, — ещё и в начале следующей строки.
```calendar
2026-10
15: Защита диплома
22-26: Конференция
```
Неделя. Событие начинается с названия дня — mon, tue,thu или mon-fri, — за которым идёт время: mon 09:00-10:30: Встреча. Время записывается как 09:00, 9h30 или просто 9; без него событие попадает в верхнюю строку «весь день» (fri: Сдача). Поскольку день задаётся названием, при копировании блока на следующую неделю меняется только первая строка. days: mon-fri выбирает столбцы в порядке списка; hours: 8-18 фиксирует диапазон (без него — с 8 до 18, с расширением, чтобы поместились события; с ним событие вне диапазона отклоняется); step: 30 задаёт минуты в строке. Длинное событие пишет текст со временем только в первой строке и закрашивает следующие.
```calendar
2026-10-14
days: mon-fri
mon,wed 09:00-10:30: Встреча команды
tue 14-16: Учёба
tue 16-17: Повторение
fri: Сдача проекта
```
Во всех трёх формах title: заменяет заголовок панели (в неделе без дат панель появляется только с ним), week: monday начинает неделю с понедельника (по умолчанию — как принято в языке заметки; при days: действует порядок списка), а today: no убирает отметку сегодняшнего дня — в неделе без дат отмечается сегодняшний день недели. Соприкасающиеся события получают разные цвета, чтобы не читаться как одно. Язык месяцев и дней — язык заметки (ключ lang во frontmatter), и выходные следуют обычаю этого языка. Сегодняшний день отмечается только на экране: на бумаге и в PDF — нет, потому что читающий делает это в другой день. Чтобы изменить календарь, нажмите на нём Ctrl+Enter и отредактируйте исходный текст на панели — ввод в ячейку ничего не меняет, потому что таблица создаётся из исходного текста. Пока панель открыта, таблица перестраивается по мере ввода; закрытие панели применяет изменение, а Ctrl+Z отменяет его целиком за один шаг. При экспорте (Word, OpenDocument, HTML, LaTeX, Markdown GitHub) календарь становится обычной таблицей с заголовком. Если исходный текст не читается как календарь, LightNote указывает строку и фрагмент, а блок кода остаётся таким, как вы его написали. Внутри цитаты или списка календарь отображается в режиме чтения и остаётся кодом в форматированном редактировании.
Нумерация и перекрёстные ссылки
Дайте рисунку метку — и в режиме чтения у него появится нумерованная
подпись: {#fig:cycle} станет
изображением, за которым идёт Рисунок 1 — Круговорот воды. Таблица несёт
метку в строке, начинающейся с двоеточия, сразу под ней:
: Отобранные пробы {#tbl:samples}. А выключная формула получает
номер на правом поле, если закрывающий $$ несёт
{#eq:mass}. Эта возможность выключена по умолчанию: включите её в Настройках → Функции → Научное → Нумерация и перекрёстные ссылки. LightNote — простой редактор, который ещё и тянет диплом, и тот, кто не пишет научных текстов, не должен платить за это меню и настройками, которыми не пользуется.-numeracao
Дальше остаётся только сослаться: @fig:cycle станет
Рисунок 1, [@fig:cycle] — (Рисунок 1), а
-@fig:cycle — только номером. Грамматика та же, что у цитаты, и это
намеренно. Вставка рисунка в середину перенумерует всё сама — счёт
принадлежит документу, в порядке чтения.
Нумерация включается меткой: изображение без {#fig:…}
остаётся ровно таким, как сегодня. А метка, которой нет, остаётся такой, как
вы её написали, — как и с цитатой: это подсказка, что ссылка сломана.
Нумерованные разделы (ABNT NBR 6024): объявите в свойствах заметки
section-numbers: true, и заголовки получат индекс — 1,
1.1, 1.1.1, — выключенный влево, отделённый одним пробелом и без
точки в конце. На заголовок с {#sec:method} можно сослаться через
@sec:method; без нумерации ссылка превращается в заголовок
раздела.
Отдельной строкой [list of figures] и
[list of tables] собирают перечни, которых требует стандарт, — так
же, как [TOC] собирает оглавление. Всё это принадлежит режиму
чтения (и экспортированным PDF/HTML): в редакторе файл сохраняет то, что вы
написали, и именно это позволяет перенумеровать, не трогая заметку.
Цитаты и список литературы
Цитата в тексте пишется как [@ключ] — ключ это имя работы в вашей
библиографии. При вводе @ LightNote подсказывает известные ему
работы с автором, годом и заглавием; в заметку попадает только ключ. Есть также
[@ключ, с. 45] (со страницей), [-@ключ] (когда имя
автора уже в предложении) и [@a; @b] (несколько работ сразу). Эта возможность выключена по умолчанию: включите её в Настройках → Функции → Научное → Цитаты и библиография. LightNote — простой редактор, который ещё и тянет диплом, и тот, кто не пишет научных текстов, не должен платить за это меню и настройками, которыми не пользуется.-citacoes
В режиме чтения цитата становится оформленным текстом — (Silva,
2020, с. 45) — а токен [bibliography] отдельной строкой
превращается в список процитированных работ в порядке, который требует
стиль. В редакторе ключ остаётся на виду, ведь именно его вы правите.
Библиография — это файл в вашем рабочем пространстве: годится любой
.bib, .ris или .csl.json в папке. Именно
поэтому она путешествует вместе с заметками через Git или флешку и продолжает
работать на другом компьютере. Если открыть такой файл, появится список работ с
ключом каждой — готовым к копированию.
Чтобы добавить работы: Инструменты → Библиография → Добавить работу по DOI принимает DOI или идентификатор arXiv и сам добирает остальное; а Импорт из Zotero читает библиотеку Zotero 7, запущенного на этом компьютере (сначала включите Настройки → Дополнительно → Разрешить другим приложениям на этом компьютере обмениваться данными с Zotero).
Стиль принадлежит папке, а заметка может с ним разойтись. Выберите
стиль по умолчанию в Инструменты → Настройка рабочего пространства →
Цитаты (ABNT, APA 7 или ванкуверский); заметка, предназначенная в другое
место, объявляет citation-style: apa в своих свойствах. Ключ,
которого нет в библиографии, остаётся таким, как вы его написали, чтобы
было видно, какой именно поправить.
Граф связей
Инструменты › Граф связей (Ctrl+Alt+G) показывает все
заметки рабочего пространства в виде интерактивного графа: каждый узел — это
заметка .md, каждая линия — вики-ссылка. Узлы сами занимают своё
место (анимированная физика) и их можно перетаскивать; наведение
курсора подсвечивает соседей и приглушает остальное; клик открывает
заметку. Прокрутка колёсиком масштабирует (названия появляются при приближении),
а перетаскивание фона панорамирует вид.
На панели инструментов вкладки: фильтр по имени (приглушает несовпадающие заметки), переключатель «сирот» (заметок совсем без ссылок — показываются серым), ползунки сил (отталкивание, расстояние и гравитация), подгонка графа под окно и повторное сканирование заметок. Чем больше связей у заметки, тем крупнее её узел; каждая папка верхнего уровня получает свой цвет.
Похожие заметки. Мини-панель Связи внутри самой заметки перечисляет входящие ссылки, исходящие и упоминания по имени. В её конце есть раздел Похожие заметки: заметки о близких темах — даже без ссылки и без общего слова. Он считается по запросу (нажмите Вычислить), а не при каждой смене заметки, потому что обход индекса стоит чтений с диска. В каждой строке видны имя, насколько близко и фрагмент, из-за которого возникла подсказка, — без этого доказательства судить о ней было бы нечем. Ни одного вызова ИИ: используется уже готовый смысловой индекс, поэтому раздел появляется только при включённом смысловом усилении (эмбеддингах) в Настройки → Общие → Функции.
Таблицы (Parquet, CSV, JSON, Excel)
Открытие и запросы
Файлы .parquet открываются как таблица; .csv,
.tsv и .json открываются как текст, а контекстное
меню дерева предлагает Открыть как таблицу. Чтение выполняется
постранично (по требованию) через DuckDB, с сортировкой (клик по
заголовку) и фильтрацией, выполняемыми на стороне движка. Кнопка
Структура показывает столбцы, типы, число строк и, для Parquet, группы
строк и сжатие. Просмотр только для чтения.
Строка произвольного SQL вверху таблицы принимает любой запрос
DuckDB — представление t обозначает открытый файл. Из
контекстного меню папки в дереве пункт Открыть папку как таблицу
читает все файлы того же формата как единую таблицу; из меню таблицы можно
экспортировать текущее представление (CSV/Parquet/JSON), а из меню
дерева — преобразовать табличный файл в другой формат. Произвольный SQL
также доступен в команде query командной строки
и в MCP.
Электронные таблицы Excel (.xlsx) открываются как
таблица только для чтения с выбором листа — облегчённый ридер, установка Excel
не требуется.
Таблицы Excel
Как в файле. Лист показывается с форматированием самого
файла: число, валюта, процент и дата следуют формату, заданному в Excel —
значение, сохранённое как 3750.5 с денежным форматом, отображается как
3 750,50 ₽, а процент выводится как 15%, а не
0,15. Из файла берутся также шрифт (название, размер, полужирный, курсив,
подчёркивание), цвет текста, цвет заливки, границы каждой ячейки, выравнивание,
перенос по словам, отступ, повёрнутый текст и ширина столбцов. Числа выравниваются
вправо, текст влево — как в Excel.
Если лист несёт собственные цвета, сетка рисуется на белом фоне: цвета Excel подбирались под белую бумагу и на тёмной теме были бы нечитаемы. Файл вообще без форматирования по-прежнему следует теме LightNote. Лист открывается в том порядке, в каком был записан — щелчок по заголовку сортирует, как и в остальных таблицах.
Исходная разметка и масштаб. Если лист использует объединённые ячейки, собственную высоту строк или скрывает сетку, вкладка открывается в режиме Исходная разметка (кнопка на панели), который воспроизводит эту геометрию как в Excel. Режим управляет только геометрией — цвет, шрифт, границы и числовой формат действуют в обоих — и пока он включён, сортировка и фильтр недоступны: после пересортировки объединённая полоса осталась бы не на своей строке; выключите кнопку, чтобы снова сортировать. Лист без всего этого открывается в обычном режиме. Масштаб такой же, как во всех представлениях, и находится в строке состояния (см. Рабочее пространство и окна); Ctrl+колесо мыши работает и над таблицей. Лист, оформленный как таблица Excel, тоже выводится цветным: её стиль встроен в Excel и не передаётся в файле, поэтому заголовок и полосы восстанавливаются из темы.
Копирование, фильтр и график
Копировать как. В контекстном меню любой таблицы LightNote (Parquet/CSV/JSON, Excel, результаты SQL, Задачи, Базы) пункт Копировать как помещает выделение в буфер обмена уже отформатированным. Форматированная таблица (Teams, Outlook…) вставляется как настоящая таблица, с рамками и заголовком, в программы, понимающие форматированный текст — Teams, Outlook, Word, Excel (там, где форматированного текста нет, автоматически используется TSV). Остальные вставляются как текст: таблица Markdown (готова для заметки), CSV (кавычки по RFC 4180), TSV (с табуляцией), HTML (разметка <table>), JSON, JSONL (по записи на строку), YAML и подменю Код, которое создаёт литерал, готовый для вставки в исходный файл: Python (список словарей) или JavaScript / TypeScript (массив объектов). В JSON, YAML и коде ячейки-числа выводятся без кавычек — но исходный текст сохраняется, поэтому идентификаторы вроде 007 остаются текстом. Ctrl+C по-прежнему копирует в TSV, как раньше.
Все таблицы ведут себя одинаково: Ctrl+F переводит фокус в быстрый фильтр («содержит в любом столбце»), счётчик показывает, сколько строк осталось, и есть Экспорт в CSV — в том числе в таблицах .xlsx, в Задачах и в Базах. Контекстное меню сетки по-прежнему предлагает Копировать как.
Диаграмма результата. На боковой панели таблицы есть кнопка Диаграмма (столбцы, линия или точечная): агрегирование выполняется в DuckDB (необработанные строки не загружаются), а кнопка Добавить в заметку дня сохраняет диаграмму как изображение. Панель Структура также включает профиль по столбцам — мини-гистограмму числовых столбцов и самые частые значения остальных.
Несколько диаграмм и сводная таблица. Чтобы скрестить два поля и свернуть третье — и чтобы держать больше одной диаграммы на таблицу — смотрите Область анализа.
Область анализа: сводная таблица и несколько диаграмм
График и статистика
Вкладка таблицы имеет два режима — кнопки Данные и Анализ на панели. Данные — это привычная таблица; Анализ — доска, на которой рядом уживаются сколько угодно диаграмм и сводных таблиц по одному и тому же источнику. Каждая занимает карточку с изменяемым заголовком, кнопкой-шестерёнкой, раскрывающей селекторы, и меню ⋮ (переместить, продублировать, удалить).
Настоящая статистика. Кроме столбцов, линии и точек график строит ящик с усами: по ящику на категорию с квартилями, медианой толстой линией и усами по границе Тьюки (1,5 × IQR) — а не по минимуму и максимуму. Над средним по столбцу селектор Погрешность добавляет планку разброса: ± стандартное отклонение (описывает сами данные), ± стандартная ошибка или ± 95% ДИ (описывают точность самого среднего). Все три появляются только при выбранном среднем, потому что «сумма ± отклонение» ничего не значит. Флажок Лог. ось Y включает логарифмическую шкалу — для данных, охватывающих порядки величин; при нулевом или отрицательном значении он игнорируется с уведомлением, потому что логарифма там нет, а молча отбросить точку значило бы заставить график лгать. На диаграмме рассеяния Линия тренда рисует линию регрессии с R², подогнанную в базе по всем строкам — а не по выборке точек на экране. Под рисунком идёт строка описательной статистики выбранного столбца (n, среднее, отклонение, 95% ДИ, минимум, квартили, медиана и максимум) — это отдельный запрос: вывести её из столбцов значило бы получить среднее средних, которое совпадает с настоящим средним только когда все группы одинакового размера.
Сводная таблица и итоги
Сводная таблица. Выберите поля для строк и столбцов (на каждой оси можно вложить несколько; перетаскивание меняет порядок уровней), поле для значения и способ свёртки: сумма, количество, количество уникальных, среднее, минимум или максимум. Без поля значения считаются строки. Она есть и на боковой мини-панели таблицы, рядом с диаграммой, — для быстрого взгляда, не покидая данные.
Агрегация выполняется в базе и возвращается уже свёрнутой: наверх не поднимается ни одной сырой строки, поэтому Parquet на десятки миллионов строк остаётся рабочим. Запрос — стандартный SQL, поэтому сводная таблица работает во всех базах SQL-клиента (SQLite, DuckDB, PostgreSQL, MySQL, SQL Server и Oracle), а не только в DuckDB, как диаграмма.
Итоги. Флажки Итоги по строкам и Итоги по столбцам добавляют замыкающие строку и столбец. Для среднего итог считается взвешенным, а не как среднее из средних — последнее было бы неверным, когда группы разного размера. Количество уникальных суммировать нельзя (объединение различных множеств не выводится из суммы частей), поэтому там флажки отключены, а причина указана во всплывающей подсказке — вместо неверного числа.
Где сохраняется, CSV и группировка
Где сохраняется анализ. В файле JSON рядом с файлом данных (sales.parquet → sales.parquet.analysis.json): открытый формат, который попадает в Git вместе с данными и так же передаётся коллеге. Кнопка Файл анализа открывает этот JSON во вкладке, а если очистить анализ, файл удаляется. У целой папки, открытой как таблица, нет собственного пути, поэтому такой анализ не сохраняется — кнопка об этом говорит. На каждой карточке есть и Добавить в заметку дня: диаграмма уходит картинкой, а сводная таблица — таблицей Markdown, которая в заметке остаётся текстом, доступным для копирования и правки.
Для CSV одно действие — и выход, когда разделитель обманул. Открыть как таблицу открывает через DuckDB, со свободным SQL, диаграммой, сводной таблицей и областью анализа. Иногда разделитель не распознаётся (обычно из-за строк с разным числом столбцов), и таблица приходит с одним столбцом, внутри которого лежит вся строка. Тогда над таблицей появляется полоса: она сообщает, сколько столбцов, похоже, есть в файле, и предлагает терпимое чтение — оно читает строку за строкой, не требуя одинакового числа столбцов, и это то же чтение, которым пользуются поиск и ИИ. Оно фильтрует и сортирует, но не имеет свободного SQL, диаграммы и сводной таблицы. Для ещё не сохранённого текста или разделителя, выбранного вручную, используйте Вид → Показать как файл с разделителями….
Группировка по шаблону. В столбце с датами или кодами различных значений почти столько же, сколько строк, и группировка по ним ничего не говорит. Маска шаблона заменяет каждую букву на A, каждую цифру — на N, остальное оставляет как есть: 2027/10/10 превращается в NNNN/NN/NN. Миллионы строк сводятся к двум-трём формам, а то, что из них выбивается, — это и есть грязные данные (дата, пришедшая как 10-10-2027, код без префикса). В диаграмме это флажок Шаблон рядом с осью X; в сводной таблице — правый щелчок по карточке поля (действует по полю, чтобы скрестить форму кода с обычным измерением); в панели Структура самые частые шаблоны показаны под самыми частыми значениями каждого столбца. Вычисление выполняется в базе. В SQLite и обобщённом ODBC параметр отключён с указанием причины: нет текстовой функции, на которой основана маска.
PDF и изображения
Файлы .pdf открываются в собственном просмотрщике (Qt6::Pdf, без тяжёлых зависимостей), отрисовка идёт на процессоре и без WebEngine. Изображения открываются в режиме просмотра изображений; анимированные GIF воспроизводятся в анимированном режиме.
Панель вкладки предлагает шесть боковых панелей, по одной за раз: Оглавление (содержание, записанное в самом файле, — если его в PDF нет, кнопка отключена и объясняет причину), Миниатюры (страницы одним взглядом, отрисовываются по мере прокрутки), Поиск, Ссылки, Свойства (название, автор, даты, размер страницы и файла) и Выделения (отмеченные вами фрагменты, в порядке чтения).
Поиск (Ctrl+F) идёт по всему документу: совпадения подсвечиваются на страницах и перечисляются вместе с окружающим текстом, а F3 / Shift+F3 переходят между ними. Просмотр постепенный, поэтому список растёт по мере обхода документа.
Поле страницы принимает и номер, и печатную метку: в документе, где предисловие пронумеровано римскими цифрами, ввод 1 ведёт на печатную страницу «1», а не на первый лист. Кнопка режима страниц переключает непрерывную прокрутку и показ по одной странице.
PDF, защищённый паролем, спрашивает пароль при открытии (до трёх попыток); отмена просто оставляет вкладку неоткрытой. В пределах одного запуска LightNote пароль больше не спрашивается: приложение само открывает вкладку заново, когда освобождает её из-за простоя, и получилось бы, что помеху создаёт оно само. Если отметить «Запомнить пароль этого файла» в самом запросе, он будет действовать и в следующих запусках: пароль защищён средствами Windows (только для вас и только на этом компьютере), никогда не попадает в Git или в облако и не переносится при экспорте настроек. Чтобы удалить все: Настройки → Возможности → Пароли PDF. Защищённый PDF не открывается сам при запуске программы — вместо очереди из запросов пароля до появления окна он ждёт, пока вы его откроете.
В меню действий на панели: копировать текст страницы, экспортировать текст всего документа, копировать или сохранить страницу как изображение и отправить страницу в заметку дня. Панель Ссылки существует потому, что компонент PDF в Qt сам переходит по внутренним ссылкам, но игнорирует внешние, — именно отсюда открывается веб-адрес, с подтверждением.
Выделение. Кнопка Выделить включает маркер: проведите по тексту страницы, и фрагмент будет выделен; стрелка рядом выбирает цвет. Выделение привязывается к тексту, а не к прямоугольнику — поэтому оно следует за масштабом и режимом страницы, не съезжая, и поэтому не работает в отсканированном PDF без текстового слоя (программа говорит об этом вместо того, чтобы просто ничего не делать). На панели Выделения щелчок переходит на страницу, а контекстное меню добавляет заметку, копирует фрагмент или удаляет его. В меню действий панели Копировать выделения и Сохранить выделения как заметку… пишут конспект в Markdown: каждый фрагмент — цитатой, а на каждую страницу — ссылка, открывающая PDF в этом месте (statya.pdf#page=12). Цена: выделения сохраняются в файле рядом с PDF (statya.pdf.highlights.json — читаемый текст, который можно версионировать в Git), а не внутри него, поэтому они видны в LightNote и не видны в другой программе для чтения PDF. Если файл заменён другой версией, выделение, потерявшее своё место, помечается как таковое, а не закрашивает не ту фразу.
Ограничение: вне маркера выделение текста мышью недоступно, поскольку компонент PDF в Qt его не предоставляет. Чтобы забрать содержимое, используйте «копировать текст этой страницы», экспорт документа или само выделение.
Изображения: пометки на снимке
Инструменты
Изображение открывается во вкладке с собственной панелью: помимо поворота, отражения и масштаба она приносит инструменты пометок — путь от снимка экрана к указанию на главное и дальше в документацию. И чтобы начать, снимок экрана не нужен: Создать → Новое пустое изображение создаёт белый лист .png в отмеченной папке и открывает его сразу с Карандашом в руке — «Переместить», режим по умолчанию при открытии изображения, здесь нечего было бы тянуть.
Начальный инструмент — Переместить: перетаскивание по-прежнему двигает изображение, как и раньше. Выделить выбирает часть — перетаскиванием создать, потянув изнутри переместить, а маркерами по углам и сторонам изменить размер; Esc снимает выделение, Del стирает содержимое области. В режиме перемещения Shift+перетаскивание тоже выделяет. В любом инструменте средняя кнопка мыши двигает изображение.
Пипетка берёт цвет с самого изображения: левая кнопка кладёт его в цвет контура, правая — в заливку. Она читает изображение уже с пометками, поэтому годится и для того, чтобы повторить цвет только что сделанной пометки.
Остальные рисуют: Прямоугольник, Эллипс, Стрелка, Линия, Выделение (полупрозрачное, как маркер), Карандаш (свободная линия), Кисть, Нумерованный шаг (нумеруется сам — 1, 2, 3...), Текст, Размытие и Прожектор (затемняет всё, кроме выбранной области). При рисовании Shift фиксирует квадрат/круг и углы в 45°.
Цвета, толщина и размытие
Цветов два, в двух кнопках: цвет контура (он же цвет линии и метки) и цвет заливки, которой может и не быть. Без заливки прямоугольник и эллипс остаются только контуром, а нумерованный шаг и текст берут цвет контура фоном, а сама надпись выходит белой или чёрной — той, что даёт контраст. Если выбрать заливку, она становится внутренностью фигуры и фоном метки, а цвет контура становится цветом текста.
Кисть рисует цветом заливки мазком размером с толщину линии — круглым или квадратным, по кнопке рядом с толщиной. Одного щелчка уже достаточно, чтобы остался след. С белой заливкой это ластик: он закрывает то, что снизу.
Толщина действует на линию, на размер метки и на размер блока размытия; в инструментах, которые её не используют, поле гаснет. Цвет и толщина запоминаются между сеансами. Ctrl+Z и Ctrl+Y отменяют и возвращают пометки, а Очистить пометки убирает все сразу (это тоже можно отменить).
Размытие нужно, чтобы скрыть (токен, адрес почты, путь). Пока вкладка открыта, пометка обратима, но при сохранении или копировании пиксели этой области действительно уничтожаются: выходящий файл нигде не хранит оригинал.
Вырезать, вставить, повернуть и снять
Три операции с похожими названиями делают разное. Вырезать (Ctrl+X) копирует выделение в буфер обмена и стирает область, закрашивая её цветом заливки (белым, если её нет) — а выделение остаётся на месте, поэтому Вставить сразу после этого возвращает кусок ровно туда, откуда он вышел, плавающим: так и перемещают фрагмент изображения. Del — это вырезание без копирования. А Оставить только выделение в меню Изображение делает обратное: сохраняет область и выбрасывает остальное, меняя размер изображения.
Остальные из этой семьи: Копировать уносит изображение с пометками или только выделение; Вставить приносит изображение из буфера как плавающую вставку — двигайте и меняйте размер теми же маркерами, затем щёлкните снаружи (или нажмите Enter), чтобы закрепить, Esc отменяет; а Ctrl+A (или Ctrl+T) выделяет всё изображение. Есть также Сохранить (записывает пометки в сам файл), Сохранить как... и Отправить в заметку дня — она кладёт PNG в Anexos/ и вставляет ![]() в заметку. Пока есть несохранённые пометки, вкладка держит звёздочку, а при закрытии спрашивает, сохранить ли их.
Кнопка Изображение собирает всё, что действует на картинку целиком: поворот, отражение, изменение размера в процентах, уменьшение до 1600 / 1200 / 800 px по ширине (снимок экрана рождается слишком большим для документации), обрезка однотонных полей, добавление полей, тень и впечатывание пометок в изображение — последнее сразу превращает пометки в пиксели, что и позволяет размыть поверх пометки. Изменение размера уносит с собой и пометки, и толщину линии.
Чтобы снять экран, не выходя из LightNote: Снимок экрана... в меню области уведомлений (или Ctrl+Alt+P) замораживает рабочий стол, вы перетаскиванием выбираете область (Esc — отмена), и вырезанный фрагмент открывается в новой вкладке, готовый к пометкам.
Ограничения: уже нарисованную пометку нельзя ни переместить, ни изменить — отмените её через Ctrl+Z и нарисуйте заново; анимированные GIF и WebP открываются в режиме анимации, где пометок нет; а .svg растрируется при чтении, поэтому сохранение спрашивает, куда положить PNG.
HTML-страницы (.html)
Файл .html, открытый из дерева, становится вкладкой предварительного просмотра с настоящим движком вёрстки: flexbox, плавающие блоки, позиционирование, медиазапросы, градиенты, переменные CSS и селекторы CSS3. Именно поэтому современный отчёт — такой, какой генерирует ИИ, с карточками показателей, таблицей и графиком — выглядит здесь как в браузере, а не превращается в стену текста.
Текст выделяется: перетаскиванием — произвольно, двойным щелчком — слово, Ctrl+A — вся страница, Ctrl+C — копирование (в контекстном меню есть Копировать и Выделить всё).
На верхней панели есть Оглавление (заголовки страницы; щёлкните, чтобы перейти) и Найти (Ctrl+F — подсвечивает все совпадения, F3 и Shift+F3 переходят между ними, Esc закрывает). Масштаб ушёл с панели вкладки: он собран в одном месте, в строке состояния, как и во всех представлениях (см. Рабочее пространство и окна).
Экспорт в PDF разбивает страницу на листы A4, а текст остаётся векторным — PDF по-прежнему ищется, а текст выделяется. Вкладка также следит за файлом на диске: пересоздали отчёт — он обновится сам, не теряя позицию чтения. И страница, которая не выбрала собственные цвета, следует теме приложения; та, что задала свои, показывается как была задумана.
Ссылки работают: ссылка на другой файл той же папки открывается прямо здесь, #якорь прокручивает к разделу, а веб-адрес открывается в браузере.
Чего он не делает — это JavaScript и сеть: ничего не загружается. Если страница зависит от этого (скрипт, <canvas>, <iframe> или удалённый ресурс), появляется полоса с кнопкой Открыть в браузере. Совет для отчётов: попросите ИИ сделать HTML без JavaScript и без CDN, а график — встроенным SVG; тогда он откроется здесь полностью.
И всё же кое-что реагирует на щелчок, не выполняя никаких скриптов: блок <details> открывается и закрывается по заголовку (а на панели появляется Развернуть всё, если такой блок на странице есть), набор вкладок переключает видимую панель, а щелчок по заголовку таблицы сортирует строки — повторный щелчок по тому же столбцу меняет порядок на обратный, а столбец чисел сортируется по значению, а не как текст. Если соответствие вкладка→панель неоднозначно, ничего не меняется: страница остаётся такой, какой пришла.
Две вещи подменяются сами, потому что движок их не умеет: display:grid и gap становятся эквивалентным flexbox, а встроенный <svg> отрисовывается. box-shadow игнорируется. Чтобы вернуть прежний просмотрщик, снимите флажок Просмотр HTML с полной вёрсткой в Настройках → Общие → Возможности.
Печать
Файл → Печать… (Ctrl+P) открывает постраничный предварительный просмотр: лист выглядит так, как выйдет, — с полями, разрывом страницы и нумерацией. Кнопка печати находится внутри него, рядом с масштабом, переходом по страницам и настройкой бумаги. Печатаются заметка, код, страница HTML, изображение и открытый PDF; на других экранах пункт остаётся серым и называет причину. Та же кнопка есть на панели самого экрана: в заметке — рядом с кнопкой экспорта; в коде, в PDF, в изображении и на HTML-странице — на их собственных панелях.
На бумагу попадает то же, что показывает режим чтения: трансклюзия разрешена, нумерация рисунков на месте, а личный комментарий (%%…%%) остаётся за бортом. При тёмной теме содержимого лист выходит на белой бумаге — чёрная страница расходовала бы чернила и выбивалась бы из любого документа, который отдают другому человеку. Поля составляют 20 мм по бокам и 15 мм сверху и снизу, а нижний колонтитул несёт Страница X из Y. В предварительном просмотре кнопка Поля переключает между полями документа и минимальными, доступными принтеру; для PDF и изображения она начинается с минимальных, потому что файл уже несёт собственные поля. Рядом кнопка Тема меняет цвета отпечатка: по умолчанию стоит автоматически — именно она превращает тёмную тему в белую бумагу, — а в списке доступны светлые темы из каталога и ваши собственные: кто читает в Dracula Dark, может напечатать в Dracula Light, тот же язык цвета, сделанный для бумаги. Тёмные не предлагаются, потому что на бумаге они залили бы весь лист. Тема, которая уже используется, помечена в списке как (используется): выбрать её — значит ничего не изменить на листе.
В коде синтаксис выходит цветным на белой бумаге, с номерами строк на поле, а длинная строка переносится, а не обрезается: на бумаге нет горизонтальной прокрутки, чтобы дотянуться до того, что вышло за поле. Изображение выходит с нарисованной вами разметкой, а маленькое изображение не увеличивается — оно выходит в своём размере, по центру листа. GIF печатает кадр, который виден сейчас.
Печать PDF из LightNote растрирует страницы, и ваши выделения идут вместе с ними; ради лучшего типографского качества печатайте PDF из системной программы просмотра, где текст остаётся векторным. Экспорт в PDF (Файл → Экспорт заметки) — это другое и остаётся как было: кому нужен номер страницы или поля документа и в файле, тот отмечает две галочки в Экспорт с параметрами…; они выключены, чтобы не менять PDF у тех, кто уже экспортирует. В очень длинном документе предварительный просмотр пропускается, потому что он держит все страницы в памяти одновременно; приложение сразу открывает диалог печати, у которого такого ограничения нет.
Zip как папка (.zip)
Файл .zip открывается в собственной вкладке: дерево элементов
слева (имя, размер, дата) и содержимое выбранного элемента справа —
текст/код, Markdown (отрисованный), изображение или PDF — открытые
в памяти, без извлечения чего-либо на диск. Текст и Markdown можно
редактировать: Ctrl+S перезаписывает элемент прямо внутри
.zip.
Та же вкладка открывает .7z, .rar, .tar (включая .tar.gz, .tar.bz2 и .tar.xz), .cab и .iso — эти только для чтения: можно просматривать, открывать и извлекать элементы, но не редактировать. Записывать можно только .zip, потому что это единственный формат, который мы умеем безопасно переписывать (.rar проприетарный, и даже свободные библиотеки его не сжимают).
Изображения и PDF доступны только для чтения; очень большие элементы (и
.parquet) предлагают только Извлечь в…. Создание,
переименование и удаление элементов не поддерживается.
Защищённые паролем элементы читаются как обычно: при открытии одного из них LightNote спрашивает пароль (до трёх попыток), а если отметить «Запомнить пароль этого файла», больше не спрашивает — по умолчанию в пределах одного запуска, а с отметкой и в следующих (пароль защищён средствами Windows, только для вас на этом компьютере; удалить все можно в Настройки → Возможности). Обратите внимание на отличие формата от PDF: в .zip шифрование идёт по элементам, а оглавление остаётся открытым текстом, поэтому список файлов виден целиком даже без пароля — защищено только содержимое. .zip с зашифрованными элементами не открывается сам при запуске программы.
Блоки (.lnb)
Пакет блоков — это папка, имя которой оканчивается на
.lnb, представленная в дереве как единый элемент (двойной клик
открывает её). Каждый блок — реальный файл на диске; порядок хранится в файле
blocks.json в корне пакета. Работает как блокнот: стопка ячеек с
кодом или текстом. Блокнот Jupyter попадает сюда так: щёлкните правой кнопкой по .ipynb в дереве и выберите Импортировать как Блоки (.lnb). Каждая ячейка становится настоящим файлом — с историей версий и поиском, — а .ipynb остаётся на месте, ведь импорт это не преобразование. Сохранённый в блокноте вывод не переносится: запустите ячейку здесь, и получится настоящий результат — со временем и командой.
У каждой ячейки есть имя, кнопка типа (задаёт интерпретатор/лексер) и кнопки для копирования, вставки, удаления и запуска. Пункт Выполнить до сюда последовательно выполняет все ячейки кода до текущей; вывод (stdout+stderr) появляется на панели прямо под ячейкой. Создать пакет можно из дерева (Новый) или через Файл → Новый.
Ctrl+Enter выполняет ячейку с фокусом — тот же жест, что в редакторе SQL.
Результат сохраняется (как в лабораторном журнале): по завершении каждый
запуск становится файлом .md в saida/<ячейка>/
внутри самого пакета — со временем запуска, кодом выхода, длительностью, командой и
самим выводом. Это Markdown, поэтому его можно читать в любом редакторе,
версионировать в Git вместе с блокнотом и находить через
Чат с ИИ. При повторном открытии пакета над
панелью снова появляется полоса Последний запуск: щёлкните по ней, чтобы
увидеть результат, не запуская заново.
История: кнопка История рядом с этой полосой перечисляет прежние
запуски этой ячейки (время и код выхода) — удобно сравнивать, что та же ячейка
возвращала со временем. Храним 10 последних на ячейку; чтобы изменить это,
отредактируйте ключ historyLimit в blocks.json пакета
(0 отключает сохранение). Очень большой вывод обрезается (в файле
указано truncated: true). Переименование ячейки или смена её типа
переносит историю вместе с ней; удаление ячейки отправляет её историю в Корзину.
Ячейка SQL на настоящей базе: укажите блокноту
подключение .lnc в полосе сверху (Выбрать
подключение…) — и ячейки типа sql начнут выполняться в базе данных,
а не через интерпретатор. Результат SELECT становится таблицей в
файле вывода (настоящий Markdown — любой просмотрщик покажет её отформатированной);
INSERT/UPDATE и подобные сообщают, сколько строк изменилось,
а ошибка базы прерывает скрипт и записывает инструкцию, которая не прошла. Берём до
100 строк на запрос (файл предупредит, если их было больше) — результат это
заметка, а не копия таблицы.
Подключение хранится в blocks.json как относительный путь,
поэтому блокнот продолжает работать при переносе или синхронизации папки. Для
самодостаточного блокнота положите сам .lnc внутрь пакета: он считается
конфигурацией и не становится ячейкой. Это то же подключение, что и во вкладке
База данных — подключение в одном месте действует и в другом, а
пароль подчиняется правилам Секретной фразы. Без заданного
подключения ячейка sql по-прежнему выполняется настроенным интерпретатором, как
раньше.
Задачи (Kanban / Gantt)
Пакет задач (.lnt) открывает доску задач с представлениями
Kanban (колонки статусов, перетаскивание карточек), Gantt
(график по трудозатратам) и календарём. У каждой задачи может быть
заголовок, колонка (статус), трудозатраты в часах и связанная заметка
.md. Задачи также доступны ИИ через MCP и
CLI (создание, перемещение, обновление, чтение/запись
заметки).
Заметка задачи — такая же заметка, как любая другая. Встроенная панель теперь показывает тот же экран, что и заметки .md: Ctrl+E переключает текстовый редактор, чтение и форматированное редактирование, а тема заметки, оглавление и свойства работают как обычно. Она по-прежнему сохраняется сама — включая то, что вы только что набрали в форматированном режиме, при смене задачи или закрытии вкладки. Открытие заметки в отдельной вкладке тоже следует вашей настройке вида, а не навязывает текстовый редактор.
Поля задачи: помимо статуса и трудозатрат, у каждой задачи есть приоритет (окрашивает рамку карточки и влияет на сортировку в таблице), срок выполнения (красный значок при просрочке), несколько тегов, чек-лист подзадач (значок прогресса на карточке) и повторяемость (завершение повторяющейся задачи порождает следующее вхождение). Редактируются из контекстного меню (таблица/Kanban) и на панели Свойства.
Захват и списки: Быстрая задача в трее понимает естественный язык (например, Pay bill tomorrow 5pm #home !high; слова даты, времени и приоритета распознаются на английском и португальском). Кнопка Шаблоны сохраняет/применяет шаблоны задач; списки по сроку фильтруют «Сегодня»/«Ближайшие 7 дней»/«Просроченные»; сохранённые представления хранят фильтр+сортировку; а трей/лаунчер показывают напоминания о задачах со сроком сегодня или просроченных.
Доска Kanban: можно группировать колонки по статусу, приоритету или тегу, создавать дорожки (swimlanes), задавать лимиты WIP по колонкам (заголовок краснеет при превышении) и сортировать карточки. Навигация клавиатурой в стиле Linear: ←/→ перемещают фокус, Ctrl+←/→ перемещают карточку, N создаёт, Пробел завершает/возвращает и Delete удаляет. Также есть представление Календарь (по сроку выполнения).
Встроенная заметка: при выборе задачи её заметка .md
показывается рядом с представлениями (автосохраняется при переключении между
задачами); кнопка Заметка переключает редактор, а пункт Открыть
заметку во вкладке открывает её отдельно. Архивирование задачи
скрывает её из всех представлений; переключатель Показать архивные
показывает архивные задачи (приглушённо).
В Настройках задач можно задать Архивировать завершённые задачи через N дней: при открытии доски задачи, пробывшие в последнем столбце дольше этого срока, архивируются автоматически (0 = выключено).
Заметка по умолчанию открывается встроенной (двойной щелчок по задаче) и сохраняется сама по мере ввода — Задачи никогда не спрашивают «сохранить?» при закрытии. Внутри заметки работают действия ИИ (Ctrl+K / Ctrl+I).
Панель вкладки. Действия, зависящие от выбранной задачи (Удалить, Зависимости, История (Git)), и Экспорт в CSV собраны в кнопке ⋮. Кнопка Представления объединяет списки по сроку, сохранённые представления и показывать архивные — всё это действует на Таблицу. Ctrl+F переводит фокус в быстрый фильтр, а счётчик справа показывает, сколько задач осталось после фильтрации.
Пользовательская таблица (.lnd)
Пользовательская таблица (.lnd, через Файл →
Новый) — ваша мини-база данных: вы определяете столбцы «на лету» —
текст, число, дата, фиксированный список с цветами, путь, теги и
пароль — и заполняете строки как в электронной таблице, с сортировкой и
фильтрацией. Поле путь группирует строки в дерево (например,
Дом/Офис).
Ячейки типа пароль шифруются по отдельности с помощью секретной фразы и раскрываются по требованию. Как и Задачи, пакет сохраняется как текст, дружественный к Git (NDJSON) — его можно версионировать и сливать между машинами.
В текстовых столбцах открытие ячейки показывает плавающий
многострочный редактор: Enter вставляет разрыв строки, а
Ctrl+Enter подтверждает; сетка показывает текст в одну строку (с
…) и полное содержимое во всплывающей подсказке. Чтобы
изменить тип столбца, используйте меню заголовка: преобразование
текст → пароль шифрует значения секретной фразой; преобразование
пароль → текст запрашивает подтверждение и PIN/секретную фразу и
записывает содержимое как обычный текст (необратимо). Остальные преобразования
сохраняют значения.
Базы (сохранённые запросы по заметкам)
База (.lnq, в меню Файл → Создать → Новая база) — это
сохранённый запрос по вашим заметкам: фильтруйте по типу и по
свойствам и смотрите результат в виде таблицы или доски. База
не хранит никаких данных: строки — это ваши заметки .md, а
источник истины для каждой ячейки — frontmatter заметки. Удаление
.lnq не приводит к потере ни одной заметки.
Редактирование ячейки пишет в заметку. В таблице изменение свойства переписывает только эту строку frontmatter файла. На доске перетаскивание карточки из одной колонки в другую записывает новое значение свойства группировки (например, из читаю в прочитано).
Каждая заметка объявляет свои свойства во frontmatter (type,
status, author…). Используйте боковую панель
Свойства заметки, чтобы править их как типизированные поля (текст,
число, дата, флажок), а не как сырой YAML — см.
Заметки в Markdown.
Файл .lnq — это NDJSON (одна запись на строку), рассчитанный на
Git: две машины могут править одну и ту же Базу параллельно — одна добавляет
колонку, другая меняет фильтр — и слияние сохранит оба изменения без конфликта.
Объявленная схема (необязательно). По умолчанию LightNote выводит
поля каждого типа из того, что заметки уже используют, — объявлять ничего не нужно. Если
вы хотите закрепить схему, откройте Инструменты → Типы заметок... (или кнопку
шестерёнки на мини-панели Свойства заметки): объявите поля каждого типа, их
тип данных (текст, число, дата, флажок, список вариантов) и шаблон по
умолчанию. Со схемой поле список вариантов превращается в выпадающий список
допустимых значений, объявленные поля появляются в выборе колонок и фильтров Базы, даже
если их ещё не использует ни одна заметка, а кнопка Применить шаблон типа
вставляет заготовку заметки. Схема хранится в .lightnote/types.ndjson — это
объединяемый NDJSON, версионируемый в Git вместе с заметками; удалить её — не изменить ни
одной заметки, а лишь вернуться к выводу из использования.
Относительные даты в фильтре. В значении условия работают слова вроде today, yesterday, tomorrow, 7 days ago и in 2 weeks (а также 3 months ago, in 1 week). Благодаря им срок = today и срок < today (просрочено) остаются верными и завтра — раньше дату дня приходилось вписывать вручную, и сохранённый запрос устаревал за сутки. Значение — всегда точка во времени, а диапазон получается из сочетания с оператором: изменено > 7 days ago означает «то, что трогал на этой неделе». Заметка без читаемой даты в этом поле не попадает ни в одно сравнение дат, в том числе в отрицательное. Дата в формате ISO, написанная вручную (2026-09-01), по-прежнему считается текстом.
Индекс строится в фоне. База и Инструменты → Запрос к заметкам (SQL) обходят заметки, прежде чем показать результат — stat по каждому файлу плюс чтение тех, что изменились с прошлого раза. Теперь это происходит вне окна: База открывается сразу, пишет в своей панели Индексация заметок… и заполняется, когда обход завершится; кнопка Переиндексировать в это время недоступна, потому что второй обход той же папки ничего не даст.
Поиск по файлам и раздел «Ожидающие»
Поиск по файлам и документам
Используйте Ctrl+Shift+F для глобального поиска на вкладке Поиск боковой панели, работающего на ripgrep: поддерживает regex, учёт регистра, целое слово и массовую замену. В текущем файле Ctrl+F ищет, а Ctrl+H заменяет.
Поиск добирается и до документов. Кроме заметок
.md, он читает текст PDF, таблиц
(.xlsx/.ods), документов Word (.docx), текста
LibreOffice (.odt), презентаций (.pptx) и книг
(.epub). То же касается Чата с ИИ и поиска по смыслу. Совпадение
внутри PDF открывает файл на странице этого фрагмента. Извлечённый текст лежит
в кэше вне рабочего пространства, обновляется сам, когда файл меняется, и
удаляется, когда файла больше нет. Первый раз стоит времени: при открытии пространства с большим числом PDF запускается извлечение на несколько минут, и пока оно не закончится, документов в поиске ещё нет. Вкладка Поиск говорит об этом, пока это происходит (документы готовятся (12 из 80)), и сообщает, когда можно повторить поиск. Со второго раза переделывается только изменившееся.
Также охвачены .rtf, .xps/.oxps, презентации LibreOffice (.odp), субтитры (.srt/.vtt), текстовые таблицы (.csv/.tsv), сохранённые страницы (.html/.mhtml), архивная почта (.eml), тетради Jupyter (.ipynb), списки литературы (.bib/.ris) и простые текстовые файлы (.txt). У языков текстовой разметки есть собственный читатель: reStructuredText (.rst), AsciiDoc (.adoc), Org (.org) и Typst (.typ). Раздел становится заголовком, список и таблица — нашими, формула рисуется, а преамбула остаётся за бортом: иначе #set page(...) и :stem: latexmath стали бы индексируемыми фрагментами, а имя раздела не путешествовало бы вместе с его текстом. Находка в субтитрах открывает момент, когда фраза была произнесена. Отсканированный PDF не исчезает молча. Документ, в котором есть страницы и нет текста (фотография каждой страницы, без OCR), попадает в индекс со строкой, которая об этом говорит, а вкладка Поиск сообщает, сколько таких документов, — без этой фразы вы искали бы то, что есть в книге, не нашли бы и решили, что поиск сломан. И его можно сделать читаемым: если установлен Tesseract (LightNote предлагает поставить его в один клик), в меню ⋯ у PDF появляется Распознать текст (OCR)…. Он выполняется один раз, для документа и может занять несколько минут — после этого текст лежит в индексе, как у любого другого PDF. Уведомление на вкладке Поиск ведёт к первому такому документу. Кэш хранит текст в открытом виде. Он лежит в вашей пользовательской папке, вне рабочего пространства: тот, у кого есть к ней доступ, прочтёт там содержимое ваших документов — даже если оригинал лежит на зашифрованном диске. Файл .lne (зашифрованная заметка) никогда не попадает в кэш: он и существует ради того, чтобы не быть читаемым на диске.
LaTeX читается собственным модулем. Файл
.tex не читается как сырой текст: преамбула остаётся за бортом,
\section становится заголовком, \cite —
[@key], а формула проходит целиком — её рисует тот же движок, что рисует
математику в ваших заметках. Совпадение открывает файл на той строке, откуда
оно пришло. В контекстном меню файла — или на панели вкладки, когда он открыт — есть
Импортировать как заметку (.md): заметка создаётся рядом, .tex
остаётся на месте, а повторный импорт ничего не перезаписывает. Обратный путь —
Экспорт в LaTeX (.tex)... на панели заметки.
Предпросмотр документа и исходный код
Открытие документа показывает предпросмотр текста. .docx,
.odt, .epub или .pptx открывается только для
чтения, с извлечённым текстом и изображениями документа — без стилей
Word, их расположения на странице, сложных таблиц и записи исправлений. Вкладка по-прежнему остаётся документом: имя, папка и
сессия указывают на него, а не на кэш. Таблица .xlsx по-прежнему
открывается в табличном виде, где видно намного больше.
Превратить документ в заметку. Через Файл → Импортировать документ как заметку... (сразу несколько), контекстное меню дерева или кнопку Импортировать как заметку (.md) в самом предпросмотре файл .docx, .odt, .epub, .rtf, .pptx, .html, .eml, PDF или LaTeX становится редактируемой заметкой рядом с файлом. Вместе с ним приходят текст с заголовками, списками, ссылками и таблицами, сноски, формулы Word в виде формул LaTeX и изображения — они сохраняются в папке Вложения рядом с заметкой. Название, автор и дата документа становятся свойствами, а source указывает, из какого файла пришла заметка. Оригинал остаётся на месте — импорт это не преобразование, — а повторный импорт создаёт имя 02.md, не перезаписывая то, что вы отредактировали. Этот пункт не появляется для блокнота Jupyter (он становится Блоками), для .csv (открывается как таблица), для библиографии .bib/.ris (цитаты читают её напрямую) и для исходного кода. Структура берётся из стилей документа: заголовок Word распознаётся и тогда, когда имя стиля переведено, стили знаков дают полужирный, курсив и код, абзацы цитаты и кода становятся нашими блоками, а автоматическое оглавление превращается в [TOC], которое заметка поддерживает в актуальном состоянии; из .rtf приходят списки, таблицы и ссылки, а из HTML — в том числе сохранённого Word и Google Документами — и из EPUB приходят заголовки, вложенные списки и таблицы.
Посмотреть, что папка использует из другого редактора. В меню Инструменты → Проверить совместимость папки... LightNote читает заметки открытой папки и делит найденное на три группы: то, что он отображает (викиссылка, трансклюзия, выноска, метка, выделение, формула, сноска, задача, маркер блока), то, что остаётся в файле, но не отображается (запрос плагина dataview, tasks или query, холст .canvas, база .base и трансклюзия блока), и то, что можно преобразовать в здешнее написание. Преобразование — ваш выбор, а не побочный эффект сохранения: отметьте конструкции, посмотрите предпросмотр рядом и подтвердите. Каждый изменённый файл перед записью попадает в Историю файла, а открытое с несохранёнными изменениями остаётся в стороне. Сегодня преобразований два, и ни одно ничего не стоит на стороне Obsidian, который читает оба написания: ссылка obsidian:// на эту папку становится [[заметка]] (ссылка на другое хранилище не преобразуется, потому что изменился бы адрес назначения), а сноска в строке ^[текст] становится [^n], с определением в конце.
Перенести целый архив из Notion. В Notion выполните Export → HTML (или Markdown & CSV) с Include subpages, положите скачанный .zip — или папку — внутрь рабочего пространства, создайте папку назначения и запустите lnote vault-import --path <экспорт> --out <назначение> (или инструмент vault_import из ИИ-ассистента). Распаковывать не нужно — даже экспорт всего рабочего пространства, внутри которого лежит ещё один .zip. Каждая страница становится заметкой: свойства страницы становятся свойствами заметки, цветная выноска Notion становится нашим блоком (в HTML тип определяет цвет; Markdown цвет не хранит, и блок приходит как заметка), задача приходит с отмеченной или пустой галочкой, уравнение становится формулой LaTeX, сворачиваемый блок — блоком <details> (а сворачиваемый заголовок — заголовком), оглавление страницы — [TOC], а ссылки между страницами переписываются на новые заметки — две страницы с одинаковым названием уживаются, потому что вторая становится имя 02.md, а ссылки по-прежнему ведут к нужной. Базы данных копируются как .csv в Anexos, а написанная в Notion #тема остаётся текстом: там она не была меткой и здесь ею не становится. Ничего не перезаписывается, а рядом пишется заметка-отчёт: сколько заметок и вложений вошло и какие ссылки не нашли цели — они остаются ровно такими, как были написаны.
Жест есть в меню. Файл → Импорт из другого приложения... открывает помощник: выберите папку или .zip, который вы экспортировали (подойдёт и .enex из Evernote), и приложение-источник будет распознано по виду имён файлов — если нет, выберите его в списке рядом. Папка читается целиком, вместе с подстраницами. Назначение уже заполнено новой папкой внутри рабочего пространства с именем приложения, чтобы архив не смешался с вашими заметками. Чтение и запись идут вне окна, а в конце экран сообщает, сколько заметок и вложений вошло и сколько ссылок переписано.
Пять приложений. Из Notion — папка или .zip, экспортированный в HTML или в Markdown; из Evernote — .enex; из Joplin — .jex (или папка MD + Front Matter); из Logseq — папка графа, та, в которой лежит logseq/config.edn; из Roam Research — .json экспорта. Везде блокнот и пространство имён становятся папками, журнал попадает в папку ежедневных заметок с именем гггг-ММ-дд, задача становится - [ ], выделение — ==вот так==, а ссылка на блок — текстом того блока в кавычках и ссылкой на страницу, где он лежит: синтаксис чужого приложения в ваше рабочее пространство не попадает. То, чему здесь нет соответствия, например запрос Logseq или таблица Roam, остаётся кодом в строке, а отчёт сообщает, сколько раз.
Исходный код тоже может попасть в поиск по смыслу. В Рабочее пространство → Настройки этой папки есть Включать исходный код в поиск по смыслу: файлы кода индексируются вместе с заметками, по одному фрагменту на функцию или класс — именно это позволяет вопросу вроде «где я обрабатываю таймаут?» найти функцию целиком, а не кусок, обрезанный посреди if. .gitignore учитывается. По умолчанию выключено, и настройка эта — папочная: заметки меняются медленно, код меняется весь день, а рабочий репозиторий даёт десятки тысяч фрагментов, и каждый из них — вызов, за который берёт деньги ваш провайдер встраиваний.
Подсветка, метки и «Ожидающие»
Подсветка и метки — разные вещи. Быстрый поиск (Ctrl+F) лишь подсвечивает совпадения янтарным цветом: это временно и исчезает, когда вы закрываете панель или очищаете поле. А Отметить всё в Правка → Расширенный поиск… — это ваше решение: совпадения окрашиваются красным, и на соответствующие строки добавляется закладка (синий кружок на поле), которая остаётся, пока вы не воспользуетесь пунктом Очистить метки. Эти два канала независимы: закрытие быстрого поиска не стирает то, что вы отметили, а очистка меток не убирает подсветку поиска. Оба показываются в полосе меток мини-карты, каждый своим цветом. Очистить метки убирает только кружки, созданные командой Отметить всё: закладка, поставленная вами вручную (Ctrl+F2) на строке с совпадением, остаётся на месте.
Раздел Ожидающие боковой панели собирает в одном месте маркеры
TODO/FIXME из кода и задачи (- [ ]) из
заметок Markdown рабочего пространства — клик сразу переходит к нужной
строке.
Версионирование (упрощённый Git)
Клонирование репозитория
Чтобы работать с уже существующим репозиторием, используйте Файл → Клонировать репозиторий Git... — этот пункт есть также на стартовом экране и в панели контроля версий папки, которая ещё не является репозиторием. Вставьте адрес HTTPS или SSH, который показывает страница репозитория; подойдёт и URL самой страницы, и целиком скопированная команда git clone .... Выберите базовую папку и имя папки: мастер покажет, где она будет создана, и предупредит, если там уже что-то есть. В дополнительных параметрах находятся ветка, поверхностный клон (только последний коммит) и подмодули.
Когда сервер требует вход, LightNote спрашивает в окне: имя пользователя и токен, парольную фразу ключа SSH или подтверждение ключа сервера, которого этот компьютер ещё не видел — тогда окно показывает отпечаток и ссылку на список, опубликованный сервисом, а по умолчанию выбрано не доверять. Ответ уходит прямо в Git, и LightNote его не сохраняет; сохраняет диспетчер учётных данных Git, если он установлен (Git for Windows содержит Git Credential Manager). Доверие к ключу записывает его в ~/.ssh/known_hosts — так же, как сделал бы сам ssh.
Если клонирование не удалось, экран объясняет, что произошло, и предлагает выход: попробовать по HTTPS, когда ключ SSH отклонён; использовать сертификаты Windows, когда корпоративный прокси проверяет HTTPS; загрузить только последний коммит, когда соединение обрывается на полпути; или использовать длинные пути, когда Windows не даёт создать файл. В технических подробностях лежит сообщение Git, а то, что не удалось распознать, можно отправить ИИ. По завершении мастер открывает клонированную папку в этом окне или в новом.
Контроль версий открытой папки
Версионирование включается по желанию для каждого рабочего пространства. Включите его в Инструменты → Настройки рабочего пространства: LightNote создаст Git-репозиторий (если его ещё нет) и покажет боковую панель версионирования (Ctrl+Shift+G).
В автоматическом режиме LightNote сам сохраняет версии (коммиты) в моменты, выбранные в общих настройках (при сохранении, при закрытии вкладки или окна). В ручном режиме вы пишете сообщение и сохраняете версию на панели. Индикатор в строке состояния показывает состояние (нет изменений, X изменено…) и по клику открывает настройки рабочего пространства. Можно просмотреть diff каждого файла и восстановить (отменить) несохранённые изменения.
У автоматизации есть 3 уровня для каждой папки (в Настройках рабочего пространства): Вручную (ничего автоматически), Автокоммит (сам сохраняет версии, но не синхронизирует) и Полностью автоматически (коммитит и синхронизирует — push после коммита + периодический pull; требует настроенные учётные данные Git без запроса пароля). Панель показывает строку состояния с ↑ для отправки / ↓ для получения относительно удалённого репозитория, а основная кнопка меняется с коммит на Синхронизировать, когда есть версии для отправки, — это явно показывает, что после сохранения ещё нужно синхронизироваться.
В панели Git и в меню Git дерева есть Добавить (git add) и Восстановить (git restore) для каждого файла, а также единственное Посмотреть изменения, которое открывает экран сравнения.
Экран сравнения показывает обе версии бок о бок, выровненными: одинаковые места всегда стоят друг напротив друга, и на каждой стороне видны номера строк её файла. Изменённая строка выделяется янтарным, а внутри неё подсвечивается то, что поменялось. Кнопка Единый режим переключает на формат патча, Поменять стороны меняет основу сравнения, а F8 / Shift+F8 переходят от одного изменения к другому.
История и полоса изменений
Кнопка История на панели редактора кода и заметки открывает список версий открытого файла (тот же раздел боковой панели). Он объединяет коммиты и локальные сохранения, которые LightNote делает при каждом Ctrl+S, поэтому работает и в папке, которая не является репозиторием. В каждой строке — тема, автор, когда это было и сколько строк прибавилось и убыло; точка отличает ваш коммит, сохранение самого LightNote и коммит из сессии ИИ. Если есть незакоммиченные изменения, они идут первой строкой. Щелчок по версии показывает, что изменилось в ней; открыть версию целиком, сравнить с текущей и сравнить две отмеченные версии — в меню правой кнопки.
При включённом контроле версий цветная полоса на поле отмечает строки, изменённые с последнего коммита, — и в редакторе кода, и в заметке, и она следует за тем, что вы набираете: исчезает, когда вы отменяете правку до исходного вида, не дожидаясь сохранения. Выключить — Вид → Полоса изменений; выключенная, она не просто скрыта: ничего не вычисляется. Щелчок по полосе показывает, как фрагмент выглядел раньше, с кнопками Вернуть этот фрагмент (Ctrl+Z отменяет), Скопировать оригинал и Открыть в сравнении, которая открывает полное сравнение сразу на этой строке. Одна оговорка про локальную историю: она хранится по пути, поэтому переименование файла теряет его локальные сохранения — коммиты Git не теряются.
Снимки состояния и резервные копии
В меню ⋯ панели версионирования (или в меню Инструменты):
- Создать снимок: отмечает текущее состояние меткой даты/времени, чтобы позже можно было к нему вернуться.
- Восстановить снимок: выберите снимок и действие — вернуть файлы, сохранив историю (рекомендуется), отмотать историю к этой точке или открыть как отдельную копию.
- Экспортировать копию (.zip): сжимает всё рабочее пространство в автономный файл (со встроенным маркером проекта), чтобы отправить или сохранить в другом месте.
- Переместить папку рабочего пространства…: перемещает корень на диске и корректирует пути в сессии и реестре.
Просмотр изменений (контрольные точки)
Инструменты → Просмотреть изменения… показывает в одной вкладке сводный diff всех изменений, произошедших в рабочем пространстве с некоторой базовой точки: список добавленных/изменённых/удалённых файлов слева и diff выбранного файла справа. Функция создана для того, чтобы просматривать, что изменила сессия ИИ-CLI, прежде чем принять работу.
Базой может служить последняя версия (HEAD) или контрольная точка: создайте её перед началом задачи (кнопка прямо на вкладке) и позже сравнивайте с ней. Контрольные точки не создают коммитов и никогда не затрагивают вашу историю. Требует включённого версионирования для папки.
Пакет замечаний. При разборе сессии ИИ кнопка Комментировать (также в контекстном меню списка файлов) записывает замечание к выбранному файлу — привязанное к выбранному фрагменту. Замечания накапливаются в списке и уходят в терминал CLI только после нажатия Отправить в сессию — все одним сообщением. Это сделано намеренно: если отправлять по одному, агент исправляет одно и ломает другое, потому что каждый круг не видит остальных замечаний. После правок замечания остаются в списке, чтобы вы могли проверить, учтены ли они; отметьте решённые, а остальное войдёт в следующую отправку. Если агент перепишет прокомментированный участок, замечание блекнет, а не исчезнет. Отправка подтверждается в строке состояния, а спящий сеанс автоматически возобновляется, чтобы принять пакет.
Сравнение файлов (diff)
Инструменты → Сравнить два файла… открывает оба файла бок о бок (два редактора) и построчно отмечает различия. Сравнение доступно только для чтения.
Кнопки ◀ / ▶ (или F8 / Shift+F8) переходят к предыдущему/следующему изменению. Из панели Git можно также сравнить файл бок о бок с сохранённой версией (HEAD против диска).
Запуск кода (F5)
Инструменты → Выполнить файл (F5) сохраняет текущий файл и
запускает его в терминале, согласно интерпретатору, зарегистрированному для
расширения. По умолчанию поддерживаются .py, .sh,
.bat, .cmd и .sql; редактировать/
добавлять интерпретаторы можно в Настройки → Выполнение.
Команда — это шаблон с {file} (файл), {folder}
(папка) и {name} (имя) — например, для Python:
python {file}. Можно также отправить в терминал только
выделение/текущую строку клавишами Ctrl+Shift+Enter. В
Блоках каждая ячейка запускается через тот же
механизм.
У кнопки Выполнить есть стрелка, чтобы выбрать и запомнить целевой терминал, когда открыто несколько терминалов.
Кликабельные ошибки. В панели вывода (F6) ссылки вида файл:строка становятся ссылками: Ctrl+щелчок или двойной щелчок открывает файл ровно в этом месте. Работает с трассировками Python, стеками Node, ошибками компилятора (gcc/clang/MSVC) и выводом линтеров. Ссылкой становится только то, что действительно есть на диске, — остальное остаётся текстом.
Перебор ошибок. В панели вывода F8 переходит к следующей ошибке, а Shift+F8 — к предыдущей (кнопки есть и на панели). Переход цикличен: вывод прокручивается к ссылке, фрагмент подсвечивается, а файл открывается ровно в этом месте.
Терминал и ИИ-CLI
Индикатор состояния команды. Рядом с каждой выполненной командой появляется точка: синяя, если успешно, красная, если с ошибкой (во всплывающей подсказке — время, длительность и код завершения). LightNote включает это автоматически в PowerShell и Git Bash, не меняя вашу настройку, — переключатель в Настройки → Терминал → Интеграция с оболочкой. Другие оболочки (cmd, WSL) или пользовательские команды точку не показывают.
Откройте встроенный терминал (полноценный VT-эмулятор через ConPTY)
клавишами Ctrl+' (в раскладке US также Ctrl+`). Он становится вкладкой и может перемещаться между
областями окна. Доступные оболочки и ИИ-CLI, обнаруженные в PATH
(например, claude), настраиваются в Настройки → Терминал и
Настройки → ИИ-ассистенты. В меню Новый терминал выбор ИИ-CLI
открывает этот CLI как терминал — TUI/цвета отображаются как обычно, а
выход из него закрывает вкладку.
Запланировать отправку. В контекстном меню терминала (правый клик) пункт Запланировать отправку… позволяет отправить Enter (или некоторый текст) позже — удобно, чтобы возобновить работу ИИ-CLI после сброса лимита использования, не следя за этим самостоятельно. Выберите триггер: в указанное время, через некоторое число минут, каждый интервал (повторяющийся) или когда терминал простаивает. Компьютер удерживается активным до срабатывания. Расписание действует, пока вкладка терминала открыта.
Можно иметь несколько расписаний одновременно. Если хотя бы одно есть, пункт меню показывает Запланированные отправки (N)… и открывает менеджер: таблицу с терминалом, тем, что будет отправлено, временем и обратным отсчётом в реальном времени до следующего срабатывания, с кнопками Новый, Изменить и Удалить. Пока есть расписания, в строке состояния появляется индикатор с часами и счётчиком (клик открывает менеджер), а на вкладке терминала, для которой запланирована отправка, появляется маленький значок часов.
Уведомление о завершении хода ИИ. Когда терминал ИИ-CLI затихает — признак того, что агент закончил свой ход, — LightNote сообщает об этом: появляется всплывающее уведомление (щёлкните по нему, чтобы перейти к этому терминалу), а вкладка мигает несколько раз и затем сохраняет подсветку, пока вы её не откроете. Если окно свёрнуто, его кнопка на панели задач тоже мигает. Уведомление работает только для терминалов ИИ-CLI и только когда вкладка не в фокусе. Включить/выключить и настроить длительность тишины можно в Настройки → Терминал → Уведомление о завершении хода ИИ.
Терминалы возвращаются вместе с окном. Когда вы закрываете и снова открываете рабочее пространство, терминалы обычных оболочек (Командная строка, PowerShell, Bash) открываются заново — причём в той папке, в которой вы были, а не в той, где терминал запустился. Содержимое экрана не возвращается, но история команд принадлежит самой оболочке и остаётся на месте: стрелка ↑ работает как обычно. Сессии ИИ-ассистента сюда не входят и по-прежнему предлагаются отдельно, потому что новый терминал — это не тот же диалог. Не возвращаются и переменные окружения или окружения, включённые вручную в той сессии (например, venv): терминал откроется в нужной папке, но это будет новая оболочка.
ИИ-ассистент для выделенного текста (Ctrl+K / Ctrl+I)
Спросить и отредактировать с ИИ
ИИ по умолчанию. Вверху раздела Настройки → Ассистенты ИИ параметр ИИ по умолчанию выбирает ассистента, используемого Ctrl+K/Ctrl+I, чатом Чат с ИИ (можно менять в рамках сессии) и автоматическими задачами (переписать вопрос, обобщить, сводка аудио, создать контекст). Он перечисляет и CLI, и API-провайдеров. Транскрипция аудио и embeddings имеют собственного провайдера, и LightNote предлагает модель в зависимости от выбранного провайдера.
Нажмите Ctrl+K (Спросить ИИ) или Ctrl+I (Редактировать с помощью ИИ) в редакторе — с выделением или без — чтобы открыть плавающее всплывающее окно в стиле встроенного чата: поле промпта уже заполнено выделенным текстом ниже пустой строки; наберите инструкцию над ним и отправьте клавишами Ctrl+Enter. Во всплывающем окне выбирается ИИ (модель по умолчанию уже выбрана) и режим результата: заменить выделение через diff (Оригинал × Предложение, с кнопками Принять / Копировать / Отклонить) или просто отобразить ответ как текст.
LightNote запускает ИИ-CLI в режиме «одного запроса» (без открытия терминала). CLI и ИИ по умолчанию настраиваются в Настройки → ИИ-ассистенты.
Подключение модели
Модели через API. Помимо локальных CLI, можно зарегистрировать модели LLM через API, совместимый с OpenAI (OpenAI, Groq, DeepSeek, OpenRouter, Gemini, Anthropic, локальные инстансы вроде Ollama/LM Studio…) в разделе Настройки → ИИ-ассистенты. Выберите провайдера из каталога (базовый URL уже готов), вставьте ключ (хранится в закодированном виде только на этой машине), используйте Получить модели… и Тест. Зарегистрированные модели появляются в том же селекторе Ctrl+K, вместе с CLI.
Подключение в один шаг. Обычный путь — не заполнять таблицу: в разделе Настройки → ИИ-ассистенты нажмите Подключить ИИ…, выберите провайдера (в списке отмечены те, у кого есть бесплатный тариф, и те, что работают на вашем компьютере, без ключа), пройдите три шага, откройте кнопкой страницу ключей и вставьте ключ. Адрес и модель LightNote заполнит сам и проверит подключение перед сохранением — неверный ключ обнаружится сразу, а не посреди разговора. В списке сверху видно, что уже подключено, а для неполных записей — чего не хватает («ключ не вставлен», «модель не выбрана»); двойной щелчок снова открывает мастер на этом провайдере.
Тонкая настройка. Адрес, модель, разрешение MCP, команды CLI, расшифровка аудио и эмбеддинги по-прежнему доступны в разделе Дополнительно внизу страницы — а в самом мастере, в Дополнительных параметрах, можно изменить базовый URL и модель перед подключением. Ничего не убрано: это просто перестало стоять на пути новичка. У встраиваний есть ещё необязательное поле Размерность: некоторые модели умеют возвращать вектор поменьше (512 вместо 1536), и кэш уменьшается вдвое почти без потерь. Если не уверены, оставьте (по умолчанию модели) — не всякий провайдер принимает этот параметр. Смена значения обесценивает кэш: векторы разной размерности не сравниваются, поэтому он отбрасывается и перестраивается при следующем поиске, а это новые вызовы.
Не всякий сбой одинаков. LightNote различает классы сбоев, потому что они требуют противоположных действий. Перегрузка провайдера и ограничение частоты проходят сами: приложение повторяет запрос самостоятельно, соблюдая время, которое попросил провайдер, и ошибку вы увидите, только если и это не помогло. Баланс или лимит расходов не пройдёт ни от каких повторов — сообщение так и говорит, чтобы вы не пробовали снова. Слишком длинный разговор требует нового сеанса, а не другой модели. И сбой самой модели — снята с поддержки, вне вашего аккаунта, вне вашего тарифа или приняла запрос и не ответила — единственный, который решается сменой модели. Когда запрошенное ожидание слишком долгое, сообщение говорит, сколько секунд он попросил, вместо того чтобы оставить окно замершим.
Менять модель самостоятельно. Отметьте Менять модель автоматически, когда текущая не работает, и LightNote попробует — в порядке, показанном тут же — модели, рекомендованные для этого провайдера. Флажок снят намеренно: каждая попытка — это запрос, оплачиваемый с вашего счёта. Замена никогда не стоит дороже выбранной вами модели — список публикуется от самой дорогой к самой дешёвой, и приложение идёт по нему только вниз; своя модель, которой нет в списке, сразу опускается до самой дешёвой. У провайдера сохраняется только окончательный сбой; если подвела сеть, замена действует лишь для того запроса, а ваш выбор остаётся в силе. Замена никогда не происходит молча: уведомление сообщает, какая модель ответила и была ли смена сохранена.
И предупреждение, которое приходит раньше сбоя. Автоматическая замена срабатывает только после того, как запрос уже не прошёл, — но каталог моделей, который LightNote опрашивает сам, обычно узнаёт о снятии с поддержки раньше. Когда модель, которую LightNote настроил сам для провайдера, пропадает из каталога, об этом сообщает уведомление, а в разделе Настройки → ИИ-ассистенты появляется кнопка перехода на замену — которая, по тому же правилу, никогда не дороже. Предупреждение действует только для модели, выбранной приложением и ни разу вами не тронутой: модель, которую вы вписали сами, — ваш выбор, и LightNote в него не вмешивается.
Когда не отвечает никто. LightNote говорит, что произошло, и предлагает сменить модель, использовать другого ассистента или отключить этого провайдера, пока вы не разберётесь. Отключённый провайдер (столбец Активен в таблице, в разделе Дополнительно) исчезает из списков, не теряя ни ключа, ни остальных настроек. В списке ассистентов каждый указывает, локальный он или в облаке — выбрав того, что в облаке, вы отправляете текст за пределы своей машины.
Без ключа: локальная LLM
Ещё нет ни одного ИИ? Если нажать Ctrl+K, когда не подключён ни один помощник, LightNote объяснит это и предложит подключить его сразу же — и как только подключение готово, запрошенное действие продолжится без повторного нажатия.
Локальная LLM (без ключа). Локальным провайдерам — Ollama, LM Studio, llama.cpp — ключ API не нужен: выберите одного из них в разделе Добавить (в списке видно, запущен ли сервер) и нажмите Получить модели…, чтобы выбрать из уже загруженных моделей. Если Ollama не установлена, LightNote предложит её установить. При первом запуске она уже добавлена — остаётся только выбрать модель. Локальная модель может отвечать заметно дольше (особенно при первой генерации, пока модель загружается), поэтому LightNote ждёт её гораздо дольше, чем облачный сервис. Ваш текст не покидает компьютер.
Принятие, промпты и где живут действия
Принимать по блокам. Когда результат приходит в виде diff, не обязательно принимать всё: у каждого изменённого блока есть флажок, чтобы включить его или нет, и итоговый текст собирается только из оставленных блоков. Промпт также несёт автоматический контекст файла (путь, язык и строки вокруг выделения), чтобы ИИ отвечал точнее, а вам не нужно ничего вставлять.
Библиотека промптов. ИИ → Библиотека промптов… хранит многоразовые промпты как файлы .md в папке Prompts/ вашего рабочего пространства — открытый формат, версионируемый в Git и часть вашего второго мозга. В выборе есть поиск, предпросмотр и кнопка создания нового промпта. При выборе поля {selection}, {file}, {folder}, {name} и {language} заполняются контекстом текущего редактора (ваши собственные переменные сохраняются), а текст подставляется в поле Ctrl+K либо отправляется в активный ИИ-терминал, без отправки запроса.
Не только в редакторе кода. Действия ИИ (Ctrl+K / Ctrl+I и контекстное меню) работают также в редакторе Markdown, во встроенной заметке Задач и в редакторе SQL-запросов базы данных — в каждом всплывающее окно открывается над курсором и применяет результат на месте.
Все действия ИИ находятся в меню ИИ (кнопка ☰ и кнопка с волшебной палочкой на панели действий): Спросить ИИ (Ctrl+K), Изменить с ИИ (Ctrl+I), Сессии ИИ, Чат с ИИ, Библиотека промптов, Создать файл контекста проекта, Включить ИИ в этой папке и Настроить помощников ИИ.
Окно остаётся открытым, пока вы пишете. Оно не закрывается при щелчке в редакторе — можно перечитать код или выделить другой фрагмент, не теряя уже набранную инструкцию. Закрывают его Esc, ✕ самого окна и действия с результатом (Принять/Отклонить). При переходе на другую вкладку оно убирается, сохраняя написанное: вернитесь к тому же файлу, нажмите Ctrl+K — и инструкция появится там, где вы её оставили.
Сеансы ИИ
Сеансы и изолированная копия
ИИ → Сеансы ИИ… открывает кокпит, который перечисляет по карточке на сеанс каждый терминал ИИ-CLI, открытый в любом окне LightNote, — с цветной точкой состояния, именем CLI, окном и метками того, что требует внимания (запланированные отправки, изолированная копия). Двойной щелчок фокусирует терминал; меню ⋯ карточки (или правая кнопка) предлагает просмотреть изменения этого сеанса (открывает экран просмотра с базой на контрольной точке, созданной в начале сеанса, — см. Просмотр изменений) и запланировать отправку. Это способ следить за несколькими сеансами «vibe coding» одновременно, не теряясь между окнами.
Когда вы открываете ИИ-CLI как терминал внутри Git-репозитория, LightNote автоматически сохраняет контрольную точку (метка «Сеанс …»), чтобы позже точно увидеть и откатить именно то, что изменил этот сеанс. Функцию можно отключить в Настройки → Общие → Функции.
Изолированная копия (worktree): в папках с Git LightNote может запускать ИИ-ассистента в изолированной копии папки (в отдельной ветке), не трогая файлы, которые вы правите вручную. В первый раз он спрашивает, затем работает автоматически (включается/выключается по папке в Настройках рабочего пространства → Интеграции). Метка изолированная копия отмечает сеанс (ветка и путь — во всплывающей подсказке), а пункты Слить… (переносит изменения в вашу папку — если есть несохранённые изменения, сначала спросит) и Отбросить… (выбрасывает копию и ветку) завершают цикл.
Простой, контекст и сон
Уведомление о простое сессии. Когда CLI ИИ простаивает (завершила работу или ждёт вас), LightNote показывает уведомление; щелчок по нему открывает просмотр изменений этой сессии. Так можно запустить задачу и отойти. Отключается в Настройки → Терминал.
Файл контекста проекта. Когда вы открываете CLI ИИ в папке без файла контекста (CLAUDE.md или AGENTS.md), LightNote предлагает создать его — и это можно сделать в любое время через Инструменты → Создать файл контекста проекта…. Хороший файл контекста описывает структуру и соглашения проекта и помогает ИИ реже ошибаться, не заставляя вас объяснять всё заново в каждой сессии. Если настроен провайдер ИИ, содержимое создаёт он; иначе вы получите шаблон для заполнения.
Усыпление простаивающих сессий. Простаивающий ИИ-CLI продолжает удерживать память (диалог и клиент модели). В Настройки → Терминал можно задать время тишины, после которого LightNote завершает процесс и сам возобновляет его, когда вы вернётесь на эту вкладку, — история терминала остаётся на экране. По умолчанию включено (30 минут; при измерении три простаивающих сеанса Claude Code занимали больше 1 ГБ) и работает только для сессий в изолированной копии, чьи CLI умеют возобновлять диалог папки (сейчас Claude Code и Antigravity), иначе возобновление подтянуло бы диалог другой сессии. Сеанс с запланированной отправкой никогда не засыпает. И возвращается разговор, а не экран инструмента: набранный, но не отправленный текст теряется.
Активность и поиск по смыслу
Вкладка Активность. Таблица показывает, что работает сейчас; вкладка Активность хранит историю: каждый раз, когда агент завершил ход, начал работу в изолированной копии или уснул, с датой и фрагментом последнего ответа. Непрочитанные записи выделены жирным, а счётчик виден и в меню области уведомлений — так тот, кто отошёл от компьютера, увидит, что пропустил: уведомления живут недолго. Открытие вкладки помечает всё как прочитанное; двойной щелчок возвращает к сессии. Завершение сеанса тоже становится событием — в том числе когда CLI выходит сама, — поэтому сеанс, умерший в ваше отсутствие, оставляет след, а не просто исчезает. Если сеанса из события больше нет, двойной щелчок сообщает об этом, а не молчит.
Искать по смыслу. Когда поиск не находит ни одного буквального совпадения, рядом с результатом появляется Искать по смыслу: вместо сопоставления слов LightNote ищет заметки, которые говорят о том же самом — это выручает, когда мысль вы помните, а формулировку нет. Рядом с остальными есть и переключатель ~, чтобы перейти сразу. В этом режиме исчезают регулярные выражения, «слово целиком», регистр, фильтр файлов и Заменить: ничего из этого к поиску по сходству не относится. Функции нужно смысловое усиление (эмбеддинги) в Настройки → Общие → Функции; без него кнопка ведёт на экран включения. В первый раз для каждой папки LightNote называет число фрагментов для индексации и просит подтверждения — за эту индексацию берёт плату ваш провайдер, и она бывает лишь однажды; дальше каждый поиск стоит только запрос.
Чат с ИИ
Как это работает
ИИ → Чат с ИИ… открывает чат, который отвечает, используя ваши собственные заметки как контекст. Вместо того чтобы отправлять всё в облако, LightNote локально извлекает наиболее релевантные фрагменты из вашего хранилища (с помощью ripgrep, без эмбеддингов и внешних сервисов), составляет из них вопрос и отправляет его ИИ-провайдеру по API, которого вы настроили. Ответ приходит с заметками-источниками в виде кликабельных ссылок — нажмите, чтобы открыть заметку. Отлично, чтобы «поговорить со своим вторым мозгом» и вновь найти то, что вы уже записали. История переписки хранится только в памяти (не сохраняется); функцию можно отключить в Настройки → Общие → Функции.
Окно. Списки выбора собраны в одной верхней панели: ИИ, папка заметок и — когда активен текстовый редактор — контекст; справа — два разрешения (Инструменты и Разрешить изменения) и кнопка +, начинающая новый разговор. До первого вопроса экран говорит, о чём ответит окно, и предлагает ярлыки в один клик, например Обобщить эту папку. В поле вопроса Enter отправляет, а Shift+Enter переносит строку; пока идёт ответ, кнопка отправки становится Остановить.
Инструменты и разрешения
Разрешить ИИ пользоваться инструментами. Флажок Разрешить изменения меняет работу: вместо ответа только по фрагментам, найденным поиском по словам, модель может искать сама — прочитать файл, поискать заметки, вывести задачи — и лишь затем ответить. При включении LightNote сразу проверяет, умеет ли выбранная модель вызывать инструменты: многие провайдеры принимают запрос и попросту игнорируют инструменты, что без такой проверки дало бы выдуманный ответ с видом изученного. Вердикт запоминается на семь дней для каждой пары «провайдер + модель». Нужен провайдер по API (локальная CLI не может получить инструменты). В конце ответа выводится список того, что было использовано на самом деле, — чтобы вы судили, а не доверяли. Если вердикт отрицательный — провайдер мог просто быть недоступен в тот момент, — рядом с сообщением появляется кнопка Проверить снова, которая повторяет проверку, игнорируя сохранённый результат.
Разрешить ИИ менять ваши данные. Второй флажок, Разрешить изменения, — отдельный шаг, и он выключен. С ним ИИ может создавать заметки и задачи, менять свойства и записывать в заметку дня, но ничего не произойдёт без вашего подтверждения: изменение появляется в переписке простыми словами («создать задачу Купить хлеб») с кнопками Разрешить и Отклонить. Отказ не завершает разговор: модель узнаёт об этом и продолжает — объясняет или предлагает другое. Чтение никогда не спрашивает, спрашивает только изменение. Перезапись произвольных файлов и доступ в сеть намеренно оставлены за бортом: пока ИИ только читает, вредоносный текст, пришедший в заметке с синхронизацией извне, не может превратиться в изменение на вашем диске. Когда изменение — это запись в заметку дня, запрос также сообщает, в какую папку она попадёт: это единственная запись, чей целевой файл не указан в том, что запросил ИИ.
О чём он отвечает
Заметки или открытый файл. Список Контекст: вверху окна выбирает, о чём разговор: Заметки хранилища (по умолчанию, см. ниже) или Текущий редактор — он отвечает про файл, открытый в редакторе, а не про хранилище, используя выделение и окружающие строки (или весь файл, флажком Весь файл). Так одно и то же окно служит и для разговора о ваших заметках, и о коде, который вы редактируете, в несколько ходов. Область Текущий редактор появляется только при активном текстовом редакторе. А в быстром помощнике (Ctrl+K) в результате есть кнопка Продолжить в чате →, которая заново открывает это окно уже в области Текущий редактор, с вопросом и ответом того хода — чтобы углубиться, не начиная заново.
Какие заметки? Окно единственное и отвечает по одной папке за раз — список Заметки из: рядом с выбором ИИ в верхней панели показывает и задаёт её. Он открывается уже наведённым на папку окна, из которого вы открыли чат, и перечисляет открытые сейчас папки, а затем недавние; Выбрать папку… указывает на любую другую. Смена папки действует для следующих вопросов — в том числе чтобы спрашивать заметки одного проекта, работая в другом. Выбранная вручную папка сохраняется, пока вы не смените её снова (повторное открытие окна не возвращает область). Пока вопрос обрабатывается — в том числе когда он ждёт вашего подтверждения, — списки ИИ, контекста и папки заблокированы: идущий ответ относится к той модели и той папке, что были в момент вопроса.
Как спрашивать. Поиск идёт по теме, а не по инструкции: LightNote берёт слова из вашего вопроса и ищет заметки, которые их содержат. Назовите тему, встречающуюся в заметках ("что я записал про Postgres?"), а не общий запрос ("сделай резюме") — у последнего нет содержательного слова для поиска, поэтому ничего не находится, и чат предупреждает, что ответ не использовал ваши заметки. Читаются только заметки .md/.markdown; в папке без единой такой чат сообщает об этом и не тратит вызов ИИ.
Лучше поиск, резюме и переписывание. Поиск использует локальный индекс с ранжированием BM25, который игнорирует диакритику ("configuração" находит "configuracao") и работает также в языках без пробелов между словами (японский, китайский, корейский) — пока индекс строится, подстраховывает ripgrep. Кнопка Обобщить эту папку — и пункт Обобщить с помощью ИИ… в контекстном меню любой папки в проводнике — читает заметки порциями и возвращает документ. А в Настройки → Общие → Функции опция Переписывать вопрос с помощью ИИ расширяет вопрос в ключевые слова перед поиском (стоит один вызов API на вопрос).
Ключ и беседы
Достаточно одного ключа. При первом запуске LightNote уже регистрирует OpenAI, Google Gemini и Anthropic (Claude) в разделе Настройки → ИИ-ассистенты — остаётся только вставить свой API-ключ у нужного провайдера. Если ни у одного провайдера нет ключа, окно показывает кнопку Настроить сейчас, которая открывает этот экран напрямую.
Беседы сохраняются. Кнопка с часами вверху открывает список предыдущих бесед этой папки: щёлкните по одной, чтобы вернуться к ней. Новая беседа архивирует текущую, а не удаляет её, а правая кнопка в списке удаляет беседу окончательно (с подтверждением). Беседы хранятся по папкам — смена папки заметок меняет список.
Что делать с ответом
Что делать с ответом. Под каждым ответом есть Копировать (кладёт текст в Markdown в буфер обмена, сохраняя разметку) и Записать в заметку (отправляет ответ в заметку дня вместе со ссылками на цитируемые заметки). В меню Действия беседы есть Копировать беседу, Сохранить беседу как заметку… (создаёт .md в опрашиваемой папке), Повторить последний ответ и Изменить последний вопрос.
Прикрепить файл. Когда поиск не находит того, что вы имели в виду, нажмите +, чтобы прикрепить файл: он всегда попадает в вопрос, вне ранжирования поиска. Подходят заметка, код, текст и PDF (из PDF извлекается текст); двоичный файл отклоняется сразу, а не превращается в шум в контексте. Вложение показывается в виде пилюли (щёлкните, чтобы открепить) и исчезает при начале новой беседы. У провайдеров, которые это поддерживают, ответ также появляется постепенно, по мере того как модель пишет.
Память ассистента. В меню Действия с беседой (кнопка ☰ вверху) пункт Память ассистента… открывает — а при первом обращении создаёт — заметку Память.md в корне выбранной папки. Всё, что в ней есть, попадает в каждый вопрос об этой папке, раньше найденных фрагментов: ваши предпочтения, уже принятые решения, что вы отвергли и почему. Это обычная .md — правьте когда угодно, ведите в Git, удалите, чтобы выключить память. При включённых инструментах записи ассистент может и предложить сохранить туда факт, и, как при любой записи, дождётся вашего разрешения.
Обобщение папки. Годится для всего рабочего пространства и для любой вложенной папки: щёлкните по ней правой кнопкой в проводнике и выберите Обобщить с помощью ИИ…. Прежде чем тратить, LightNote говорит, сколько заметок будет прочитано и сколько вызовов ИИ это даст — за каждый провайдер берёт плату, — и предлагает выбрать форму: Обзор, сплошной текст, или Свести знания, с постоянными разделами (решения, незакрытое, идеи, противоречия и открытые вопросы; пустой раздел опускается, а не заполняется выдумкой). Если заметок больше, чем позволяет предел расходов, ответ сообщает, сколько осталось за бортом. В конце Сохранить как заметку пишет обобщение внутрь той папки, которую оно обобщило, с датой и числом заметок в заголовке, и никогда не затирает прежнее.
Тестирование HTTP API (.lnh)
Инструменты → Новый тест API (.lnh)… открывает HTTP-клиент,
сохраняемый в файл .lnh. Один файл представляет конечную точку
(метод, URL, заголовки и тело) и хранит несколько тестов в списке
слева — у каждого теста свои значения переменных {name},
используемых в URL, заголовках и теле, а также результат последнего запуска
(статус, время, дата, заголовки и тело ответа). Также показывается
эквивалентная команда curl. Та же разовая операция доступна через
CLI (http) и MCP (http_request).
Ctrl+Enter отправляет запрос.
Импорт и экспорт OpenAPI. Кнопка со стрелками над списком тестов
открывает Импортировать OpenAPI… и Экспортировать OpenAPI…. Импорт читает
спецификацию в формате YAML или JSON в трёх используемых поколениях —
Swagger 2.0, OpenAPI 3.0 и 3.1 — и собирает тест сам:
{parameters} пути уже используют тот же синтаксис, что и переменные
{name} в .lnh, объявленные примеры становятся значениями теста,
схема безопасности превращается в заголовок Authorization, а каждый
объявленный сервер становится отдельным тестом (тестовая и промышленная среда рядом).
Поскольку файл .lnh хранит одну конечную точку, спецификация с
несколькими операциями спросит, какую импортировать, — либо запишет все сразу, по
одному файлу .lnh на операцию.
Экспорт идёт в обратную сторону и создаёт из файла спецификацию OpenAPI 3.0.3: серверы,
параметры и тело берутся из шаблона, а примеры ответов — из записанных запусков. Это
каркас, а не полный контракт: .lnh описывает вызовы, поэтому типы,
описания и схемы не восстанавливаются. Ваши тесты едут в поле
x-lightnote-tests, поэтому при повторном импорте файла возвращаются
нетронутыми.
Импорт команды curl. В той же кнопке пункт Импортировать команду
curl… открывает поле для вставки — команда приходит оттуда, а не с диска, и поле уже
заполнено, если в буфере обмена лежит curl. Понимает три диалекта, в которых
ходит одна и та же команда: Копировать как cURL из Chrome/Firefox (одинарные
кавычки), Copy as cURL (cmd) в Windows (с ^) и пример из документации,
разбитый символом \. Метод берётся из -X — или выводится: POST,
когда есть тело, и GET, когда его нет.
Импорт буквальный: ни одно значение не превращается в переменную
{name} само по себе, потому что угадывать, какой токен является секретом, —
верный способ ошибиться. В нескольких случаях выводится предупреждение вместо подмены:
тело, приходящее из файла (-d @файл), прочитать нельзя, а отправка multipart
(-F) не воспроизводится точно, поэтому поля попадают в тело текстом, чтобы вы
их поправили.
Базы данных (.lnc)
Подключение
Подключение — это файл .lnc (LightNote Connection) внутри
самого рабочего пространства — версионируемый в Git и переносимый между
машинами. Создайте его через Новый → Новое подключение (или откройте
существующий .lnc): откроется представление базы данных со
строкой состояния подключения (Подключить / Отключить / Переподключить /
Изменить), деревом Схема (схемы → таблицы → столбцы, загружаются по
требованию) и внутренними вкладками .sql. Открытые файлы
.sql и недавние хранятся внутри самого .lnc,
поэтому представление восстанавливает предыдущее состояние. Если ничего не
было открыто, стартует пустой (безымянный) запрос, в который сразу
можно набирать SQL; при сохранении (Ctrl+S) LightNote спрашивает только
имя и записывает файл внутри папки проекта (без диалога
«сохранить куда угодно»). Кнопка + Вкладка открывает новый пустой
запрос, позволяет открыть файл (диалог выбора открывается в папке
проекта) или выбрать недавний / любой .sql из папки
проекта.
Файл .sql, открытый напрямую из дерева, содержит только
код (подсветка SQL, без подключения).
Драйверы: SQLite и DuckDB (файловый) — нативно; PostgreSQL,
MySQL/MariaDB, SQL Server и обобщённый — через ODBC;
нативный Oracle (без ODBC). SQL Server использует драйвер Microsoft
msodbcsql (установите его на машине) и предлагает проверку
подлинности Windows или логин/пароль, а также параметры
шифрования канала (Encrypt / доверять сертификату). Для Oracle укажите
папку Oracle Instant Client в Общие настройки → База данных —
она загружается во время выполнения, ничего устанавливать не нужно.
Подключение Oracle имеет четыре режима: Service Name (хост/порт/
сервис), SID (хост/порт/SID), TNS Name (псевдоним из
tnsnames.ora в папке клиента) и Полный дескриптор TNS
(вставляется в текстовое поле).
Пароль: отметьте Сохранять пароль, чтобы зашифровать его
внутри самого .lnc (переносимое шифрование, открывается на
другой машине); если флажок не установлен, пароль не сохраняется и
запрашивается при каждом подключении. Шифрование использует
секретную фразу для каждого рабочего пространства, задаваемую в
Справка → Настроить секретную фразу; храните её в надёжном месте — без
неё пароль нельзя открыть больше нигде. Секретная фраза кэшируется только на
локальной машине (она никогда не попадает в Git).
Отметьте Подключаться при открытии, чтобы подключение открывалось
автоматически при открытии .lnc. Автоподключение бесшумное:
если требуется ввод пароля (режим запроса или шифрование без кэшированной на
машине секретной фразы), файл открывается отключённым, без прерывания
работы.
Выполнение и просмотр результата
Выполнение: Ctrl+Enter выполняет инструкцию под курсором, а Alt+X — весь скрипт; результаты выводятся постранично, каждый — на своей вкладке Результат с панелью действий внизу: Получить следующий блок, Заморозить результат, Общее количество, изменение лимита строк, Обновить (повторное выполнение), Показать/ скопировать SQL, Экспорт... и Сгенерировать SQL из выбранной строки.
Заморозить результат: читает весь результат из базы за один проход и сохраняет его в локальной таблице (на диск, если он не помещается в память). После этого таблица прокручивается без запросов к базе, число строк становится точным (Общее количество уже не нужно), щелчок по заголовку сортирует (повторный щелчок меняет направление, третий возвращает порядок, в котором база выдала строки), а экспорт тоже читает локальную копию. Сортировка по заголовку доступна до 100 тысяч строк; свыше этого она отклоняется — причина указана в подсказке заголовка, — потому что каждая страница заново сортировала бы всю копию, и обход таблицы снова занимал бы минуты. Результат, который целиком пришёл на первой странице, сортируется без заморозки: строки уже в памяти. Не сортируется первая часть результата, который ещё подгружается страницами, — заголовок утверждал бы порядок, верный только для того, что на экране. Диаграмма и сводная таблица начинают охватывать весь результат — в том числе в базах, где диаграммы раньше не было. Если заморозка прервалась (вы нажали Остановить или был достигнут предел), строки остаются локальными, но диаграмма и сводная таблица остаются на сервере: сумма по части результата дала бы неверное число, а сортировка таблицы упорядочит только полученные строки, а не весь результат. Обновить размораживает и выполняет запрос заново. Независимо от заморозки страницы, уже прошедшие через таблицу, остаются локально: прокрутка назад к одной из них не обращается к базе заново. Одновременно выполняется только одна заморозка: если открыто два результата, нажатие Заморозить результат во втором будет отклонено с указанием причины, а идущая заморозка не прервётся — чтобы остановить её, используйте Остановить на её вкладке.
Сетка результатов: NULL показывается блёклым курсивом, отличным от пустой строки, а
числа выравниваются по правому краю; при выделении нескольких ячеек в нижней строке отображается
число выделенных, а для числовых — их сумма и среднее. Кнопка Панель значения в нижней
панели (или Показать значение на панели в контекстном меню) открывает боковую панель с
полным значением выбранной ячейки, без обрезки, с кнопкой Форматировать, которая
приводит в порядок JSON/XML только для показа. В контекстном меню ячейки Фильтр по этому значению /
Исключить это значение повторно выполняют запрос с WHERE по ячейке, а Перейти к
связанной записи следует по внешнему ключу столбца и запрашивает родительскую таблицу по значению
ячейки.
Диаграмма и сводная таблица: где выполняется расчёт. В нижней части таблицы есть переключатель между Локальными данными и Всей таблицей (на сервере), а кнопка показывает, что действует сейчас. Если результат уместился целиком на первой странице, по умолчанию используется локальный вариант: LightNote агрегирует по результату, который уже на экране, не обращаясь к базе данных при каждом изменении оси, агрегата или интервала. Поскольку локальный движок — это DuckDB, диаграмма появляется и в Oracle, SQL Server, PostgreSQL и MySQL, где её SQL на сервере не выполняется. Если результат пришёл усечённым, локальный вариант становится недоступен с указанием причины: агрегирование по выборке дало бы неверное число, а предупреждение об усечении никого бы не защитило, потому что в диаграмме читают высоту столбца. Серверный вариант агрегирует по всему запросу, по одному запросу на каждое изменение. Числовые столбцы, которые база данных отдаёт текстом (случай NUMBER в Oracle), распознаются как числа; идентификаторы с ведущим нулём, например 01310, остаются текстом.
План выполнения: кнопка План выполнения на панели инструментов показывает
EXPLAIN инструкции под курсором (SQLite, DuckDB, PostgreSQL и MySQL); в базах, которые не
выдают план одной инструкцией (SQL Server, Oracle), кнопка отключена, а причина указана в подсказке.
Схема
Свойства объекта: дважды щёлкните по таблице в дереве схемы (или нажмите
F4, либо выберите Свойства в контекстном меню), чтобы открыть вкладку со структурой
объекта в четырёх подвкладках: Столбцы (№, имя, тип, допустимость NULL, значение по умолчанию
и значок ключа у столбцов первичного ключа), Ключи (ограничения первичного, внешнего,
уникального ключей и check; двойной щелчок по внешнему ключу открывает связанную таблицу),
Индексы и DDL — CREATE TABLE объекта, готовый к копированию,
сохранению как .sql или открытию в редактируемой вкладке. Когда база не предоставляет
готовый DDL (в PostgreSQL и SQL Server такой команды нет), LightNote восстанавливает его из
метаданных — то же происходит, когда команда DDL отклонена из-за нехватки прав, — и явно
сообщает об этом во вкладке. Если не читается даже каталог столбцов (нет прав или каталог
недоступен), восстанавливать не из чего: вкладка сообщает об этом, а не остаётся молча пустой. Контекстное меню таблицы также предлагает
Копировать DDL без открытия вкладки.
Дерево схемы: дерево Схема разделяет Таблицы и Представления (каждое со своим значком) и помечает значком ключа столбцы, входящие в первичный ключ. Поле фильтра просеивает только уже загруженные объекты (отложенная загрузка не запускается ради одного лишь фильтра).
Просмотр схемы: Правый клик по
таблице открывает пункты Вставить SELECT в редактор,
Просмотр данных, Подсчитать строки, Копировать
квалифицированное имя или подменю Сгенерировать SQL →
INSERT/UPDATE/MERGE: экран показывает столбцы таблицы, где можно
отметить Включить и Ключ, показывает предпросмотр в реальном
времени и вставляет команду в редактор (MERGE генерируется в стандарте ANSI;
если драйвер его не поддерживает, появляется предупреждение). Прямо на сетке
результатов кнопка Сгенерировать SQL на нижней панели формирует
INSERT/UPDATE/DELETE, заполненный значениями выбранной строки
(доступно, когда запрос — это SELECT из одной таблицы). Имена
таблиц и столбцов, которые вы просматриваете в дереве, также начинают
появляться в автодополнении (Ctrl+Space) редакторов
.sql этого подключения, без дополнительных запросов к базе.
Экспорт, переменные и транзакции
Экспорт результатов: щёлкните правой кнопкой по сетке результатов и
выберите Экспортировать результаты..., чтобы записать CSV
(разделитель, символ кавычек, всегда в кавычках, строка заголовка, текст
NULL), JSON Lines или SQL (инструкции INSERT с
именем таблицы), с необязательным ограничением по числу строк. Экспорт
проходит по всему запросу в потоковом режиме (постраничная повторная
выборка), а не только по видимому на экране.
Переменные скрипта: используйте @set имя = значение в
строке скрипта, чтобы определить переменную — префикс @ не даёт
ей столкнуться с базой данных (не конфликтует с реальным SET
Postgres/DuckDB/SQL Server). Ссылки вида :имя подставляются перед
выполнением (вне строк и комментариев; приведение типа ::type и
биндинги вроде :1 остаются нетронутыми); :имя без
значения открывает запрос перед выполнением. Кнопка Переменные на
панели инструментов открывает экран с определёнными переменными
(редактировать/добавить/удалить).
История запросов: кнопка История открывает окно с последними
успешно выполненными инструкциями этого подключения, в столбцах SQL /
Когда / Длительность / Строки. Выберите строку, чтобы Выполнить
заново, Вставить в редактор или Копировать (двойной клик
вставляет), либо используйте Очистить историю. Хранится только на
локальной машине (не попадает ни в Git, ни в .lnc).
Транзакции: кнопка Автокоммит (по умолчанию включена) и кнопки Commit/Rollback расположены на панели инструментов. При выключенном автокоммите изменения остаются в ожидании, пока вы не подтвердите (Commit) или не отмените (Rollback); отключение с открытой транзакцией запрашивает, что делать.
SSH-подключение (.lns)
SSH-подключение — это файл .lns в рабочем пространстве —
версионируемый и переносимый, как и .lnc. Создайте его через
Новый → Новое SSH-подключение: вкладка открывает встроенный
SSH-терминал (через ssh.exe Windows) и мини-панель
удалённых файлов (SFTP).
Файловый браузер показывает одну папку за раз (в стиле MobaXterm/
WinSCP): первая строка всегда .. для перехода на уровень выше, а
двойной клик по папке входит в неё. Строка пути вверху позволяет
ввести удалённый путь и нажать Enter, чтобы перейти туда. Кнопка
Синхронизировать с терминалом заставляет показанную папку следовать за
текущим каталогом SSH-сессии (там, куда вы перешли через cd в
терминале). Меню по правому клику предлагает Открыть в редакторе
(скачивает файл, открывает во вкладке и перезагружает при сохранении),
Скачать, Загрузить, Новая папка, Переименовать,
Удалить и Права доступа (chmod). Также можно перетащить
файлы из Проводника на панель, чтобы загрузить их в текущую папку.
Пароль можно зашифровать внутри .lns с помощью
секретной фразы рабочего пространства или
запрашивать при каждом подключении. SSH-ключи из агента/профиля Windows
работают как обычно, поскольку подключение использует системный клиент
OpenSSH.
Опция Подключаться при открытии (в диалоге подключения) запускает
SSH-сессию автоматически при открытии .lns. Если пароль не
сохранён, сам терминал запрашивает его при подключении.
Безопасность: секретная фраза, PIN и защищённый Markdown
Секретная фраза задаётся для каждого рабочего пространства в
Справка → Настроить секретную фразу… и является ключом ко всему, что
шифрует LightNote: паролям подключений (.lnc/.lns),
ячейкам паролей пользовательской таблицы и
файлам .lne. Шифрование надёжное и переносимое
(Argon2id + XChaCha20-Poly1305): зашифрованный файл открывается на другой
машине, если там снова ввести ту же секретную фразу. Храните её в
надёжном месте: без неё зашифрованные данные восстановить нельзя.
Секретная фраза кэшируется только на локальной машине (никогда не попадает в
Git).
Чтобы изменить секретную фразу, откройте тот же экран и
отредактируйте поле фразы (оно уже заполнено текущей). При подтверждении
LightNote автоматически перешифровывает все защищённые данные рабочего
пространства — пароли в .lnc/.lns, содержимое файлов
.lne и ячейки паролей пользовательских таблиц (.lnd)
— со старой секретной фразы на новую. Расшифровка выполняется всё или
ничего: если хотя бы один элемент не удаётся расшифровать, ничего не
меняется, и LightNote сообщает, какой именно. Во время записи каждый
файл копируется в резервную копию перед перезаписью; если запись какого-то
файла не удалась, LightNote спрашивает, отменить всё (восстановить
резервные копии) или пропустить этот файл и продолжить (он остаётся со
старой фразой, с предупреждением в конце). (У паролей в режиме «запрашивать»
нечего перешифровывать.)
PIN (4–8 цифр) — это необязательная локальная блокировка: она защищает чувствительные действия интерфейса (раскрытие паролей, открытие защищённых заметок) без ввода секретной фразы каждый раз. Она ничего не шифрует и действует только на этой машине.
Файл защищённого Markdown (.lne, через Новый →
Защищённый файл Markdown) — это заметка, зашифрованная на диске: при
открытии LightNote запрашивает PIN (если задан) и секретную фразу,
расшифровывает только в памяти и перешифровывает при сохранении
(Ctrl+S). Ради безопасности она никогда не открывается сама при восстановлении сессии. В остальном это такая же заметка, как и другие: есть ИИ-помощник (Ctrl+K/Ctrl+I и кнопка ИИ на панели), Ctrl+щелчок по викиссылкам и меткам, открытие ссылок и адрес в строке состояния. Об ИИ стоит помнить: отправленный фрагмент покидает машину, если выбранный помощник — облачный сервис; с локальной моделью (Ollama, LM Studio) не покидает. И защищённые заметки по-прежнему вне Спросить заметки — тот читает файлы .md рабочего пространства, а на диске .lne — зашифрованный текст.
Ежедневные заметки, быстрый захват и трей
Заметка на сегодня — это один файл .md в день в папке
Ежедневные заметки — одна папка на весь LightNote, задаётся в
Настройки → Заметки и письмо. В меню трея: Заметка на сегодня открывает заметку
дня; Быстрый захват… (Ctrl+Alt+N, глобальное сочетание
клавиш Windows — или клик средней кнопкой по значку в трее) открывает
небольшое окно, где вы набираете текст и нажимаете Ctrl+Enter: текст
становится маркированным пунктом с меткой времени в сегодняшней заметке,
записанной прямо на диск, без открытия окна редактора.
Меню трея также перечисляет открытые окна и недавние рабочие пространства, а также содержит переключатели питания: Не давать компьютеру спать и Держать экран включённым (удобно для длительных задач; LightNote и сам удерживает питание во время выполнения одноразового запроса ИИ, ячеек Блоков или SQL-скриптов). Лаунчер (стартовое окно) имеет поиск, открытие двойным кликом и контекстное меню для закрепления наверху, открытия в Проводнике или удаления из списка.
Действия, которые относятся ко всему LightNote — а не только к окну, в котором вы находитесь, — живут в меню Общее (☰ Общее или кнопка со значком приложения на панели действий). Оно имеет ровно ту же форму, что и меню в области уведомлений: в корне Заметка дня, Быстрый захват и Календарь; затем подменю Захват (быстрая задача, запись звука, возвращение к старым заметкам, наклейки), Открыть (лаунчер, открыть рабочее пространство, открыть отдельный файл, отдельные файлы) и Энергия; в конце — Общие настройки. Правило простое: что есть в меню области уведомлений, есть и в меню Общее — и только там. При наведении на пункт показывается подсказка «общая функция: действует во всём LightNote, в любом окне».
Куда попадает захват. У ежедневных заметок и быстрых задач единственное и предсказуемое назначение: папка, заданная в Настройки → Заметки и письмо, и доска, заданная в Настройки → Общие — в любом окне одинаково. При первом захвате, если ничего не задано, LightNote спрашивает, где хранить, и запоминает ответ — вместо того чтобы отправлять вас искать настройку. Проект, которому нужен свой дневник (клиент под соглашением о конфиденциальности, журнал, который должен лежать в репозитории), может забрать себе захваты, сделанные в том окне, через Настройка рабочего пространства → Захваты; трей и глобальные сочетания клавиш продолжают писать в общее назначение. Уведомление всегда сообщает, куда ушёл текст.
Меню в области уведомлений намеренно короткое: в корне остаются открытые окна и три ежедневных действия — Заметка дня, Быстрый захват и Календарь. Всё остальное живёт в тех же подменю, что и в меню Общее: Захват, Открыть (в области уведомлений сюда добавляется список недавних рабочих пространств), ИИ (сессии ИИ и спросить заметки — в окне это полноценное меню ИИ) и Энергия. В конце — настройки и выход.
Вернуть старые заметки
Больше всего «второй мозг» подводит не нехватка функций, а заметка, которую никогда не перечитывают. Из меню области уведомлений (раздел Захват) LightNote возвращает старые заметки: Случайная заметка открывает случайную заметку .md из рабочего пространства (избегая показанных за последние две недели), а В этот день перечисляет заметки, у которых годовщина создания сегодня (тот же день и месяц в прошлые годы). Оба действия есть и в меню окна Общее → Захват.
Дата создания берётся из поля created/date frontmatter, если оно есть; иначе — из даты файла. Функция никогда не пишет в ваши заметки — только открывает их. Её можно отключить в Настройки → Возможности («Вернуть старые заметки»).
Ваши заметки на телефоне
Ваше рабочее пространство — это чистый Markdown в папке: открытые форматы, без проприетарной базы данных и обязательного облака. Поэтому любое мобильное приложение читает и редактирует ваши заметки, и LightNote не нужно собственное приложение для телефона: достаточно синхронизировать папку через файловый сервис и открыть её в редакторе Markdown на телефоне.
Пошагово: синхронизируйте папку рабочего пространства через OneDrive,
Google Drive, Dropbox или Syncthing и на телефоне откройте эту папку в
редакторе Markdown (например, Obsidian Mobile, iA Writer,
GitJournal или Markor). Поскольку всё представлено текстовыми
.md, обе стороны видят и пишут одни и те же заметки.
Рекомендации: на телефоне редактируйте только файлы .md —
собственные типы LightNote (защищённый .lne, .lnc,
.lnt, .lnb, .lnd…) не открываются вне
приложения, а .lne к тому же зашифрован. Если обе стороны
редактируют офлайн и возникает конфликт, разрешайте его через папку
Inbox: положите захват (текст, аудио или фото) туда и позвольте LightNote
объединить его с заметкой дня, вместо перезаписи. Такое размещение сделано
намеренно — синхронизация идёт по файлам/Git, а не через плагины: вы
владеете своими данными и выбираете транспорт. Чтобы писать прямо в заметку
сегодняшнего дня, редактируйте файл
Ежедневные заметки/yyyy-mm-dd.md — имя папки зависит от языка.
Запись аудио (голос, встреча) с транскрипцией ИИ
В меню области уведомлений пункт Записать аудио… открывает плавающее перетаскиваемое окно (тащите за строку заголовка) для записи с микрофона, системного звука (того, что играет на компьютере) или обоих сразу — выбранный источник запоминается для следующего раза. Используйте ● Запись, ‖ Пауза и ■ Стоп; файл сохраняется в папку Записи рабочего пространства и сжимается в .m4a при остановке.
Два способа расшифровки. В Настройки → Ассистенты ИИ → Транскрипция аудио переключатель Как расшифровывать выбирает между специальной моделью транскрипции (в стиле Whisper: OpenAI whisper-1, Groq whisper-large-v3 — бесплатно — или локальный Whisper) и универсальной моделью с аудио в чате — аудио идёт в разговор мультимодальной модели; так расшифровывает Google Gemini (gemini-2.0-flash, хороший бесплатный план). Смена провайдера предварительно выбирает нужный режим и предлагает модель; длинное аудио автоматически нарезается в обоих режимах. Предложенную модель можно изменить вручную — LightNote использует введённый вами id даже для ещё незнакомого провайдера.
Как только запись начинается, окно само сворачивается в компактную таблетку (мигающая красная точка, таймер, Пауза/Стоп) — её легко утащить в угол и почти спрятать во время долгой встречи; кнопка свернуть/развернуть в заголовке переключает это вручную, а остановка записи разворачивает окно обратно. Ctrl+Alt+R (глобальное сочетание) — это быстрая голосовая заметка: нажмите, чтобы сразу начать запись с микрофона, нажмите снова, чтобы остановить — без открытия окна мышью.
Если настроен провайдер ИИ через API (в Настройки → Ассистенты ИИ → Транскрипция аудио), при остановке появляются кнопки Транскрибировать и Транскрибировать + Резюме (неактивны, пока аудио ещё сжимается); список При остановке может запустить транскрипцию самостоятельно сразу после окончания записи. LightNote отправляет аудио на транскрипцию (модель типа Whisper) и создаёт рядом с аудио заметку .md с текстом и, при желании, резюме. Включить/выключить функцию можно в Настройки → Общие → Функции.
Это же окно — мини-плеер: под элементами управления список записей из папки показывает каждый файл с кнопками T (открыть расшифровку) и R (открыть резюме), если они есть, а также ▶ для воспроизведения прямо здесь (полоса прогресса с перемоткой); меню ⋮ каждой строки воспроизводит, (пере)расшифровывает или открывает заметку. Повторное создание расшифровки не перезаписывает предыдущую — рядом создаётся новая версия (note.md, note (2).md…), сохраняя историю. Источник захвата — это кнопка-меню (Микрофон / Системный звук / Оба), по умолчанию Оба. Ссылка Открыть папку записей открывает папку в главном окне.
Стикеры
Стикеры — это небольшие цветные текстовые блоки, плавающие поверх рабочего стола, в стиле приложения Windows Sticky Notes. В меню трея: Новый стикер (Ctrl+Alt+S, глобальное сочетание клавиш) создаёт блок; Показать стикеры (Ctrl+Alt+H) показывает или скрывает их все разом. У каждой заметки есть кнопка + для создания ещё одной и меню ☰ для смены цвета, действия Отправить в заметку дня (записывает текст пунктом в сегодняшнюю заметку и убирает блок) или Удалить. Перетащите заголовок, чтобы переместить, и уголок, чтобы изменить размер. Заметки сохраняются автоматически и снова появляются при следующем запуске LightNote.
Чек-лист. Кнопка списка в заголовке (рядом с +) превращает
строку с курсором — или выделенные строки — в пункты с флажком, а повторное нажатие
отменяет это. Можно также ввести [ ] и пробел в начале строки
([x] создаёт уже отмеченный пункт). Щёлкните по флажку или нажмите
Ctrl+Shift+Enter, чтобы отметить пункт или снять отметку: выполненный пункт
зачёркивается. Enter создаёт следующий пункт; Enter в пустом пункте
или Backspace в его начале возвращает обычный текст. Удалить выполненные
пункты в меню заметки удаляет все отмеченные разом (Ctrl+Z отменяет).
Пункты сохраняются как задачи Markdown (- [ ] пункт), поэтому
Отправить в заметку дня переносит каждый как задачу.
Календарь
Общее → Календарь… открывает единственное окно с
календарём, отмечающим дни, на которые есть задачи из всех
зарегистрированных досок .lnt. Рядом с ним — список
«На этот день» (задачи выбранного дня) и список «Ожидающие»;
кнопка Заметка дня открывает ежедневную заметку за эту дату. Клик по
задаче открывает соответствующую доску.
В сетке каждый день с задачами получает цветные точки в цвете статуса канбана (до трёх), сегодняшний день отмечается кольцом, а выбранный — залитым кругом; Сегодня возвращает к текущему месяцу, а название месяца открывает меню для перехода по месяцам и годам. Незавершённые сгруппированы по ситуации — Просрочено, Сегодня, Ближайшие 7 дней, Позже и Без даты —, а срок показан относительной меткой («вчера», «сегодня», «3 дня назад»). Двойной щелчок по дню открывает быструю задачу уже с этой датой.
Задачи, записанные в заметках, попадают сюда. Флажок - [ ] в заметке — такая же задача, как любая другая, и теперь он появляется в Незакрытом рядом с карточками досок, в тех же группах. Если в строке сказано когда (завтра, пятница, 12.08), она попадёт в нужную группу и на нужный день. Двойной щелчок открывает заметку на строке с флажком — правят задачу по-прежнему в заметке. Обход идёт в фоне: окно открывается сразу с досками, а задачи из заметок приходят чуть позже. В сетке число дня подчёркнуто, если на этот день уже есть ежедневная заметка, а в списке дня показывается ещё и В этот день: ваши заметки прошлых лет, написанные в эту дату.
Палитра команд
Ctrl+Shift+P открывает палитру команд (все действия со своими сочетаниями клавиш, с фильтрацией по вводу). Ctrl+R открывает быстрый выбор файла, а Ctrl+Shift+K — выбор задачи.
Сервер MCP (ИИ-агенты)
LightNote включает автономный сервер MCP (Model Context Protocol),
превращающий рабочее пространство в инструмент для ИИ-агентов (Claude
Desktop, Claude Code, Cursor и любой клиент, понимающий MCP). Агент может
читать и писать файлы, искать, запрашивать табличные данные и базы данных,
работать с задачами, использовать Git и отправлять HTTP-запросы —
всё в пределах папки (изоляция каталога: пути с
.. или вне корня отклоняются). Транспорт — JSON-RPC 2.0
через stdin/stdout; каждая сессия запускает отдельный лёгкий процесс
lnote.exe, независимый от окна редактора.
Ярлык в один клик: через ИИ → Включить ИИ в этой папке LightNote включает MCP и записывает .mcp.json сразу (клик и есть согласие). Если ИИ в папке уже включён, пункт превращается в Настроить ИИ этой папки… и открывает Настройки рабочего пространства.
Два уровня защиты: (1) сервер запускается, только если вы явно включили эту опцию для данной папки; (2) каждый инструмент привязан к корню рабочего пространства. Кроме того, каждый инструмент объявляется с аннотациями (только чтение, деструктивный, идемпотентный, «затрагивает внешний мир»), чтобы ИИ-клиент мог оценить риск перед вызовом.
Пошаговая настройка
- Включите MCP для папки. В Инструменты → Настройки рабочего
пространства отметьте Включить MCP для этого рабочего пространства.
Без этого явного включения сервер отказывается запускаться (это главный
барьер). Либо через командную строку:
lnote --mcp-enable "C:\Path\to\workspace"(и--mcp-disable, чтобы выключить). - Найдите путь к
lnote.exe. Он находится в той же папке, что иlightnote.exe(папка установки приложения). Это «облегчённый» консольный исполняемый файл без интерфейса — именно его запускает агент. - Зарегистрируйте сервер в вашем ИИ-клиенте, указав в качестве
команды
lnote.exeи передав--mcp, а затем папку рабочего пространства. В формате, используемом Claude Desktop / Cursor и подобными:
{
"mcpServers": {
"lightnote": {
"command": "C:\\Path\\to\\lnote.exe",
"args": ["--mcp", "C:\\Path\\to\\workspace"]
}
}
}
Советы по настройке:
- Обратные слэши в JSON нужно удваивать
(
C:\\Users\\...\\lnote.exe), как в примере. - Чтобы открыть несколько рабочих пространств, добавьте по одной
записи на папку, с разными именами (
"lightnote-projectA","lightnote-projectB"), каждая указывает на свой корень. - После сохранения конфигурации перезапустите ИИ-клиент, чтобы он
запустил сервер. После подключения агент должен увидеть инструменты
lightnote_*; попросите его «вывести список файлов рабочего пространства», чтобы подтвердить работу. - Для Claude Code (CLI) тот же сервер можно зарегистрировать
командой
claude mcp add lightnote -- "C:\Path\to\lnote.exe" --mcp "C:\Path\to\workspace".
Пароль базы данных (необязательно). Инструмент db_query
открывает подключение .lnc. Если пароль зашифрован секретной
фразой, передайте её через переменную окружения
LNOTE_PASSPHRASE в блоке сервера (никогда — в аргументах
командной строки) — подключения с паролем в режиме «запрашивать» нельзя
использовать без присмотра.
Запросы ИИ включаются для каждого подключения отдельно. Включение MCP в папке не открывает подключения: каждый .lnc отвечает на db_query только если в диалоге подключения отмечено «Разрешить запросы ИИ (MCP)». Доступ — только для чтения (SELECT).
Экспорт из базы данных через агента. Помимо запросов агент может материализовать SELECT в файл с помощью db_export (Parquet, CSV, JSON или .xlsx) — удобно для результатов, которые не помещаются в ответ. Действуют те же три защиты, именно в этом порядке: запрос должен быть только на чтение, для подключения нужен флажок «Разрешить запросы ИИ (MCP)» (проверяется до расшифровки пароля), а файл назначения должен оставаться внутри рабочего пространства. Большие экспорты используют системную временную папку как промежуточное хранилище, примерно в размер результата — оставляйте свободное место на диске.
Доступные инструменты
Агент видит инструменты с префиксом клиента (например,
lightnote_read_file). По категориям:
- Файлы:
read_file(с необязательным диапазоном строк),write_file,edit_file(заменяет точный фрагмент, без перезаписи всего файла),append_file,list_files,move_file,make_dirиdelete_file(перемещает в корзину, а не удаляет безвозвратно). - Поиск и навигация:
search_files(ripgrep, с фильтром по подпапке/glob и ограничением),list_symbols(структура функций/классов файла) иopen_in_editor(открывает/ фокусирует файл в окне LightNote, если оно открыто). - Данные и SQL:
query(SQL DuckDB по Parquet/CSV/JSON, вывод tsv/json/markdown),describe_table(схема + статистика, без вывода строк),export_query(сохраняет SELECT в файл черезCOPY),sqlite_query(SQL по.sqlite/.db),db_list_connections(список файлов.lncрабочего пространства) иdb_query(SQL только для чтения по подключению.lnc). Чтобы вывести результат в файл, а не в ответ, —db_export(Parquet/CSV/JSON/.xlsx). - Также:
search_notes(извлекает наиболее релевантные фрагменты заметок по вопросу — тот же движок, что и Чат с ИИ),list_links(исходящие ссылки заметки, разрешённые или битые),audit_vault_links(битые ссылки и заметки-сироты по всему хранилищу),list_note_templatesи параметрtemplateуcreate_note,list_due_tasks(задачи со сроком сегодня или просроченные во всех проектах),xlsx_read(читает лист.xlsxкак TSV),data_diff(сравнивает два табличных файла) и каталог базы данныхdb_list_objects/db_describe(таблицы/представления и столбцы, ключи и DDL таблицы — те же требования, что и уdb_query). Иnote_export(экспортирует заметку вdocx,odt,epub, LaTeX, Typst, HTML, reStructuredText, AsciiDoc, Org, MediaWiki, Notebook или другой диалект Markdown — без всякого окна, и также черезlnote note-export). Иnote_import(обратный путь:docx,odt,epub,rtf, HTML илиtexстановится заметкой рядом с оригиналом — с заголовками, списками, таблицами, выделением, ссылками, формулами и изображениями; также черезlnote note-import). Иfolder_export(папка целиком становится сайтом HTML, набором документов или Markdown, со ссылками, переписанными под вышедшие файлы — также черезlnote folder-export). - Архивы:
zip_list(список элементов.zip/.isx) иzip_read(читает элемент как текст) — без извлечения архива на диск. - Задачи:
list_task_projects(список проектов задач.lntв рабочем пространстве),list_tasks,list_task_statuses(колонки доски),create_task,update_task,update_task_status(перемещение между колонками),delete_taskиtask_note(чтение/ запись заметки задачи.md). Рабочее пространство может содержать несколько проектов.lnt: выбирайте нужный параметромproject(имяname, возвращаемоеlist_task_projects; необязателен, если проект только один).id/status_id— это идентификаторы сессии — не читайте внутренние файлы.lnt, чтобы их получить, используйте инструменты задач. - Заметки (PKM):
create_note(создать заметку.md),append_daily_note(добавить запись в сегодняшнюю заметку),remember(сохраняет устойчивый факт о вас в заметке памяти),list_backlinks(заметки, ссылающиеся на заметку),list_note_tagsиsearch_by_tag(хэштеги#хранилища и заметки, их использующие) иadd_task(создать задачу со сроком/тегами, принимает естественный язык в заголовке). - Git:
git_status,git_log,git_diffиgit_restore. - Веб и уведомления:
http_request(выполняет HTTP-запрос и возвращает статус/заголовки/тело) иnotify(показывает уведомление в трее открытого окна — удобно, чтобы агент сообщил о завершении работы). - Прокси ИИ:
list_ai_modelsиask_ai(ниже).
Сервер также предоставляет файлы рабочего пространства как MCP
ресурсы (resources/list и resources/read) —
для клиентов, предпочитающих «прикреплять» файлы вместо вызова
read_file.
Ваша Библиотека промптов (папка Prompts/ рабочего пространства) публикуется как промпты MCP (prompts/list и prompts/get). В Claude Code каждый промпт становится слэш-командой — /mcp__lightnote__<имя> — готовой к использованию в CLI ИИ.
Страховка при записи. Перед перезаписью (write_file/edit_file) или удалением (delete_file) файла сервер сохраняет предыдущую версию в Локальную историю — ту же страховку, что и у редактора, — чтобы вы могли отменить изменение, сделанное агентом, даже вне репозитория Git.
Каждый инструмент объявляет, читает он или пишет: помимо MCP
аннотаций (readOnlyHint/destructiveHint),
описание начинается со значка [read-only], [writes]
или [destructive] — удобно для безопасного построения списков
разрешений.
Прокси ИИ (делегирование другой модели)
API-провайдеры, зарегистрированные с отмеченным
столбцом MCP, доступны агенту через два инструмента:
list_ai_models (список разрешённых моделей с id, именем и
моделью) и ask_ai ({model, prompt}). Это позволяет
основному агенту делегировать подзадачу более дешёвой или
специализированной модели. Вызов проходит через запущенный
LightNote (lnote.exe из MCP пересылает запрос окну
приложения через внутренний мост): ключ API никогда не покидает вашу
машину и никогда не доходит до агента. Если LightNote не открыт,
инструмент возвращает ошибку с просьбой его открыть.
Командная строка (lnote)
Те же операции MCP доступны в консольном исполняемом файле lnote,
для скриптов и автоматизации (также доступен как
lightnote cli <команда>). Каждое действие ограничено
корневой папкой, задаваемой параметром --root (по умолчанию —
текущая папка).
Примеры:
lnote list --recursive
lnote read --path src/main.cpp --start-line 1 --end-line 40
lnote write --path note.md --content "Hello"
echo content | lnote write --path note.md --content -
lnote search --query TODO --regex
lnote query --sql "SELECT * FROM read_parquet('data.parquet') LIMIT 10"
lnote describe --path data.parquet
lnote search-notes --query "где я писал о бюджете"
lnote audit-links
lnote xlsx-read --path sheet.xlsx --sheet 0
lnote data-diff --a before.parquet --b after.parquet --mode changed --keys id
lnote db-describe --connection data.lnc --table customers
lnote db-export --connection dados.lnc --sql "SELECT * FROM clientes" --out clientes.parquet
lnote due-tasks
lnote export --sql "SELECT * FROM read_csv_auto('e.csv') WHERE state='NY'" --out ny.parquet
lnote zip-list --path export.isx
lnote zip-read --path export.isx --entry job/definition.xml
lnote task-projects
lnote tasks --project Backlog
lnote create-task --project Backlog --title "Review the text" --effort 2
lnote move-task --project Backlog --task-id 5 --status-id 2
lnote git-status
lnote http --url https://api.example.com --method GET
lnote notify --message "Processing finished"
Общие параметры: --root <папка>,
--json (структурированный вывод {ok,data,error}),
--help (или lnote <команда> --help) и
--version. Для неизвестных команд предлагается подсказка
(«вы имели в виду…?»).
Массовое обновление старых данных: lnote upgrade <папка>
за один проход переводит в современный вид файлы, записанные прежними версиями LightNote —
сейчас это устаревшие расширения .lnsh и .lnsm, ставшие
.lns и .lne. Приложение и так делает это само при открытии
каждого файла; команда нужна, когда файлов десятки и открывать их по одному не хочется.
С параметром --dry-run можно посмотреть, что изменится, ничего не трогая.
Это удобство, а не обязанность: старые файлы прекрасно открываются и без него.
Настройки и темы
Где находятся параметры
В Инструменты → Общие настройки вы настраиваете, по разделам: опции Общие (язык, автосохранение, освобождение неактивных вкладок, палитра цветов вкладок, заголовок окна, ежедневные заметки, проверка орфографии), Тему приложения, шрифт и цвета Редактора, стиль Markdown, Выполнение (интерпретаторы), Терминал (оболочки), ИИ-ассистенты (CLI и ИИ по умолчанию), Версионирование и Базу данных (пагинация, Oracle Instant Client).
Вверху списка разделов есть поле поиска, которое фильтрует по параметрам каждой страницы; а раздел Возможности собирает переключатели необязательных функций — граф связей, стикеры, ИИ-сессии, Чат с ИИ, запись звука, возвращение старых заметок, не давать компьютеру засыпать и интеграцию в меню Проводника Windows. Отключение функции убирает её из интерфейса, трея и сочетаний клавиш и прекращает потребление ресурсов — но сохраняет уже созданные данные; изменение вступает в силу после перезапуска.
Темы
Тема приложения меняет внешний вид программы (меню, вкладки, панели, строка состояния). Есть несколько готовых тем — светлые (Light, Solarized Light, Catppuccin Latte, Gruvbox Light, One Light, Rosé Pine Dawn, Everforest Light, Tokyo Night Day) и тёмные (Dark, Tokyo Night, Dracula, Ayu Mirage, Nord, Gruvbox Dark, Everforest Dark, Kanagawa Wave) — а также режим Пользовательская с акцентным цветом. Новые темы поступают через онлайн-каталог, без необходимости обновлять приложение.
Цвета редактора кода и Markdown выбираются отдельно, в своих разделах, независимо от темы приложения. У каждого из них есть выпадающий список Тема: с готовыми цветовыми схемами (Default, Dracula, One, Nord, Gruvbox и Tokyo Night, в светлом и тёмном вариантах), живой предпросмотр и кнопка Сохранить как… для сохранения собственных цветов в виде переиспользуемого пресета.
Тема для каждого окна. У каждой папки (рабочего пространства) может быть своя тема, так что можно держать открытыми два окна с разным видом одновременно. В Настройка рабочего пространства → Внешний вид этой папки есть выпадающие списки для темы этого окна (внешний вид приложения), темы кода и темы Markdown — у каждого есть опция Следовать общей теме/Оставить по умолчанию, чтобы не менять значение. Переопределение тем кода и Markdown удобно, чтобы подогнать цвета редактора под тёмную тему только в этой папке, не трогая общие настройки. Эти выборы остаются только на вашей машине (не коммитятся в Git).
Инструменты, заголовок и макет
Руководство по установке. Когда вы выбираете инструмент из каталога
(ИИ-ассистент, интерпретатор, форматтер, линтер или драйвер базы данных), которого ещё
нет на компьютере, — или пытаетесь запустить/отформатировать/проверить файл, для
которого не хватает интерпретатора, — LightNote открывает руководство по
установке. Если есть безопасная команда (через winget), руководство
показывает точную команду и выполняет её во встроенной консоли одним щелчком;
если инструмент зависит от другого (например, CLI, которому нужен Node.js), оно
предлагает сначала установить необходимый компонент. Без автоматического установщика
руководство открывает официальную страницу загрузки с пошаговой инструкцией. По
завершении оно проверяет установку и делает инструмент готовым к работе без
перезапуска программы.
Разделы Форматирование и Линтеры имеют собственные настройки
(внешний форматтер/линтер для каждого языка, с кнопкой Добавить из
каталога). Чтобы перенести настройки на другую машину, группа Перенос
настроек (в разделе «Общие») содержит Экспорт/Импорт
настроек (файл .lnconf): переносятся общие параметры и темы
оформления содержимого, но не ключи API и локальные пути (их нужно
ввести заново на целевой машине).
Заголовок окна — это шаблон произвольной формы: имя приложения
всегда стоит в конце, а остальное составляется из переменных
{workspace} (корневая папка рабочего пространства),
{file} (имя открытого файла) и {path} (полный
путь). Оформление вокруг пустой переменной (например, скобки в
[ {workspace} ]) исчезает само по себе; оставьте поле пустым для
значения по умолчанию [ {workspace} ] {file} — .
Макет окна. В Вид → Макет окна (или в Общие настройки → Общее → Макет окна) можно выбрать один из трёх готовых наборов — Современный (по умолчанию), Классический и Удобный — либо настроить каждый параметр отдельно: показывать строку меню вверху (когда она включена, кнопка ☰ исчезает, ведь обе открывают одни и те же меню), показывать подписи рядом со значками, размещать панель инструментов и боковую панель слева или справа, а также размер значков. Готовый набор только заполняет параметры: если потом изменить любой из них, ничего не отменяется — список просто начнёт показывать «(пользовательский)». Изменение применяется сразу во всех открытых окнах.
Портативный режим: данные рядом с программой
В версии .zip LightNote хранит настройки, сессии, локальную историю и индексы в папке Windows (%LOCALAPPDATA%), вне папки программы. Портативный режим переносит всё это к исполняемому файлу, и тогда всю папку можно держать на USB-накопителе, внешнем диске или в синхронизируемой папке.
Как включить: распакуйте .zip туда, где будет жить копия, откройте Настройки → Общие → Портативный режим и нажмите Сделать эту копию портативной…. В окне показано, откуда и куда переезжают данные, сколько они занимают и что изменится; после подтверждения LightNote копирует (никогда не перемещает) и просит закрыть и открыть программу. Старая копия остаётся на месте нетронутой — если что-то пойдёт не так, ничего не потеряется.
После этого в папке программы появляются две новые папки: profile — с тем, что принадлежит вам (настройки, сессии, история, загруженные словари), и profile-cache — только с индексами, которые программа перестраивает сама. profile-cache можно удалить в любой момент, чтобы освободить место.
Как обновиться до новой версии: скачайте новый .zip, распакуйте его в новую папку и скопируйте туда папку profile из старой версии. Это всё. profile-cache копировать не нужно (она создаётся заново); скопировать её тоже можно, просто незачем. Не делайте наоборот: профиль, записанный более новой версией, заставит программу открыться только для чтения, чтобы не испортить то, что она пока не умеет читать.
Как отключить: вернитесь в Настройки → Общие → Портативный режим и нажмите Отключить портативный режим…. Ничего не удаляется: обе папки только переименовываются (в profile.desativado и profile-cache.desativado), и при следующем запуске LightNote снова использует папку Windows. Удалить их, восстановить или скопировать из них нужное вы решите позже.
Что НЕ переезжает вместе с папкой на другой компьютер. Три секрета Windows защищает для конкретного пользователя и компьютера, поэтому на другом ПК они не расшифровываются: ключи ИИ, пароли файлов, которые вы попросили запомнить, и сохранённая секретная фраза. Достаточно ввести их там заново — ничего не теряется, а защищённые файлы по-прежнему открываются введённой секретной фразой. Кроме того: открытые вкладки и папки хранят полный путь, поэтому смещаются при смене буквы диска; интеграция с Проводником отключается при включении режима (она пишет в Windows этого компьютера, а именно этого портативный режим и избегает) и включается обратно в настройках; а .mcp.json, записанный в ваших репозиториях, указывает полный путь к lnote.exe, поэтому на новой машине его нужно создать заново.
Взять ключи ИИ с собой (необязательно). В Настройках → Общие → Переносной режим есть Защитить ключи фразой…. Когда это включено, ключи ИИ и запомненные пароли файлов перестают зависеть от Windows и путешествуют вместе с папкой. Подумайте дважды: сегодня потеря флешки ничего не стоит — секреты не открываются вне вашего компьютера; с фразой тот, кто получит папку, сможет без спешки её подбирать. Возьмите длинную фразу. Секретная фраза рабочего пространства намеренно не входит в эту связку: она открывает ваши защищённые заметки, и одна фраза не должна открывать всё. Отметьте Запомнить на этом компьютере, чтобы вас не спрашивали на вашей машине; в другом месте вопрос вернётся.
chaveiro-do-perfilПортативный режим предназначен для версии .zip. Копию, установленную установщиком, и версию из Microsoft Store преобразовать нельзя — их папка доступна только для чтения либо управляется программой удаления, — и окно об этом сообщает, вместо того чтобы оставить кнопку без действия. Из командной строки, при закрытом LightNote: lnote portable --status, lnote portable --on (принимает --dry-run) и lnote portable --off.
Комбинации клавиш
- F1 — эта справка (на разделе текущего экрана)
- Ctrl+N / Ctrl+O — новый файл / открыть файл
- Ctrl+S / Ctrl+W — сохранить / закрыть вкладку
- Ctrl+Alt+Shift+S — сохранить все (каждую изменённую вкладку)
- Ctrl+F / Ctrl+H — найти / заменить в файле
- Ctrl+Shift+F — глобальный поиск (ripgrep)
- Ctrl+Shift+G — панель версионирования (Git)
- Ctrl+Shift+E / Ctrl+Shift+M — панель «Проводник» / панель «Ожидающие»
- Ctrl+B — показать/скрыть боковую панель
- Ctrl+' — терминал (в раскладке US также Ctrl+`)
- Ctrl+/ — комментировать/раскомментировать; Ctrl+Shift+D — дублировать строку
- F5 — выполнить файл; Ctrl+Shift+Enter — отправить выделение в терминал
- Ctrl+K / Ctrl+I — спросить ИИ / редактировать с помощью ИИ
- Ctrl+B / Ctrl+I / Ctrl+E — в заметке Markdown: жирный / курсив / переключить режим просмотра
- Ctrl+Shift+X / Ctrl+Shift+C / Ctrl+Shift+H — в заметке: зачёркнутый / код в строке / выделение
- Ctrl+1…Ctrl+6 — в заметке: уровень заголовка (повтор того же уровня возвращает абзац)
- Ctrl+Shift+V — в заметке: вставить без форматирования
- Ctrl+Enter — «выполнить здесь»: SQL-инструкция, ячейка Блоков, API-запрос, исходник диаграммы/формулы в заметке
- Ctrl+Shift+R / F4 — макрос: запись / воспроизведение
- Ctrl+R — перейти к файлу; Ctrl+Shift+P — палитра команд
- Ctrl+Shift+K — перейти к задаче; Ctrl+Shift+T — снова открыть закрытую вкладку
- Ctrl+Alt+G — граф связей
- Ctrl+Alt+N — быстрый захват (глобально, даже вне LightNote)
- Ctrl+Alt+D / Ctrl+Alt+T — заметка на сегодня / быстрая задача
- Ctrl+Alt+R — начать/остановить запись аудио (глобально, быстрая голосовая заметка)
- F11 — режим Zen (вкладка занимает всё окно)
- Ctrl++ / Ctrl+- / Ctrl+0 — масштаб
Одна и та же клавиша может делать разное в зависимости от того, что в фокусе: побеждает вид с фокусом, а вне его действует комбинация окна. Когда в фокусе вкладка Базы данных, F4 открывает свойства объекта, а не воспроизводит макрос; в Diff и на панели вывода F8/Shift+F8 переходят от изменения к изменению; а в окне Отдельные файлы клавиши Alt+←/Alt+→ перемещают назад и вперёд между папками. Полный, фильтруемый список находится в Справка → Комбинации клавиш.
Лицензия, редакции и сообщество
LightNote поставляется в редакциях с одинаковыми возможностями, различающихся только лицензированием и способом распространения:
- LightNote (бесплатная, с сайта): для личного, некоммерческого использования.
- LightNote Core (Microsoft Store): приобретается как вклад в проект; предоставляет лицензию на коммерческое использование и получает автоматические обновления через Store.
- LightNote Business (в будущем): лицензирование для организаций/ по объёму, зарезервировано на будущее.
Редакция вашей копии — а значит, и применимые условия — показана в Справка → О программе. Полные условия — в Справка → О программе → Условия лицензии….
Присоединяйтесь и участвуйте:
- Предложения и вопросы: GitHub Discussions —
github.com/nglczr/LightNote-Community/discussions - Нашли ошибку? Сообщите о ней в GitHub Issues —
github.com/nglczr/LightNote-Community/issues - Поддержите разработку на Ko-fi —
ko-fi.com/lightnote(или приобретите LightNote Core в Store) - Контакт:
contato@lightnote.com.br· Сайт:lightnote.com.br