Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@yfm-team/transform

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@yfm-team/transform

Yandex Flavored Markdown

  • 0.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

Простой трансформер текста на YFM (Yandex Flavored Markdown) в HTML.

Yandex Flavored Markdown

Yandex Flavored Markdown (YFM) является диалектом Markdown, который используется сейчас для документации Яндекс.Облака, контента сайта Я.Облака и в различных внутренних проектах Яндекса.

Синтаксис базируется на CommonMark Spec, расширяя его дополнительными возможностями. В том числе, для создания полноценного сложного документационного проекта, такого как документация Яндекс.Облака.

Для сборки своего документационного проекта на YFM вы можете использовать пакет yfm-docs.

Более подробное описание синтаксиса YFM

Использование

Параметры

ИмяОписаниеТипЗначение по-умолчанию
varsПеременныеObject{}
pluginsИспользуемые плагиныfunction[]alerts, attrs, anchors, code, cut, deflist, imsize, meta, sup, tabs, titles
highlightLangsДополнительные языки для подсветки{'lang': function}{}
extractTitleВернуть первый заголовок первого уровня в качестве заголовка всего документаboolfalse
needTitleВернуть первый заголовок первого уровня не удалив его из контентаboolfalse
allowHTMLРазрешено ли использование HTMLboolfalse
linkifyДелать ли ссылками ссылкоподобные строкиboolfalse
breaksПереносить ли строки по символу перевода кареткиbooltrue
conditionsInCodeВыполнять ли условия в блоках кодаboolfalse

Подключение и вызов

Трансформер возвращает результат преобразования и лог, разделенный по типу сообщения: ошибки, предупреждения и информационные. Вы можете обработать сообщения об ошибках и предупреждениях исходя из необходимого вам уровня строгости.

const fs = require('fs');
const transform = require('@yfm/transform');

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

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

Плагины

Вы можете использовать произвольный набор плагинов, как предоставленные этим пакетом, так и любые markdown-it плагины

const fs = require('fs');
const transform = require('@yfm/transform');
const {plugins: {cut, sup}} = require('@yfm/transform');
const video = require('markdown-it-video');

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

const {result: {html, meta}, logs} = transform(content, {vars, plugins: [cut, sup, video]});
Предоставляемые плагины
ИмяОписаниеПараметры
anchorsДобавляет якоря заголовкам{extractTitleOption? = false - нужно ли учитывать заголовок первого уровня}
codeДобавляет кнопку копирования в блоки кода-
cutСворачиваемые блоки-
imagesВставка изображений{assetsPublicPath = '/' - путь до расположения иконок, root - путь до корня проекта, path - путь до текущего трансформируемого файла}
includesВставки{path - путь до текущего трансформируемого файла, getVarsPerFile? - функция, которая должна по пути файла вернуть вычисленные переменные}
linksРасширенные ссылки{path - путь до текущего трансформируемого файла, root - путь до корня проекта}
notesЗаметки{lang? = ru - язык, нужен для локализации дефолтных текстов}
tabsТабы-

Набор плагинов подключаемый по умолчанию: attrs, meta, deflist, cut, alerts, anchors, tabs, code, imsize, sup.

Все плагины принимают опциональным параметром path путь до файла, который будет добавлен в лог ошибок.

Дополнительные языки для подсветки

Трансформер YFM использует highlight.js для подсветки языков. Вы можете передать дополнительный набор языков, который будет зарегистрирован для использования. Набор языков представляет собой обьект, где ключ - это имя языка, а значение - функция, определяющая язык. Смотрите уже существующие языки.

const transform = require('@yfm/transform');
const customLang = require('./custom-lang');

const highlightLangs = { 'custom-lang': customLang };

const {result: {html, meta}, logs} = transform(content, {highlightLangs});

Исходники

Установка

git clone git@github.com:yandex-cloud/yfm-transform.git
cd yfm-transform
npm install

При добавлении изменений в файлы из директории src перед обновлением версии пакета нужно выполнить

npm run dist

License

MIT

Keywords

FAQs

Package last updated on 10 Jun 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc