Сборка одного файла
Команда yfm content обрабатывает один Markdown-файл и выводит результат в stdout (или записывает в файл). В отличие от yfm build, она не обходит весь проект и не собирает полноценную страницу: для формата html выводится только контентный фрагмент — без оглавления, шапки и прочей обвязки страницы.
Команда удобна, когда нужно быстро получить предобработанный контент одного файла — например, чтобы передать его в другой инструмент, отрендерить предпросмотр в редакторе или использовать в собственном пайплайне.
Использование
# self-contained markdown в stdout
yfm content -i ./page.md -f md
# html-фрагмент в файл
yfm content -i ./page.md -f html -o ./page.html
Полный список параметров можно вывести в консоли командой yfm content --help.
Формат вывода
Формат задаётся параметром --output-format (-f):
md— self-contained Markdown: вставки и автозаголовки встроены в файл, добавлен frontmatter. По умолчанию для одиночного файла.html— только контентный HTML-фрагмент страницы (без оглавления, шапки и обвязки).
При обработке применяются те же преобразования, что и при сборке YFM → YFM: проверки условий видимости, подстановки переменных, инлайнинг SVG и подстановки заголовков.
Корень проекта
Пресеты (presets.yaml), вставки, ссылки и переменные резолвятся относительно корня проекта:
- по умолчанию корнем считается текущая рабочая директория;
- передайте
--config(-c) с путём до.yfm— корнем станет директория этого файла.
Примечание
Если обрабатываемый файл лежит вне выбранного корня, корнем становится директория самого файла — чтобы вставки и пресеты корректно резолвились.
Потоки вывода
Предупреждения и ошибки всегда пишутся в stderr. При любой ошибке сборки процесс завершается с ненулевым кодом возврата.
Собранный контент по умолчанию выводится в stdout, обрамлённый маркерами-разделителями, чтобы его можно было отделить от сопутствующего вывода (строка версии, таймер сборки):
<<<<<< YFM CONTENT START >>>>>>
...контент...
<<<<<< YFM CONTENT END >>>>>>
При использовании --output (-o) результат пишется в файл «сырым» — без маркеров.
Режим --raw
Флаг --raw выводит в stdout только контент — без маркеров-разделителей и без баннеров фреймворка (строка версии, таймер сборки, баннер завершения). Это удобно, когда результат нужно направить напрямую в файл или другой инструмент:
yfm content -i ./page.md -f md --raw > page.md
При этом диагностика (предупреждения, ошибки) по-прежнему идёт в stderr, а код возврата остаётся ненулевым при ошибке — так что stdout содержит только валидный контент.
Вместе с -o флаг --raw ничего не меняет: в файл всегда пишется «сырой» контент.
Watch-режим
Beta-функциональность
При возникновении проблем сообщите об этом с помощью GitHub issues.
С параметром --watch (-w) команда отслеживает изменения входного файла, его вставок и пресетов и перерисовывает результат при каждом сохранении.
Параметры
| Параметр | По умолчанию | Описание |
|---|---|---|
-i, --input <file> |
— | Путь до обрабатываемого Markdown-файла (обязательный) |
-o, --output <file> |
stdout | Записать результат в файл вместо stdout |
-f, --output-format <md | html> |
html |
Формат вывода |
--raw |
false |
Выводить в stdout только контент (без маркеров и баннеров) |
-w, --watch |
false |
Пересборка при изменении файла, его вставок и пресетов |
-c, --config <path> |
.yfm |
Файл конфигурации; его директория становится корнем проекта |
--vars-preset <name> |
default |
Применяемый пресет переменных |
-v, --vars <json> |
— | Inline-переменные (JSON), переопределяющие пресеты |
--allow-html / --no-allow-html |
true |
Разрешать «сырой» HTML в Markdown |
--sanitize-html |
true |
Санитизировать полученный HTML |
-s, --strict |
false |
Завершаться с ненулевым кодом при предупреждениях |
Остальные параметры совпадают с параметрами сборки.