private static function format_match($matches)
 {
     /* First index in $matches is full match, subsequent indices are groups.
      * Minimum number of elements in array is 2, so minimum captured group is 0. */
     $captured_group_number = count($matches) - 2;
     $code = $matches[0];
     if (array_key_exists($captured_group_number, self::$elements)) {
         $captured_element = self::$elements[$captured_group_number];
         // Avoid capturing and formatting internal Crayon elements
         if ($captured_element->name() == CrayonParser::CRAYON_ELEMENT) {
             return $code;
             // Return as is
         } else {
             // Separate lines and add css class, keep extended class last to allow overriding
             $fallback_css = CrayonLangs::known_elements($captured_element->fallback());
             $element_css = $captured_element->css();
             $css = !empty($fallback_css) ? $fallback_css . ' ' . $element_css : $element_css;
             return self::split_lines($code, $css);
         }
     } else {
         // All else fails, return the match
         return $matches[0];
     }
 }
示例#2
0
 function name($name = NULL)
 {
     if ($name == NULL) {
         return $this->name;
     } else {
         if (is_string($name)) {
             $name = trim(strtoupper($name));
             if (CrayonLangs::is_known_element($name)) {
                 // If known element, set CSS to known class
                 $this->css(CrayonLangs::known_elements($name));
             }
             $this->name = $name;
         }
     }
 }