diff --git a/inc/config.php b/inc/config.php index afc4ceaa..a1ced0fc 100644 --- a/inc/config.php +++ b/inc/config.php @@ -42,7 +42,8 @@ 'file_icons' => Array(), 'footer' => Array(), 'stylesheets' => Array(), - 'additional_javascript' => Array() + 'additional_javascript' => Array(), + 'markup' => Array() ); /* End ignore */ @@ -319,8 +320,6 @@ // Automatically convert things like "..." to Unicode characters ("…") $config['auto_unicode'] = true; - // Use some Wiki-like syntax (''em'', '''strong''', ==Heading==, etc) - $config['wiki_markup'] = true; // Whether to turn URLs into functional links $config['markup_urls'] = true; @@ -356,12 +355,32 @@ // This will make your imageboard more vulnerable to flood attacks. $config['quick_reply'] = false; +/* + * ==================== + * Markup settings + * ==================== + */ + + // "Wiki" markup syntax ($config['wiki_markup'] in pervious versions): + $config['markup'][] = Array("/'''(.+?)'''/m", "\$1"); + $config['markup'][] = Array("/''(.+?)''/m", "\$1"); + $config['markup'][] = Array("/\*\*(.+?)\*\*/m", "\$1"); + $config['markup'][] = Array("/(^|\n)==(.+?)==\n?/m", "\$2"); + + // Highlight PHP code wrapped in tags (PHP 5.3.0+) + $config['markup'][] = Array( + '/^<code>(.+)<\/code>/s', + function($matches) { + return '' . highlight_string(html_entity_decode($matches[1]), true) . ''; + } + ); + /* * ==================== * Image settings * ==================== */ - + // For resizing, max thumbnail size $config['thumb_width'] = 255; $config['thumb_height'] = 255; diff --git a/inc/functions.php b/inc/functions.php index b999df8c..51af3332 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -1440,11 +1440,12 @@ $body = utf8tohtml($body); - if($config['wiki_markup']) { - $body = preg_replace("/(^|\n)==(.+?)==\n?/m", "$2", $body); - $body = preg_replace("/'''(.+?)'''/m", "$1", $body); - $body = preg_replace("/''(.+?)''/m", "$1", $body); - $body = preg_replace("/\*\*(.+?)\*\*/m", "$1", $body); + foreach($config['markup'] as $markup) { + if(is_string($markup[1])) { + $body = preg_replace($markup[0], $markup[1], $body); + } elseif(is_callable($markup[1])) { + $body = preg_replace_callback($markup[0], $markup[1], $body); + } } if($config['markup_urls']) {