Renee.Dimitrescu

На Пикабу
Дата рождения: 30 июня
в топе авторов на 723 месте
100 рейтинг 0 подписчиков 3 подписки 1 пост 0 в горячем
2

Impactite: консольный Markdown-блокнот для тех, кто предпочитает клавиатуру

Impactite: консольный Markdown-блокнот для тех, кто предпочитает клавиатуру

Если вы проводите большую часть дня в терминале и ведёте заметки в Markdown, то, наверняка, смотрели на Obsidian и думали: «Хороший инструмент, но не хочется покидать командную строку». Именно эту нишу и пытается закрыть Impactite. Это терминальный просмотрщик и редактор Markdown, написанный на Python. Основная идея проста: инструмент для заметок должен быть быстрым, управляемым с клавиатуры и удобным в том же окне, где уже работают оболочка, редактор и система контроля версий.

Репозиторий проекта: https://github.com/NeonSalamander/Impactite

Что это такое, простыми словами

Impactite — не веб-приложение, не расширение для браузера и не облачный сервис. Это одна программа на Python с текстовым интерфейсом (TUI). Вы указываете ей папку с Markdown-файлами — ваши заметки — и получаете рабочее пространство из трёх панелей: дерево файлов слева, отрендеренная или редактируемая заметка по центру, облако тегов или статусная панель снизу. Вы перемещаетесь по заметкам с клавиатуры, открываете файлы, редактируете их, ищете по тегам и создаёте ежедневные заметки, не прикасаясь к мыши, если не хотите.

Проект специально небольшой. Он не пытается заменить все функции современного приложения для базы знаний. Вместо этого он сосредоточен на том, что большинство людей делает каждый день: читает заметки, пишет заметки, помечает тегами, ищет заметки и иногда запускает простой запрос по коллекции заметок.

Зачем терминальный инструмент?

Для рабочего стола есть хорошие Markdown-редакторы, а для ведения заметок — отличные программы с развитыми ссылками. Но у них свои недостатки: обёртки на Electron, проприетарная синхронизация, требование аккаунта, экосистемы плагинов, которые ломаются при обновлениях. У терминального приложения другие компромиссы.

- Оно запускается мгновенно.

- Работает по SSH.

- Использует ту же папку с обычными `.md`-файлами, которую вы уже храните в Git.

- Не лезет в интернет и не требует регистрации.

- Предсказуемо работает на маломощных машинах.

Impactite подойдёт тем, кто ценит эти качества и готов обойтись без встроенного просмотра изображений или drag-and-drop редактирования.

Что с ним можно делать:

Читать и редактировать Markdown

У каждой заметки в Impactite два режима: просмотр и редактирование. В режиме просмотра Markdown отрисовывается с заголовками, списками, блоками кода, таблицами и встроенным форматированием. В режиме редактирования вы видите исходный Markdown в области с подсветкой синтаксиса. Над редактором есть небольшая панель инструментов, которая одним сочетанием вставляет жирный текст, курсив, заголовки, списки, ссылки, задачи, блоки кода и горизонтальные линии. Если выделить текст перед нажатием кнопки — форматирование обернёт выделение, иначе вставится шаблон, а курсор встанет туда, куда нужно.

Интерактивные чекбоксы

Списки задач отображаются не просто как текст — по ним можно кликать. Щелчок по `- [ ]` в режиме просмотра переключает его в `- [x]`, и файл сразу сохраняется. Для быстрых обновлений статуса — список прочитанного, файл с задачами, чеклист проекта — это убирает лишние действия с переключением в режим редактирования.

Теги, поиск и граф связей

Теги распознаются либо из frontmatter заметки (`tags:`), либо из inline-`#хэштегов`. При запуске все теги индексируются в локальную базу данных и показываются в облаке тегов, каждый со своим устойчивым цветом. Клик по тегу запускает поиск по всем заметкам.

Также есть граф связей — иерархическое дерево отношений между заметками и тегами. Из него можно открывать заметки и запускать поиск по тегам. Обратные ссылки тоже учитываются: видно, какие заметки ссылаются на текущую.

Ежедневные заметки и шаблоны

Одним сочетанием клавиш создаётся ежедневная заметка с заполненным frontmatter (`type: daily_note`, `date`), которая сохраняется в настраиваемую папку. Есть и шаблонный движок на основе Jinja2. Шаблоны живут в папке `templates/` внутри каталога заметок и могут использовать переменные вроде `{{title}}`, `{{date}}`, `{{time}}`, `{{author}}` и другие. Новую заметку по шаблону можно создать прямо из интерфейса.

Формы ввода внутри заметок

Заметка, у которой первый ключ frontmatter — `type: form`, в режиме просмотра превращается в интерактивную форму ввода данных. Поля задаются в frontmatter: строки, многострочный текст, целые числа, даты, переключатели, а также выпадающие списки и множественный выбор. При сохранении форма может либо создать новый Markdown-файл, либо сохранить запись в локальную базу данных. Это удобно для регулярных структурированных записей: обзоров книг, проектных задач, замеров веса, встреч с фиксированной структурой.

Псевдо-SQL запросы

Внутри любой заметки можно добавить блок кода с языком `query` или `dataview` и написать небольшой SQL-подобный запрос по заметкам или записям форм. Например:

```query

FROM notes/books

WHERE read = true

SELECT title, author, rating

ORDER BY rating DESC

```

Движок запросов поддерживает `WHERE`, `GROUP BY`, `HAVING`, `SELECT`, `ORDER BY`, `LIMIT` и агрегатные функции `COUNT`, `SUM`, `MIN`, `MAX`, `AVG`. Можно запрашивать frontmatter Markdown-файлов или JSON-записи, сохранённые формами. Если вы пользовались плагином Dataview для Obsidian, концепция покажется знакомой, хотя синтаксис здесь проще.

Избранное, темы и локализация

Заметки можно добавлять в избранное и открывать их из отдельного узла в боковой панели. Интерфейс поддерживает светлую и тёмную темы, причём текущий выбор автоматически сохраняется в конфигурационный файл. Само приложение локализовано на английский, русский и немецкий языки.

Табличные формулы в духе электронных таблиц

Для тех, кто ведёт структурированные таблицы в заметках, Impactite включает небольшой движок табличных формул, вдохновлённый TBLFM из Emacs Org-mode. После Markdown-таблицы можно добавить комментарий и вычислять суммы столбцов, произведения, средние значения и выражения по ячейкам. Это специфическая функция, но она по-настоящему полезна, если вы отслеживаете бюджеты, часы или баллы прямо в заметках.

Технологический стек

Impactite написан на Python и рассчитан на Python 3.14 и новее. Он построен поверх двух известных библиотек:

- Textual — для текстового интерфейса, виджетов, обработки событий и тем.

- Rich — для рендеринга Markdown, подсветки синтаксиса, таблиц и стилизованного текста.

Среди прочих зависимостей:

- `markdown` и `PyYAML` — для разбора Markdown и frontmatter.

- `Pygments` — для подсветки блоков кода.

- `Jinja2` — для шаблонного движка.

- `ladybug` — для локального индекса тегов и базы записей форм.

Проект использует `uv` для управления зависимостями и сборки, а также стандартный `pyproject.toml`. Установить как самостоятельную команду можно через `uv tool install .`.

Установка и первый запуск

После клонирования репозитория:

```bash

uv sync

uv run impactite

```

Или установить как системную команду:

```bash

uv tool install .

impactite

```

Настройки хранятся в `config.yaml`. В нём указывается путь к заметкам, язык интерфейса, горячие клавиши, настройки редактора и тема. Относительный `notes_path` разрешается относительно файла конфигурации, а не текущей директории, поэтому Impactite можно запускать откуда угодно — он всё равно откроет тот же блокнот.

Кому это подойдёт

Impactite будет хорошим выбором, если:

- Вы уже храните заметки как Markdown-файлы в папке, которую контролируете.

- Много времени проводите в терминале и предпочитаете работу с клавиатуры.

- Хотите теги и ссылки в духе Obsidian, но без полноценного настольного приложения.

- Нужен небольшой самодостаточный способ собирать структурированные данные через формы.

- Хотите, чтобы заметки оставались обычными файлами, которые открываются любым текстовым редактором или Git.

Скорее всего, это не подойдёт, если вы активно используете изображения, PDF, Canvas-доски или совместное редактирование в реальном времени. Инструмент ориентирован на текст и терминал.

Вместо заключения

Impactite — это практичный и предсказуемый Markdown-блокнот для терминала. Он не обещает «изменить ваше мышление»; он просто даёт чистый и быстрый способ читать, писать, организовывать и запрашивать ваши Markdown-заметки, не покидая командной строки. Если такой подход вам близок — попробуйте.

Репозиторий проекта: https://github.com/NeonSalamander/Impactite

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества