Org-mode. Макросы
2025-06-08
·
2 мин. для прочтения
Org-mode. Макросы.
Содержание
1 Общая информация
- Макросы заменяют текстовые фрагменты во время экспорта.
- Макросы определены глобально в
org-export-global-macrosили в документе.
2 Синтаксис
Определение:
#+MACRO: name replacement text; $1, $2 are argumentsМожно ссылаться с помощью
{{{name(arg1, arg2)}}}.Например:
#+MACRO: poem Rose is $1, violet's $2. Life's ordered: Org assists you. {{{poem(red,blue)}}}Результат:
Rose is red, violet's blue. Life's ordered: Org assists you.В качестве особого случая Org анализирует любой текст замены, начинающийся с
(evalкак выражение Emacs Lisp.В таких шаблонах аргументы становятся строками.
Например:
#+MACRO: gnustamp (eval (concat "GNU/" (capitalize $1))) {{{gnustamp(linux)}}}Результат:
GNU/LinuxOrg распознает ссылки на макросы в следующих областях разметки Org:
- абзацы,
- заголовки,
- блоки стихов,
- ячейки таблиц,
- списки.
Org также распознает макросы в ключевых словах:
CAPTION,TITLE,AUTHOR,DATE.
3 Предопределённые макросы
{{{keyword(NAME)}}}{{{title}}}{{{author}}}{{{email}}}- макро
keywordсобирает все значения из ключевого словаNAMEпо всему буферу, разделённые пробелами. {{{title}}}соответствует{{{keyword(TITLE)}}}.{{{author}}}соответствует{{{keyword(AUTHOR)}}}.{{{email}}}соответствует{{{keyword(EMAIL)}}}.
- макро
{{{date}}}{{{date(FORMAT)}}}- Дата документа.
FORMATдолжен быть строкой форматаformat-time-string.
{{{time(FORMAT)}}}{{{modification-time(FORMAT, VC)}}}- Эти макросы ссылаются на дату и время экспорта документа и дата и время изменения.
FORMAT: строка в формеformat-time-string.- Если второй аргумент
modification-timeне являетсяnil, org-mode используетvc.el, чтобы получить время изменения документа из системы контроля версий. В противном случае Org считывает атрибуты файла.
{{{input-file}}}- Макрос ссылается на имя экспортируемого файла.
{{{property(PROPERTY-NAME)}}}{{{property(PROPERTY-NAME, SEARCH OPTION)}}}- Макрос возвращает значение свойства
PROPERTY-NAMEтекущей записи.
- Макрос возвращает значение свойства
{{{n}}}{{{n(NAME)}}}{{{n(NAME, ACTION)}}}- Макрос реализует пользовательские счётчики, возвращая, скользко раз макрос был выполнен при экспорте буфера.