4.57.7 • Published 5 months ago

@diplodoc/transform v4.57.7

Weekly downloads
-
License
MIT
Repository
github
Last release
5 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

11 months ago

4.37.0

11 months ago

4.40.1

10 months ago

4.40.0

11 months ago

4.44.1

9 months ago

4.44.0

9 months ago

4.45.5

9 months ago

4.49.0

7 months ago

4.45.4

9 months ago

4.45.3

9 months ago

4.52.0

7 months ago

4.56.0

6 months ago

4.43.0

9 months ago

4.47.0

8 months ago

4.48.3

8 months ago

4.48.2

8 months ago

4.48.1

8 months ago

4.48.0

8 months ago

4.48.4

8 months ago

4.51.0

7 months ago

4.51.1

7 months ago

4.36.0

12 months ago

4.39.0

11 months ago

4.42.1

9 months ago

4.42.0

9 months ago

4.46.0

8 months ago

4.42.4

9 months ago

4.42.3

9 months ago

4.42.2

9 months ago

4.47.4

8 months ago

4.47.3

8 months ago

4.47.2

8 months ago

4.47.1

8 months ago

4.50.0

7 months ago

4.50.3

7 months ago

4.54.0

7 months ago

4.50.4

7 months ago

4.50.1

7 months ago

4.50.2

7 months ago

4.35.0

12 months ago

4.38.2

11 months ago

4.57.5

5 months ago

4.38.1

11 months ago

4.57.2

6 months ago

4.38.0

11 months ago

4.57.3

5 months ago

4.57.6

5 months ago

4.57.7

5 months ago

4.35.0-beta4

12 months ago

4.35.0-beta3

12 months ago

4.35.0-beta6

12 months ago

4.35.0-beta5

12 months ago

4.35.0-beta2

12 months ago

4.35.0-beta1

12 months ago

4.41.1

10 months ago

4.41.0

10 months ago

4.45.2

9 months ago

4.45.1

9 months ago

4.45.0

9 months ago

4.53.0

7 months ago

4.57.0

6 months ago

4.57.1

6 months ago

4.33.0

12 months ago

4.34.0

12 months ago

4.32.4

12 months ago

4.32.3

12 months ago

4.29.0-beta3

1 year ago

4.29.0-beta2

1 year ago

4.18.0

1 year 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

1 year 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

1 year ago

4.17.2

1 year ago

4.19.1

1 year ago

4.17.1

1 year ago

4.22.0

1 year ago

4.24.0

1 year ago

4.20.0

1 year 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

1 year ago

4.17.0

1 year ago

4.16.1

1 year ago

4.15.0

1 year ago

4.14.2

1 year ago

4.14.1

1 year ago

4.14.0

1 year 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