Emacs. Пакет org-workbench
Emacs. Пакет org-workbench
Содержание
1 Общая информация
- Репозиторий: https://github.com/yibie/org-workbench
- Реализует систему цифровых карточек (digital card workbench).
- Главная идея — предоставить временное, изолированное пространство, где вы можете, как на реальном столе, свободно перемещать и перегруппировывать карточки с заметками, не затрагивая исходную структуру ваших файлов.
- Когда вы хотите собрать идеи из разных заметок в одну статью, традиционный подход сталкивается с трудностями: прямое изменение оригинальных файлов нарушает их структуру, а постоянное переключение между файлами приводит к потере контекста.
org-workbenchпредлагает решение: создаётся «рабочий стол» (workbench), куда извлекаются нужные фрагменты заметок в виде карточек.- Здесь вы можете безопасно экспериментировать с их порядком и комбинациями.
- Все карточки находятся на одном уровне иерархии, что делает их перемещение и реорганизацию максимально простыми.
1.1 Возможности
- Система цифровых карточек
- вы можете добавить на рабочий стол любой заголовок (heading) из Org-mode или целый файл (например, заметку Org-roam) как отдельную карточку.
- Гибкое управление рабочими столами
- для разных проектов или тем можно создать несколько независимых рабочих столов, состояние каждого автоматически сохраняется.
- Удобные операции с карточками
- на рабочем столе карточки легко перемещать вверх/вниз (
M-↑/M-↓), удалять (C-c C-k); - они не связаны исходной иерархией и находятся на одном уровне.
- на рабочем столе карточки легко перемещать вверх/вниз (
- Двунаправленная связь с исходными файлами
- если в заметках используется система ID (как в Org-roam, Org-brain и др.), карточки
org-workbenchустанавливают связь с исходным файлом; - вы можете перейти (
RET) к исходному файлу для редактирования, а затем синхронизировать (C-c s c) изменения обратно в карточку.
- если в заметках используется система ID (как в Org-roam, Org-brain и др.), карточки
- Визуализация и экспорт
- рабочий стол отображается в виде понятного списка карточек.
- Вы также можете экспортировать этот список в набор Org-ссылок (
org-workbench-export-links), чтобы вставить его в другие документы.
2 Настройка
2.1 Основные параметры
- Длина содержимого карточки
- Эта переменная определяет, сколько символов из исходной заметки будет отображаться под заголовком карточки на рабочем столе.
;; Установить лимит отображаемого текста в 500 символов (значение по умолчанию) (setq org-workbench-card-content-length 500)
- Эта переменная определяет, сколько символов из исходной заметки будет отображаться под заголовком карточки на рабочем столе.
2.2 Настройка системы ID
Система ID отвечает за:
- привязку карточки к исходному файлу;
- возможность перехода к источнику (
RET); - синхронизацию изменений (
C-c s c).
Работает для пакетов:
- org-roam;
- org-brain;
- org-supertag.
По умолчанию
org-workbenchпытается автоматически определить, какой пакет используется.Можно принудительно включить или отключить эту возможность.
;; Включить систему ID (если автодетект по какой-то причине не сработал) (setq org-workbench-enable-id-system t)Можно отключить автоматическое определение пакетов или указать свой список пакетов, при наличии которых система ID будет активирована.
;; Отключить автоматическое определение пакетов (setq org-workbench-auto-detect-id-packages nil) ;; Явно указать, какие пакеты включают систему ID (setq org-workbench-id-packages '(org-roam org-brain org-supertag))
3 Основные команды
3.1 Добавление карточек
Добавить все поддерево (рекомендуется):
M-x org-workbench-add-subtreeилиC-c w a- Наведите курсор на любой заголовок
- Все заголовки в поддереве будут извлечены в виде отдельных карточек.
Добавить только текущий заголовок:
M-x org-workbench-add-headingилиC-c w h- Наведите курсор на любой заголовок
- Добавляется только текущий заголовок, исключая его подзаголовки и содержимое.
Добавить весь файл как карточку:
M-x org-workbench-add-fileилиC-c w f- Откройте любой файл .org
- Выполните команду из любого места в файле.
- Весь файл добавляется в виде одной карточки.
- Идеально подходит для заметок в org-roam или для работы с файлами.
- Карточки с файлами помечаются
[FILE]префиксом на рабочем столе.
3.2 Управление рабочими местами
M-x org-workbench-manageСоздавайте новые рабочие столы для различных проектов.
Переименовать или удалить существующие рабочие столы.
Легко переключайтесь между рабочими столами
3.3 Операции с картами в Workbench
- Переместить карты :
M-↑=/ =M-↓для перемещения карт вверх/вниз - Для перемещения между карточками используйте символы :
n/pилиC-n/C-p - Удалить карту :
C-c C-kчтобы удалить текущую карту - Очистить верстак :
C-c w cчтобы удалить все карты - Обновить :
gдля обновления изображения на экране
3.4 Расширенные возможности (при включенной системе идентификации)
- Перейти к источнику :
RETчтобы перейти к исходному местоположению карточки. - Синхронизация одной карты :
C-c s cдля синхронизации текущей карты с её источником. - Синхронизировать все карточки :
C-c s aдля синхронизации всех карточек с их источниками. - Экспорт ссылок :
C-c C-e(M-x org-workbench-export-links) для экспорта всех ссылок на карточки в новый буфер.
4 Сочетания клавиш
org-workbenchпо умолчанию не устанавливает никаких сочетаний клавиш.- Вот рекомендуемые сочетания:
;; Suggested key bindings for org-mode
(with-eval-after-load 'org
(define-key org-mode-map (kbd "C-c w a") 'org-workbench-add-subtree)
(define-key org-mode-map (kbd "C-c w h") 'org-workbench-add-heading)
(define-key org-mode-map (kbd "C-c w f") 'org-workbench-add-file)
(define-key org-mode-map (kbd "C-c w m") 'org-workbench-manage)
(define-key org-mode-map (kbd "C-c w s") 'org-workbench-show))
5 Рабочий процесс (workflow) для org-workbench
5.1 Подготовка рабочего пространства
- Прежде всего вам понадобятся заметки, организованные в Org-mode с заголовками (headings).
- Желательно, чтобы у заголовков были уникальные ID — это позволит использовать функции перехода к источнику и синхронизации.
- Если вы используете
org-roam,org-brainилиorg-supertag, ID уже есть. - В противном случае можно включить систему ID вручную.
5.2 Создание рабочего стола
Рабочий стол — это отдельный буфер, в котором будут собираться карточки.
Команда:
M-x org-workbench-manageВ появившемся буфере вы можете:
- создать новый рабочий стол (
c), - переименовать (
r), - удалить (
d), - выбрать существующий для работы (просто нажать
RETна его имени).
- создать новый рабочий стол (
После выбора откроется пустой буфер рабочего стола.
Он автоматически сохраняется, так что можно закрыть Emacs и вернуться к работе позже.
5.3 Добавление иерархии как карточки
- Теперь нужно наполнить рабочий стол материалом.
- Перейдите в любую заметку (например, в буфер с файлом Org-roam или просто в
.orgфайл). - Установите курсор на заголовок, который хотите превратить в карточку, и выполните:
M-x org-workbench-add-subtree- Весь текст под этим заголовком (поддерево) будет скопирован в текущий рабочий стол как новая карточка.
- В рабочем столе вы увидите заголовок и краткое содержание.
- Можно добавлять карточки из разных файлов и из разных мест — все они окажутся на одном уровне в рабочем столе.
5.4 Добавление файла как карточки
- Перейдите в любую заметку (например, в буфер с файлом Org-roam или просто в
.orgфайл). - Выполните команду из любого места в файле.
M-x org-workbench-add-fileилиC-c w f.- Весь файл добавляется в виде одной карточки.
- Карточки с файлами помечаются
[FILE]префиксом на рабочем столе.
5.5 Работа с карточками на рабочем столе
В буфере рабочего стола доступны основные операции:
- Перемещение карточки вверх/вниз:
M-↑иM-↓(илиM-p/M-n). - Удаление карточки:
C-c C-k. - Переход к источнику (если настроена система ID): нажмите
RETна карточке — откроется исходный файл с этим заголовком. - Синхронизация изменений (если настроена система ID): после редактирования исходной заметки можно обновить карточку в рабочем столе командой
C-c s c(илиM-x org-workbench-sync-card).- Это скопирует новый текст из источника в карточку.
- Обновление всех карточек рабочего стола из источников:
M-x org-workbench-sync-all.
- Перемещение карточки вверх/вниз:
Карточки можно свободно переставлять, группировать, удалять ненужные — структура исходных файлов остаётся нетронутой.
5.6 Использование карточек для создания новых текстов
- Когда карточки расставлены в нужном порядке, вы можете:
- Экспортировать карточки как список ссылок
- команда
M-x org-workbench-export-linksсоздаст в новом буфере список Org-ссылок на каждую карточку; - эти ссылки можно вставить в другой документ, чтобы использовать как план или оглавление.
- команда
- Просто копировать текст из карточек в новый файл, комбинируя фрагменты.
- Продолжать редактировать прямо в рабочем столе
- карточки — это обычный Org-текст, вы можете дописывать свои мысли, заметки, комментарии между карточками;
- рабочий стол — это полноценный Org-буфер, только с дополнительными командами для управления карточками.
- Экспортировать карточки как список ссылок
5.7 Управление несколькими рабочими столами
- Для каждого проекта или темы можно создать отдельный рабочий стол.
- Переключаться между ними удобно через
M-x org-workbench-manage. - Все они сохраняются в специальном файле (по умолчанию
~/.emacs.d/org-workbench-data.el) и восстанавливаются при следующем запуске Emacs.
5.8 Завершение работы и перенос результатов
- Когда структура готова, вы можете либо оставить рабочий стол как черновик, либо перенести финальный текст в основной документ.
- Рабочий стол можно в любой момент переименовать или удалить, если он больше не нужен.
5.9 Пример сценария: написание статьи
- Вы изучаете тему и собираете заметки в Org-roam.
- Для статьи «Влияние ИИ на образование» создаёте новый рабочий стол
AI-education. - Находите в своей базе заметки: «История ИИ», «Применение в школах», «Этические проблемы», «Исследования 2023». Для каждой выполняете
org-workbench-add-subtree. - В рабочем столе перетаскиваете карточки в логическом порядке: сначала история, потом современные применения, потом этика.
- Между карточками дописываете связующие абзацы.
- В итоге получается черновик статьи, который можно экспортировать в HTML или LaTeX.
6 Сравнение org-workbench и zetteldesk
- Представьте, что вы работаете над сложной статьей. У вас есть много заметок, разбросанных по разным файлам.
org-workbenchпредлагает вам взять эти заметки и выложить их на большой чистый стол.- Вы можете свободно перемещать их, менять порядок, группировать, не боясь испортить оригиналы.
- Это временное, гибкое пространство для сборки идей.
zetteldeskдействует как «обзорная доска», которая прикрепляется к вашему текущему файлу или заметке.- Его задача — показать вам все связанные с ней заметки (например, по ссылкам или обратным ссылкам) в удобном, временном боковом окне.
- Это пространство для навигации и обзора контекста.
| Критерий | org-workbench | zetteldesk |
|---|---|---|
| Основная метафора | Рабочий стол, картотека. Собираете карточки в новом буфере. | Временный обзорный буфер, доска. Показывает все заметки, связанные с текущей. |
| Цель использования | Синтез и написание. Помогает собрать разрозненные идеи в единую структуру. | Навигация и контекст. Помогает увидеть связи между заметками. |
| Связь с источником | Отображаемые заметки — дубликаты оригиналов. | Карточки в рабочем столе — это копии исходных заметок. |
| Работа с иерархией | Уплощает иерархию, помещая все карточки на один уровень. | Сохраняет иерархическую структуру связанных заметок. |
| Вариант использования | Собрать все мысли на один рабочий стол и расставить их в нужном порядке. | Работа над концепцией: глядя на заметку, видеть все связанное. |
Выбирайте
org-workbench, если:- Ваша задача — писать новые тексты, собирать их из кусочков старых заметок.
- Вам нужно безопасное пространство для экспериментов с порядком и структурой идей.
- Вы хотите иметь постоянный «проектный» буфер, к которому можно возвращаться и дорабатывать структуру днями или неделями.
Выбирайте
zetteldesk, если:- Ваша задача — исследовать связи между заметками.
- Вам нужен быстрый обзор контекста текущей темы.
- Вы активно перемещаетесь по своей базе знаний по ссылкам и хотите всегда видеть «соседние» заметки.
