Расширения

Поверх 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, definition, proof, example, remarkУтверждения
Выноскиnote, tip, important, warning, caution, calloutВыноски
ИллюстрацииfigureИллюстрации
Сворачиваемые секцииspoilerСворачиваемые секции
Вкладкиtabs, tabВкладки
Диаграммы TikZtikzTikZ

Три строчных расширения используют собственный синтаксис вместо директив: видеовставки (@[youtube](...)), упоминания (@handle) и ссылки на вложения (:attach[...]{#id}).