Доброго Времени Суток!
Разрешите представить один свой небольшой опенсурс проект для консольных приложений - 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
- написать парсер логов
- добавить новые элементы