[pmwiki-users] custom markup: passing arguments to function
Dominique Faure
dominique.faure at gmail.com
Mon Jun 16 09:09:24 CDT 2008
On Mon, Jun 16, 2008 at 16:04, Dominique Faure
<dominique.faure at gmail.com> wrote:
> On Mon, Jun 16, 2008 at 15:30, Anno <anno at shroomery.org> wrote:
>> Hans wrote:
>>> Monday, June 16, 2008, 12:53:57 PM, Anno wrote:
>>>
>>>> Markup('jslide', 'end_',
>>>> '/\\(:jslide\\s"(.*)"\\s"(.*)"\\s"(.*)":\\)/e',
>>>> "jslide('$1','$2','$3')");
>>>
>>> try this:
>>>
>>> Markup('jslide', 'end_',
>>> '/\\(:jslide\\s+(.*?)\\s+(.*?)\\s+(.*?)\\s*:\\)/e',
>>> "jslide(PSS('$1'),PSS('$2'),PSS('$3'))");
>>>
>>>
>>>
>>> ~Hans
>>
>> No, nothing. Does it work at your site?
>>
>> Anno
>>
>
> IMHO, this is due to the fact that the '.' regexp placehoder is also
> capturing '\s'.
> You sould perhaps use the ParseArgs function to handle your markup parameters:
>
> Markup('jslide', 'end_',
> '/\\(:jslide\\s+(.*?)\\s*:\\)/e',
> "jslide_markup(PSS('$1'))");
>
> function jslide_markup($args) {
>
[Oops, keyboard wipe-out]
function jslide_markup($args) {
$opt = ParseArgs($args);
return jslide($opt[''][1], $opt[''][2], $opt[''][3]);
}
See http://www.pmwiki.org/wiki/Cookbook/ParseArgs for further references.
Dominique
More information about the pmwiki-users
mailing list