@diplodoc/transform v4.57.7
русский | english
@diplodoc/transform — пакет для трансформации Yandex Flavored Markdown в HTML.
Используйте его в своем коде для работы с текстом во время выполнения программы. Например, чтобы отображать пользовательский контент.
Установка {#install}
Установите пакет:
npm i @diplodoc/transformПодключите пакет в своем коде, используя функцию
require()илиimport():const transform = require('@diplodoc/transform');Для корректного отображения подключите в проект CSS-стили и клиентские скрипты:
@import '~@diplodoc/transform/dist/css/yfm.css';import '@diplodoc/transform/dist/js/yfm';
Использование {#use}
Пакет предоставляет функцию transform():
- входные данные — строка с YFM и настройки;
- возвращаемое значение — объект с полями
resultиlogs.
Поле result
result — объект результата, содержит поля:
html— строка с HTML.meta— метаданные из переданного контента.title— заголовок документа. Возвращается, если заданы настройкиextractTitle = trueилиneedTitle = true.headings— список заголовков документа.
Поле logs
logs — информация о процессе трансформации, включает массивы:
error— ошибки.warn— предупреждения.info— дополнительная информация.
Пример вызова функции
const fs = require('fs');
const transform = require('@diplodoc/transform');
const content = fs.readFileSync(filePath, 'utf');
const vars = {user: {name: 'Alice'}};
const {
result: {html, meta, title, headings},
logs,
} = transform(content, {vars});Пользовательский HTML-санитайзер
Вы можете заменить стандартный HTML-санитайзер своей собственной реализацией, передав функцию sanitize в опциях:
const customSanitizer = (html, options) => {
// Ваша логика санитизации
return sanitizedHtml;
};
const {result} = transform(content, {
sanitize: customSanitizer,
// Другие опции...
});Это полезно, когда вам нужно реализовать специфические правила санитизации или интегрироваться с другой библиотекой санитизации. Функция санитайзера должна принимать HTML-строку в качестве входных данных и возвращать санитизированный HTML.
License
MIT
Публичные CSS-переменные
common
--yfm-color-text--yfm-color-link--yfm-color-base--yfm-color-link-hover--yfm-color-table--yfm-color-table-row-background--yfm-color-border--yfm-color-accent--yfm-tab-size--yfm-text-block-margin-block--yfm-text-block-margin-inline
code
--yfm-color-inline-code--yfm-color-inline-code-background--yfm-color-code-background--yfm-tab-size-code
hightlight
--yfm-color-hljs-background--yfm-color-hljs-subst--yfm-color-hljs-comment--yfm-color-hljs-deletion--yfm-color-hljs-section--yfm-color-hljs-pseudo--yfm-color-hljs-literal--yfm-color-hljs-addition--yfm-color-hljs-meta--yfm-color-hljs-meta-string
note
--yfm-color-note-tip--yfm-color-note-tip-background--yfm-color-note-warning--yfm-color-note-warning-background--yfm-color-note-important-background--yfm-color-note-info--yfm-color-note-info-background
term
--yfm-color-term-title--yfm-color-term-title-hover--yfm-color-term-dfn-background--yfm-color-term-dfn-shadow--yfm-color-term-dfn-pseudo-shadow
modal
--yfm-color-modal-content--yfm-color-modal-actions-hover--yfm-color-modal-wide-content--yfm-color-modal-wide-content-overlay
file
--yfm-file-icon--yfm-file-icon-color
list
--yfm-list-item-margin-block--yfm-list-text-margin-block--yfm-list-text-only-margin-block--yfm-list-text-last-margin-block
Контрибуции
Тесты
В пакете представлены unit-тесты на базе Jest и визуальные e2e-тесты на базе Playwright. Playwright-тесты
расположены в подпакете e2e.
Playwright: prerequisites
Для того, чтобы обеспечить минимальное количество внешних факторов, которые могут повлиять на выполнение e2e-тестов, рекомендуется запускать локально Playwright-тесты в Docker-контейнере с помощью скрипта пакета test:playwright.
Этот скрипт настроит необходимое окружение в Docker и установит все зависимости для него.
$ npm run test:playwrightПодразумевается, что у вас установлен Docker CLI и Docker Engine.
Для того, чтобы использовать UI-режим Playwright, используйте скрипт playwright:docker:ui (в подпакете e2e):
$ cd e2e
$ npm run playwright:docker:uiПользователям macOS: не хотите/не имеете возможность использовать Docker Desktop?
Благодаря относительно недавним изменениям лицензии, использование Docker Desktop в коммерческих условиях больше не является бесплатным. Используйте Lima или одну из обёрток, таких как Colima или Rancher Desktop.
Если при настройке вы выбрали имя инстанса не docker, можете передать нужное с помощью переменной LIMA_INSTANCE при обращении к скрипту playwright:docker/test:playwright:
$ LIMA_INSTANCE=instancename npm run test:playwrightЭта информация необходима скрипту, чтобы корректно настроить переменную окружения DOCKER_HOST.
11 months ago
11 months ago
10 months ago
11 months ago
9 months ago
9 months ago
9 months ago
7 months ago
9 months ago
9 months ago
10 months ago
7 months ago
6 months ago
9 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
7 months ago
7 months ago
12 months ago
11 months ago
10 months ago
10 months ago
8 months ago
9 months ago
9 months ago
9 months ago
8 months ago
8 months ago
8 months ago
8 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
12 months ago
11 months ago
5 months ago
11 months ago
6 months ago
11 months ago
5 months ago
5 months ago
5 months ago
10 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
10 months ago
10 months ago
9 months ago
9 months ago
9 months ago
7 months ago
6 months ago
6 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago