4.57.7 • Published 8 months ago

@diplodoc/transform v4.57.7

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

русский | english


NPM version

@diplodoc/transform — пакет для трансформации Yandex Flavored Markdown в HTML.

Используйте его в своем коде для работы с текстом во время выполнения программы. Например, чтобы отображать пользовательский контент.

Установка {#install}

  1. Установите пакет:

    npm i @diplodoc/transform
  2. Подключите пакет в своем коде, используя функцию require() или import():

    const transform = require('@diplodoc/transform');
  3. Для корректного отображения подключите в проект 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.

4.37.1

1 year ago

4.37.0

1 year ago

4.40.1

1 year ago

4.40.0

1 year ago

4.44.1

12 months ago

4.44.0

12 months ago

4.45.5

11 months ago

4.49.0

10 months ago

4.45.4

11 months ago

4.45.3

12 months ago

4.52.0

10 months ago

4.56.0

9 months ago

4.43.0

12 months ago

4.47.0

11 months ago

4.48.3

11 months ago

4.48.2

11 months ago

4.48.1

11 months ago

4.48.0

11 months ago

4.48.4

11 months ago

4.51.0

10 months ago

4.51.1

10 months ago

4.36.0

1 year ago

4.39.0

1 year ago

4.42.1

1 year ago

4.42.0

1 year ago

4.46.0

11 months ago

4.42.4

12 months ago

4.42.3

1 year ago

4.42.2

1 year ago

4.47.4

11 months ago

4.47.3

11 months ago

4.47.2

11 months ago

4.47.1

11 months ago

4.50.0

10 months ago

4.50.3

10 months ago

4.54.0

10 months ago

4.50.4

10 months ago

4.50.1

10 months ago

4.50.2

10 months ago

4.35.0

1 year ago

4.38.2

1 year ago

4.57.5

8 months ago

4.38.1

1 year ago

4.57.2

8 months ago

4.38.0

1 year ago

4.57.3

8 months ago

4.57.6

8 months ago

4.57.7

8 months ago

4.35.0-beta4

1 year ago

4.35.0-beta3

1 year ago

4.35.0-beta6

1 year ago

4.35.0-beta5

1 year ago

4.35.0-beta2

1 year ago

4.35.0-beta1

1 year ago

4.41.1

1 year ago

4.41.0

1 year ago

4.45.2

12 months ago

4.45.1

12 months ago

4.45.0

12 months ago

4.53.0

10 months ago

4.57.0

8 months ago

4.57.1

8 months ago

4.33.0

1 year ago

4.34.0

1 year ago

4.32.4

1 year ago

4.32.3

1 year ago

4.29.0-beta3

1 year ago

4.29.0-beta2

1 year ago

4.18.0

2 years ago

4.29.0-beta1

1 year ago

4.24.0-beta

1 year ago

4.27.1-beta2

1 year ago

4.23.0

1 year ago

4.25.0

1 year ago

4.21.0

2 years ago

4.28.2

1 year ago

4.24.0-beta2

1 year ago

4.28.3

1 year ago

4.24.0-beta1

1 year ago

4.26.0

1 year ago

4.24.0-beta5

1 year ago

4.28.0

1 year ago

4.24.0-beta4

1 year ago

4.28.1

1 year ago

4.24.0-beta3

1 year ago

4.31.4-beta1

1 year ago

4.34.2-beta1

1 year ago

4.31.1

1 year ago

4.31.0

1 year ago

4.31.3

1 year ago

4.31.2

1 year ago

4.19.0

2 years ago

4.17.2

2 years ago

4.19.1

2 years ago

4.17.1

2 years ago

4.22.0

1 year ago

4.24.0

1 year ago

4.20.0

2 years ago

4.25.1

1 year ago

4.27.0

1 year ago

4.29.0

1 year ago

4.27.1-beta

1 year ago

4.30.2

1 year ago

4.30.1

1 year ago

4.32.2

1 year ago

4.32.1

1 year ago

4.16.0

2 years ago

4.17.0

2 years ago

4.16.1

2 years ago

4.15.0

2 years ago

4.14.2

2 years ago

4.14.1

2 years ago

4.14.0

2 years ago

4.13.0

2 years ago

4.13.1

2 years ago

4.12.0

2 years ago

4.11.0

2 years ago

4.10.8

2 years ago

4.10.7

2 years ago

4.10.6

2 years ago

4.10.5

2 years ago

4.10.4

2 years ago

4.10.3

2 years ago

4.10.1

2 years ago

4.10.2

2 years ago

4.9.0

2 years ago

4.10.0

2 years ago

4.8.2

2 years ago

4.8.1

2 years ago

4.8.0

2 years ago

4.7.3

2 years ago

4.7.2

2 years ago

4.7.1

2 years ago

4.7.0

2 years ago

4.6.0

2 years ago

4.5.0

2 years ago

4.4.0

2 years ago

4.3.1

2 years ago

4.3.0

2 years ago

4.2.1

2 years ago

4.2.0

2 years ago

4.1.0

2 years ago

4.0.0

2 years ago