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]; } }
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; } } }