From e7e04689f1a896fbfb00f596bcdfc363ffb751d7 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Mon, 5 Nov 2012 13:55:23 +0100 Subject: [PATCH] Add HtmlOutputFormatter --- src/Composer/Console/HtmlOutputFormatter.php | 88 ++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 src/Composer/Console/HtmlOutputFormatter.php diff --git a/src/Composer/Console/HtmlOutputFormatter.php b/src/Composer/Console/HtmlOutputFormatter.php new file mode 100644 index 000000000..264377ee2 --- /dev/null +++ b/src/Composer/Console/HtmlOutputFormatter.php @@ -0,0 +1,88 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Console; + +use Symfony\Component\Console\Formatter\OutputFormatter; + +/** + * @author Jordi Boggiano + */ +class HtmlOutputFormatter extends OutputFormatter +{ + private static $availableForegroundColors = array( + 30 => 'black', + 31 => 'red', + 32 => 'green', + 33 => 'yellow', + 34 => 'blue', + 35 => 'magenta', + 36 => 'cyan', + 37 => 'white' + ); + private static $availableBackgroundColors = array( + 40 => 'black', + 41 => 'red', + 42 => 'green', + 43 => 'yellow', + 44 => 'blue', + 45 => 'magenta', + 46 => 'cyan', + 47 => 'white' + ); + private static $availableOptions = array( + 1 => 'bold', + 4 => 'underscore', + //5 => 'blink', + //7 => 'reverse', + //8 => 'conceal' + ); + + /** + * @param array $styles Array of "name => FormatterStyle" instances + */ + public function __construct(array $styles = array()) + { + parent::__construct(true, $styles); + } + + public function format($message) + { + $formatted = parent::format($message); + + return preg_replace_callback("{\033\[([0-9;]+)m(.*?)\033\[0m}s", array($this, 'formatHtml'), $formatted); + } + + private function formatHtml($matches) + { + $out = ''.$matches[2].''; + } +}