Сборка одного файла

Статья обновлена 3 июля 2026 г.

Команда 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 Завершаться с ненулевым кодом при предупреждениях

Остальные параметры совпадают с параметрами сборки.