Как стать автором
Поиск
Написать публикацию
Обновить

Парсинг обратных кавычек в тексте

Проблема

Разбор обратных кавычек в Markdown может быть сложной задачей. Большинство парсеров обрабатывают множество различных функций, что излишне для простого анализа обратных кавычек.

Решение

backticks-codeblocks - миниатюрная JS библиотека для разбора обратных кавычек в строках. Идентифицирует и отделяет встроенный код (окруженный одинарными обратными кавычками) и блочный код (заключенный в тройные обратные кавычки) от остального текста.

Как это работает

Библиотека обрабатывает строку текста и возвращает массив сегментов. Каждый сегмент является либо строкой (обычный текст), либо объектом, представляющим сниппет кода. Объект включает в себя содержимое кода и булевый флаг, указывающий, является ли это блочным кодом.

Пример использования

import { processText } from 'backticks-codeblocks';

const markdown = 'Немного встроенного кода и блок:\n\nconsole.log("Привет, мир!");\n';
const segments = processText(markdown);

// вывод segments:
// [
//   "Немного ",
//   { code: "встроенного кода", isBlock: false },
//   " и блок:\n",
//   { code: 'console.log("Привет, мир!");', isBlock: true }
// ]

Почему backticks-codeblocks?

  • Легковесность: Фокусируется только на разборе обратных кавычек, что делает его намного меньше полноценных парсеров Markdown.

  • Простота: Легко использовать благодаря прямолинейному подходу.

  • Гибкость: Полезен в ситуациях, когда требуется только разбор обратных кавычек без лишнего функционала полного парсера Markdown.

Библиотека является открытой, буду рад помощи, предложениям по улучшению, сообщениям об ошибках и, конечно, пулл реквестам.


backticks-codeblocks - это скромная попытка упростить конкретный аспект разбора Markdown. Надеюсь, она окажется полезной для ваших проектов.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.