Стилизация консольных приложений на базе Symfony, Laravel, Yii, CakePHP и других фреймворков c помощью Termage

Awilum

Well-Known Member
Регистрация
21.11.2009
Сообщения
92
Доброго Времени Суток!
Разрешите представить один свой небольшой опенсурс проект для консольных приложений - Termage (Terminal Mage)

Предыстория

В августе я начал работать над задачей, которая была на мне - это сделать CLI APP для функционала моей CMSки (https://github.com/flextype/flextype/issues/543).

Для реализации консольного приложения взял Symfony Сonsole. Функционал Symfony Сonsole показался мне крайне бедным и неудобным для стилизации и форматирования вывода.

Ранее я уже засматривался на проект от лиги выдающихся джентельменов - CLImate (https://climate.thephpleague.com) он богаче Symfony Сonsole по функционалу стилизации и форматированию, но по умолчанию не совместим с Symfony Сonsole, да и проект CLImate честно говоря давно уже не развивается и просто стоит на месте.

Принял решение сделать свою библиотеку, которая была бы совместима с Symfony Сonsole приложениями. Назвал свою библиотку CLIrad - но немного позже перименовал CLIrad в Termage (Terminal Mage).

Цель проекта Termage - это предоставить богатый и удобный функционал для стилизации и форматирования вывода любого, текста, html, markdown или логов в консольных приложениях любого фреймворка.

Вдохновители проекта Termage:
Для PYTHON есть библиотека Rich https://github.com/willmcgugan/rich
Для .NET есть библиотека SpectreConsole https://spectreconsole.net/
Для GO есть библиотека PTerm https://pterm.sh/

Подобных библиотек и с таким богатым функционалом для PHP нет! Termage будет PHP аналогом таких библиотек как Rich (PYTHON), SpectreConsole (.NET), PTerm(GO).

Termage ceгодня:
  • независимый от PHP фреймворка рендеринг.
  • 230+ страниц документации, которую я постоянно улучшаю.
  • 12 базовых элементов (Div, Span, Anchor, Alert, Chart, Paragraph и др)
  • 10 базовых стилей (Italic, Bold, Underline, Strikethrough и др)
  • fluent api, магические методы и pipeline классы.
  • шорткоды.

Репозиторий: https://github.com/termage/termage
Документация: https://digital.flextype.org/termage

Планы на ближайшее будущее:
  • улучшать документацию
  • улучшать покрытие тестов.
  • написать конвертор/парсер HTML в ANSI
  • написать конвертор/парсер MARKDOWN в ANSI
  • написать парсер логов
  • добавить новые элементы
 
Верх Низ