Ejemplo n.º 1
0
 public static function highlight($raw_body)
 {
     $body = sfMarkdown::doConvert($raw_body);
     $matches = array();
     $langs = array();
     preg_match_all("/<pre><code>\\[(\\w*)\\](\\r?\\n)+(.+)(\\r?\\n)+<\\/code><\\/pre>/isU", $body, $matches, PREG_SET_ORDER);
     if (sizeof($matches) > 0) {
         $service = new SnippetServiceClient();
         $cnt = 1;
         foreach ($matches as $match) {
             sfLogger::getInstance()->info("From myUtils: " . $match[3]);
             $languageLower = $match[1];
             $languageUpper = strtoupper($match[1]);
             sfLogger::getInstance()->info("myUtils languages: {$languageLower} {$languageUpper}" . sizeof(self::$languages));
             if (in_array($languageUpper, self::$languages)) {
                 $highlighted = $service->highlight($languageUpper, htmlspecialchars_decode($match[3]));
                 $highlighted['snippet'] = "<div class=\"code-wrapper\">{$highlighted['snippet']}</div>";
                 $body = str_replace($match[0], $highlighted['snippet'], $body, $cnt);
                 $langs[$languageLower] = $langs[$languageLower] ? $langs[$languageLower] + 1 : 1;
             } else {
                 sfLogger::getInstance()->info("myUtils : {$languageLower} is not supported.");
                 $langs[$languageLower] = $langs[$languageLower] ? $langs[$languageLower] + 1 : 1;
                 $body = str_replace($match[0], "<div class=\"code-wrapper\"><pre><code>{$match[3]}</code></pre></div>", $body, $cnt);
             }
         }
     }
     return array('body' => $body, 'langs' => $langs);
 }
Ejemplo n.º 2
0
 public function executeHighlight()
 {
     $url = $this->getRequestParameter('url');
     $language = $this->getRequestParameter('language');
     $code = $this->getRequestParameter('code');
     $service = new SnippetServiceClient();
     $output = $service->highlight($language, $code);
     $this->code = $output['snippet'];
     $this->getResponse()->setTitle($url);
 }