usage: place ~~R_STUDIO~~ at the top of the RStudio page before saving the copy/paste, then save */ class action_plugin_rstudio extends DokuWiki_Action_Plugin { function register(Doku_Event_Handler $controller) { $controller->register_hook( 'IO_WIKIPAGE_WRITE', 'BEFORE', $this, 'insert_geshi'); } function insert_geshi(&$event,$params) { if(strpos($event->data[0][1],'~~R_STUDIO~~') === false) return; $event->data[0][1] = preg_replace_callback( '|((?!).*?)|sm', // '|(.*?)|sm', function ($matches) { return $matches[1] . ''; }, $event->data[0][1] ); $event->data[0][1] = str_replace('', '', $event->data[0][1]); $event->data[0][1] = preg_replace_callback( '|(={2,})\s*(\[\[.*?\]\])\s*(\1)|sm', function ($matches) { return "**" .$matches[2] . "**\n\n"; }, $event->data[0][1] ); $event->data[0][1] = preg_replace('#^\n(\s{2,}\*)\s*#sm', "$1", $event->data[0][1]); } }