diff options
| author | Michael Save <savetheinternet@tinyboard.org> | 2012-03-21 11:57:30 +1100 |
|---|---|---|
| committer | Michael Save <savetheinternet@tinyboard.org> | 2012-03-21 11:57:30 +1100 |
| commit | 4afd2c7cb2fe7b40f5dd662bd79125bfcfcefbe8 (patch) | |
| tree | 3a5b879c0fbfed6029cf1f85ccbee2a4c8651839 | |
| parent | 7e1ff9580def37d98a6358cfc0af56c3184a4ff0 (diff) | |
Customizable markup syntax.
| -rw-r--r-- | inc/config.php | 27 | ||||
| -rw-r--r-- | inc/functions.php | 11 |
2 files changed, 29 insertions, 9 deletions
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; @@ -358,10 +357,30 @@ /* * ==================== + * Markup settings + * ==================== + */ + + // "Wiki" markup syntax ($config['wiki_markup'] in pervious versions): + $config['markup'][] = Array("/'''(.+?)'''/m", "<strong>\$1</strong>"); + $config['markup'][] = Array("/''(.+?)''/m", "<em>\$1</em>"); + $config['markup'][] = Array("/\*\*(.+?)\*\*/m", "<span class=\"spoiler\">\$1</span>"); + $config['markup'][] = Array("/(^|\n)==(.+?)==\n?/m", "<span class=\"heading\">\$2</span>"); + + // Highlight PHP code wrapped in <code> tags (PHP 5.3.0+) + $config['markup'][] = Array( + '/^<code>(.+)<\/code>/s', + function($matches) { + return '<code>' . highlight_string(html_entity_decode($matches[1]), true) . '</code>'; + } + ); + +/* + * ==================== * 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", "<span class=\"heading\">$2</span>", $body); - $body = preg_replace("/'''(.+?)'''/m", "<strong>$1</strong>", $body); - $body = preg_replace("/''(.+?)''/m", "<em>$1</em>", $body); - $body = preg_replace("/\*\*(.+?)\*\*/m", "<span class=\"spoiler\">$1</span>", $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']) { |
