@doc-tools/transform is a package for converting Yandex Flavored Markdown to HTML.

Use it in your code to work with text during program execution. For example, to display user-generated content.


  1. Install a package:

    npm i @doc-tools/transform
  2. Add the package in your code using the require() or import() function:

    const transform = require('@doc-tools/transform');
  3. To ensure text is displayed properly, add CSS styles and client scripts to the project:

    @import '~@doc-tools/transform/dist/css/yfm.css';
    import '@doc-tools/transform/dist/js/yfm';


The package provides the transform() function:

  • Input data: Settings and a string with YFM.
  • Returned value: An object with the result and logs fields.

Result field

result: Resulting object, contains the fields:

  • html: A line with HTML.
  • meta: Metadata from the transmitted content.
  • title: The document title. Returned if extractTitle = true or needTitle = true.
  • headings: A list of document headers.

Logs field

logs: Information about the transformation process, includes arrays:

  • error: Errors.
  • warn: Warnings.
  • info: Additional information.

Example of a function invocation

const fs = require('fs');
const transform = require('@doc-tools/transform');

const content = fs.readFileSync(filePath, 'utf');
const vars = { user: { name: 'Alice' } };

const {
    result: {html, meta, title, headings},
    } = transform(content, {vars});