private static function init_tags_regex($force = FALSE, $flags = NULL, &$tags_regex = NULL) { CrayonSettingsWP::load_settings(); self::init_tag_bits(); // Default output if ($tags_regex === NULL) { $tags_regex =& self::$tags_regex; } if ($force || $tags_regex === "") { // Check which tags are in $flags. If it's NULL, then all flags are true. $in_flag = self::in_flag($flags); if ($in_flag[CrayonSettings::CAPTURE_MINI_TAG] && CrayonGlobalSettings::val(CrayonSettings::CAPTURE_MINI_TAG) || $force || ($in_flag[CrayonSettings::INLINE_TAG] && (CrayonGlobalSettings::val(CrayonSettings::INLINE_TAG) && CrayonGlobalSettings::val(CrayonSettings::INLINE_TAG_CAPTURE)) || $force)) { $aliases = CrayonResources::langs()->ids_and_aliases(); self::$alias_regex = ''; for ($i = 0; $i < count($aliases); $i++) { $alias = $aliases[$i]; $alias_regex = CrayonUtil::esc_hash(CrayonUtil::esc_regex($alias)); if ($i != count($aliases) - 1) { $alias_regex .= '|'; } self::$alias_regex .= $alias_regex; } } // Add other tags $tags_regex = '#(?<!\\$)(?:(\\s*\\[\\s*crayon\\b)'; // TODO this is duplicated in capture_crayons() $tag_regexes = array(CrayonSettings::CAPTURE_MINI_TAG => '(\\[\\s*(' . self::$alias_regex . ')\\b)', CrayonSettings::CAPTURE_PRE => '(<\\s*pre\\b)', CrayonSettings::INLINE_TAG => '(' . self::REGEX_INLINE_CLASS . ')' . '|(\\{\\s*(' . self::$alias_regex . ')\\b([^\\}]*)\\})', CrayonSettings::PLAIN_TAG => '(\\s*\\[\\s*plain\\b)', CrayonSettings::BACKQUOTE => '(`[^`]*`)'); foreach ($tag_regexes as $tag => $regex) { if ($in_flag[$tag] && (CrayonGlobalSettings::val($tag) || $force)) { $tags_regex .= '|' . $regex; } } $tags_regex .= ')#msi'; } }
private static function init_tags_regex() { if (!self::$is_tags_regex_init) { if (CrayonGlobalSettings::val(CrayonSettings::CAPTURE_MINI_TAG) || CrayonGlobalSettings::val(CrayonSettings::INLINE_TAG)) { $aliases = CrayonResources::langs()->ids_and_aliases(); for ($i = 0; $i < count($aliases); $i++) { $alias = $aliases[$i]; $alias_regex = CrayonUtil::esc_hash(CrayonUtil::esc_regex($alias)); if ($i != count($aliases) - 1) { $alias_regex .= '|'; } self::$alias_regex .= $alias_regex; } } // Add other tags self::$tags_regex = '#(\\s*\\[\\s*crayon\\b)'; if (CrayonGlobalSettings::val(CrayonSettings::CAPTURE_MINI_TAG)) { self::$tags_regex .= '|([\\[]\\s*(' . self::$alias_regex . '))'; } if (CrayonGlobalSettings::val(CrayonSettings::CAPTURE_PRE)) { self::$tags_regex .= '|(<\\s*pre\\b)'; } if (CrayonGlobalSettings::val(CrayonSettings::INLINE_TAG)) { self::$tags_regex .= '|(' . self::REGEX_INLINE_CLASS . ')' . '|([\\{]\\s*(' . self::$alias_regex . '))'; } if (CrayonGlobalSettings::val(CrayonSettings::PLAIN_TAG)) { self::$tags_regex .= '|(\\s*\\[\\s*plain\\b)'; } if (CrayonGlobalSettings::val(CrayonSettings::BACKQUOTE)) { self::$tags_regex .= '|(`[^`]*`)'; } self::$tags_regex .= '#msi'; self::$is_tags_regex_init = TRUE; } }