Расширения

Синтаксис директив и блочные расширения LibreTimes

Поверх CommonMark, GFM, математики и кода LibreTimes добавляет семейство блочных расширений: теоремные утверждения, выноски, иллюстрации с подписями, сворачиваемые секции, вкладки, диаграммы TikZ, видеовставки, упоминания и ссылки на вложения. Почти все они разделяют один синтаксис: выучите его один раз — и каждый блок на следующих страницах станет просто словарной статьёй.

Синтаксис директив

Блочная директива — это ограждённая область, открытая тремя (или более) двоеточиями и именем, и закрытая такой же строкой двоеточий:

:::имя[метка]{атрибуты}
Любое содержимое Markdown.
:::

Три части, две из них опциональны:

  • имя — какой это блок: theorem, note, figure, spoiler, tabs, tikz, ...
  • [метка] — необязательный текст в квадратных скобках на открывающей строке. Значение зависит от блока: имя теоремы, заголовок спойлера.
  • {атрибуты} — необязательные пары {key=value} или {#id}. Их используют иллюстрации ({#fig1}) и вкладки ({name="Python"}).

Тело — обычный Markdown: абзацы, формулы, списки, код, даже другие директивы.

Вложенность

Чтобы вложить одну директиву в другую, дайте внешней ограде больше двоеточий, чем внутренней:

::::proof
Отображение раскладывается, как показано:
 
:::tikz
\begin{tikzpicture} ... \end{tikzpicture}
:::
::::

(Вложенность с равным числом двоеточий, которую пишет редактор LibreTimes, чинится автоматически при рендеринге, но при письме от руки правило – больше двоеточий снаружи.)

Неизвестные имена

Директива с именем вне словаря рендерится простым контейнером: содержимое показывается, оформления нет. Ничего не ломается — но проверьте написание: :::theorm теоремой выглядеть не будет. Чтобы показать буквальный синтаксис директивы (как на этой странице), поместите его в блок кода.

Словарь

БлокИменаСтраница
Утвержденияtheorem, lemma, corollary, conjecture, definition, proof, example, remark, problem, solution, hintУтверждения
Выноскиnote, tip, important, warning, caution, calloutВыноски
ИллюстрацииfigureИллюстрации
Сворачиваемые секцииspoilerСворачиваемые секции
Вкладкиtabs, tabВкладки
Диаграммы TikZtikzTikZ
Книжные блокиverse, epigraph, dedication, letterСтихи, эпиграфы и письма

Два строчных расширения используют собственный синтаксис, а не директивы: видеовставки (@[youtube](...)) и упоминания (@username).

Ещё три — текстовые директивы, форма с одним двоеточием внутри предложения: ссылки на вложения (:attach[...]{#id}), а также капитель (:sc[...]) и номера печатных страниц (:pb[412]) из книжных блоков.