| @@ 28-45 (lines=18) @@ | ||
| 25 | */ |
|
| 26 | class HtmlFormatter implements FormatterInterface |
|
| 27 | { |
|
| 28 | public function format(Tokens $tokens) |
|
| 29 | { |
|
| 30 | $source = $tokens->getSource(); |
|
| 31 | ||
| 32 | $result = ''; |
|
| 33 | $last = 0; |
|
| 34 | ||
| 35 | /** @var Token $token */ |
|
| 36 | foreach ($tokens as $token) { |
|
| 37 | $result .= htmlspecialchars(substr($source, $last, $token->pos - $last)); |
|
| 38 | $result .= $token->isStart() ? $this->getOpenTag($token) : $this->getCloseTag(); |
|
| 39 | ||
| 40 | $last = $token->pos; |
|
| 41 | } |
|
| 42 | $result .= substr($source, $last); |
|
| 43 | ||
| 44 | return $result; |
|
| 45 | } |
|
| 46 | ||
| 47 | protected function getOpenTag(Token $token) { |
|
| 48 | return '<span class="' . str_replace('.', ' ', $token->name) . '">'; |
|
| @@ 36-55 (lines=20) @@ | ||
| 33 | $this->_styles = $styles ?: include __DIR__.'/../Styles/LaTeX/Default.php'; |
|
| 34 | } |
|
| 35 | ||
| 36 | public function format(Tokens $tokens) |
|
| 37 | { |
|
| 38 | $source = $tokens->getSource(); |
|
| 39 | ||
| 40 | $result = ''; |
|
| 41 | $last = 0; |
|
| 42 | ||
| 43 | /** @var Token $token */ |
|
| 44 | foreach ($tokens as $token) { |
|
| 45 | $result .= sprintf( |
|
| 46 | '%s%s', |
|
| 47 | $this->escape(substr($source, $last, $token->pos - $last)), |
|
| 48 | $token->isStart() ? $this->getOpenTag($token) : $this->getCloseTag($token)); |
|
| 49 | ||
| 50 | $last = $token->pos; |
|
| 51 | } |
|
| 52 | $result .= substr($source, $last); |
|
| 53 | ||
| 54 | return $result; |
|
| 55 | } |
|
| 56 | ||
| 57 | protected function escape($token) |
|
| 58 | { |
|