Olddevs UI3.38.0
Рецепты

Markdown своего Блока

Свой синтаксис Markdown для своего Блока — токенайзер, разбор и renderMarkdown в Части для движка.

Без своих правил getMarkdown() текст не теряет: Блок выгружается своим содержимым, атом — Текстом атома, Метка — своим текстом. Но обратно из Markdown такой Блок не создаётся. Чтобы Блок прошёл круг getMarkdown() → setMarkdown(), дайте ему правила Markdown.

Нажмите «Load Markdown» — строка ::: … станет Блоком-заметкой. «Export Markdown» выгрузит её обратно.

Как устроено

  • Правила — в Части для движка, как у любого расширения Tiptap: markdownTokenizer находит строку, parseMarkdown строит узел, renderMarkdown пишет его обратно. Отдельного поля в описании Инструмента нет.
  • Схема по-прежнему главная. Что бы ни создал разбор, в Документ попадает только то, что разрешают правила Схемы.
  • Без правил в режиме разработки — одно предупреждение console.warn на Инструмент, когда умолчание впервые сработало. Пропадает только атом без текста.
  • Вставка из буфера тоже понимает правила: текст с признаками Markdown превращается в Блоки, и строка ::: … — в том числе.

На этой странице