Shrimple, более простой и понятный Markdown

Shrimple, это маркап-язык, написанный на Go, созданный как альтернатива Markdown. Основная идея: документ должен выглядеть чистым и разборчивым одновременно в текстовом виде и при преобразовании в HTML. Язык предоставляет несколько механик для упрощения синтаксиса. Ссылки реализованы через сноски, вместо встраивания длинных URL прямо в текст (что загромождает источник) ссылки получают URL из номерных сносок, на которые они ссылаются. Блоки кода форматируются с отступом в 6 пробелов; первая строка может указывать язык (например, ### Go), и это будет использовано инструментом Prism.js для правильной подсветки синтаксиса. Shrimple поддерживает маркированные и нумерованные списки с простыми правилами отступа. В языке есть два уровня заголовков (h1 и h2), определяемые длиной символов подчёркивания (=== или ---). Особенная возможность, Parse & Render dictionaries: вместо добавления разметки в исходный документ можно определить словари поиска и стилей, и инструмент автоматически применит нужное оформление к совпадающим словам и выражениям без дополнительной разметки в тексте. Shrimple включает встроенный генератор статических сайтов для создания документации из иерархии файлов с автоматической генерацией навигации и меню. Инструмент распространяется как исходный код и требует компилятора Go для сборки. Выходной HTML можно обёртывать в полный документ или встраивать фрагменты в существующий веб-сайт.

Ключевые факты

  • Маркап-язык на Go, предназначенный для документации и контента, читаемый одновременно в текстовом и HTML-формате
  • Ссылки реализуются через сноски, что упрощает исходный текст и повышает его читаемость
  • Встроенная поддержка подсветки синтаксиса кода через указание языка программирования в начале блока (с использованием Prism.js)
  • Parse & Render dictionaries позволяют применять стилизацию к словам и фразам без добавления разметки в исходный документ
  • Встроенный генератор статических сайтов для создания документации с автоматической навигацией и меню

Почему это важно

Читаемость, ключевая проблема маркап-языков, чем более загромождён исходный текст символами и URL, тем сложнее его редактировать и читать человеку. Shrimple решает эту проблему, предоставляя синтаксис, который остаётся чистым и разборчивым даже в исходной форме, не требуя рендера для понимания. Это особенно важно для документации, которую редактируют версионируют разработчики и которая должна быть удобной как в Git, так и при просмотре в редакторе.

Кому это важно

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

Как это применить

Установить компилятор Go, скомпилировать Shrimple из исходного кода (go build). Использовать команду вроде cat README | ./shrimple -s -w > README.html для преобразования файла в HTML с опциями -s (добавить CSS по умолчанию) и -w (обернуть в полный HTML-документ). Для статических сайтов использовать флаги -g (генерировать сайт), -n (добавить навигацию), -m (добавить меню). Можно использовать parse- и render-словари (-p и -r флаги) для автоматического применения стилизации к словам без изменения исходного текста.

Можно ли доверять

Shrimple распространяется как открытый исходный код на GitHub; автор, пользователь HackerNews usrbinenv. Документация в проекте полная и содержит примеры использования каждого механика. Функциональность проверяется реальной возможностью скомпилировать и использовать инструмент. Примеры синтаксиса в исходной статье корректны и согласованы с описаниями.

Риски и подводные камни

Требует установки и компиляции компилятора Go вместо простого использования готового бинаря (хотя сборка достаточно стандартна). Язык значительно менее распространён, чем Markdown, поэтому экосистема плагинов и интеграций намного меньше. Инструмент достаточно молодой (судя по активности на HackerNews, это новый проект), поэтому стабильность и совместимость через версии могут быть вопросом. Static site generator встроен в основной инструмент, что может ограничить гибкость для сложных случаев.