On Fri, Sep 07, 2007 at 03:58:10PM +0200, Fredrik wrote: > It might be simple but I can't see what I do wrong. Here is my really > advanced function so far... > > <?php if (!defined('PmWiki')) exit(); > > Markup('test', 'directives', "/^\(:test[ ]*(.*?):\)\s*$/e", > "test('$1')"); > > function test($opts) { > $args = ParseArgs($opts); > $out = "!! ". $args['first'] ." "; > $out .= $args['second']. "\n"; > $out .= "!! test\n"; > return $out; > } > > ?> > > Disabling the last line beginning with $out makes everything work fine. > But using both just shows this as a normal textline and not as > headers. Any idea?
If a directive is producing markup that has newlines in it, then it needs to call PRR() to get the markup engine to re-split the line. Otherwise PmWiki still treats the result as being on a single line. So, try adding a call to PRR() inside of the test function: function test($opts) { $args = ParseArgs($opts); $out = "!! ". $args['first'] ." "; $out .= $args['second']. "\n"; $out .= "!! test\n"; PRR(); return $out; } Pm _______________________________________________ pmwiki-users mailing list pmwiki-users@pmichaud.com http://www.pmichaud.com/mailman/listinfo/pmwiki-users