Библиотеки Remark и Rehype являются центральными компонентами экосистемы unified, созданной для работы с текстовыми форматами на основе абстрактного синтаксического дерева (AST). Изначально цель разработчиков заключалась в том, чтобы построить универсальную инфраструктуру для парсинга, трансформации и генерации различных текстовых форматов, таких как Markdown, HTML, JSON и другие.
Идея unified возникла из потребности унифицировать подход к обработке текстовых форматов. До появления unified существовали разрозненные решения для Markdown и HTML, каждое со своей архитектурой, плагинами и способами трансформации. Это приводило к проблемам интеграции и повторного использования кода между проектами. Основной концепцией, которая легла в основу экосистемы, стала унификация представления текстов через AST, что позволяло создавать абстрактные и совместимые между собой трансформации независимо от исходного формата.
Remark начал свой путь как библиотека для работы с Markdown. Он обеспечивал возможность разбирать Markdown в AST, изменять его с помощью плагинов и затем генерировать обратно в Markdown. Первые версии были ориентированы на простые преобразования: исправление синтаксических ошибок, стандартизация отступов и т.д.
Ключевые особенности Remark:
Rehype является логическим продолжением идеи Remark, но сфокусирован на HTML. Основной задачей стало предоставление инструмента для работы с HTML как с AST (HAST — HTML Abstract Syntax Tree), что позволило применять схожую концепцию трансформации и генерации для веб-документов.
Особенности Rehype:
На уровне архитектуры unified обеспечивает единый интерфейс для парсинга, трансформации и генерации текстов:
Благодаря такой архитектуре, Remark и Rehype можно комбинировать для построения сложных цепочек обработки: Markdown → AST → HAST → HTML.
Появление unified экосистемы дало сильный импульс для стандартизации обработки текстовых данных в JavaScript. Появились возможности:
Основные принципы, заложенные в развитие unified:
Эти принципы сделали unified гибкой и расширяемой экосистемой, способной адаптироваться к новым форматам и требованиям разработчиков.
Со временем unified выросла в экосистему, включающую не только Remark и Rehype, но и инструменты для CSS, YAML, JSON и других форматов. Структура и философия системы остаются неизменными: использование AST как центрального элемента и расширяемость через плагины. Это позволяет разработчикам создавать сложные цепочки обработки текстов, поддерживать стандарты и интегрировать новые форматы без кардинальных изменений в архитектуре.
Unified экосистема стала фундаментом для современных инструментов статической генерации сайтов, редакторов Markdown, систем линтинга и преобразования документации, обеспечивая единый подход к обработке любых текстовых форматов.