Page MenuHomePhabricator

task
Closed, SpitePublic

Description

blah blah

Event Timeline

alexiatsotsis claimed this task.
alexiatsotsis added a subscriber: alexiatsotsis.
/**
 * Highlights source code with a rainbow of colors, regardless of the language.
 * This highlighter is useless, absurd, and extremely slow.
 *
 * @group markup
 */
class PhutilRainbowSyntaxHighlighter {

  private $config = array();

  public function setConfig($key, $value) {
    $this->config[$key] = $value;
    return $this;
  }

  public function getHighlightFuture($source) {

    $color = 0;
    $colors = array(
      'rbw_r',
      'rbw_o',
      'rbw_y',
      'rbw_g',
      'rbw_b',
      'rbw_i',
      'rbw_v',
    );

    $result = array();
    foreach (phutil_utf8v($source) as $character) {
      if ($character == ' ' || $character == "\n") {
        $result[] = $character;
        continue;
      }
      $result[] =
        '<span class="'.$colors[$color].'">'.
          phutil_escape_html($character).
        '</span>';
      $color = ($color + 1) % count($colors);
    }

    $result = implode('', $result);
    return new ImmediateFuture($result);
  }
}
chad changed the visibility from "All Users" to "Public (No Login Required)".Sep 8 2015, 4:10 AM
chad added a subscriber: chad.

nyancat