manialib / formatting
Manipulate styles in Maniaplanet strings.
Installs: 7 625
Dependents: 2
Suggesters: 0
Security: 0
Stars: 1
Watchers: 5
Forks: 3
Open Issues: 4
Requires
- php: ^8.1
- doctrine/lexer: ^2.0 || ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: @stable
- phpunit/phpunit: ^8.1
- squizlabs/php_codesniffer: @stable
This package is auto-updated.
Last update: 2024-11-21 09:42:10 UTC
README
Manialib\Formatting is a PHP package for manipulating styles in Maniaplanet strings.
Learn more about Maniaplanet formatting characters on the wiki.
Beta
This is a work in progress. As long as we don't release a stable version, we might break stuff at any point. If this is a problem, feel free to open an issue and we'll try to help.
Features
- Strip styles from strings: links, colors, etc.
- Convert strings to other formats: HTML for now
Find out more in the change log.
Requirements
- PHP 8.1+
Installation
{ "require": { "manialib/formatting": "^4.0" } }
Usage
Modify styles of a string:
Note the String fluent interface which allows to chain method calls
use Manialib\Formatting\ManiaplanetString; $nickname = '$l[https://github.com/manialib/formatting]$cfeg$fff๐u1 $666ツ$l'; $string = new ManiaplanetString($nickname); echo $string->stripColors()->stripLinks();
Will output:
g๐u1 ツ
Convert a string to HTML:
use Manialib\Formatting\ManiaplanetString; $string = new ManiaplanetString('$cfeg$fff๐u1 $666ツ'); echo $string->toHtml();
Will output:
<span style="color:#cfe;">g</span><span style="color:#fff;">๐u1 </span><span style="color:#666;">ツ</span>
Everything you need for using this should be documented in Manialib/Formatting/StringInterface
.
Tests
$ php vendor/bin/phpunit
$ php vendor/bin/phpcs --standard=PSR2 src
Development guidelines
We follow best practices from the amazing PHP ecosystem. Warm kudos to Symfony, The PHP League, the PHP subreddit and many more for inspiration and challenging ideas.
- We adhere to the best-practices put forward by PHP The Right Way
- We comply to the standards of the PHP-FIG
- We distribute code via Packagist and Composer
- We manage version numbers with Semantic Versioning
- We keep a changelog
- We use
Manialib\
as our PHP vendor namespace - We use
manialib/
as our Packagist vendor namespace - We'll (try to) make documentation & tests :)