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/Linux
Org распознает ссылки на макросы в следующих областях разметки 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)}}}
- Макрос реализует пользовательские счётчики, возвращая, скользко раз макрос был выполнен при экспорте буфера.