[pmwiki-users] On the order of Markup
Peter Kay
pkay42 at gmail.com
Wed May 3 15:09:11 CDT 2017
I was thinking about that, trying to find ways to rewrite Markup_e so
that it just works. But there are other approaches:
Markup('include', '>if',
'/\\(:include\\s+(\\S.*?):\\)/i',
function ($m) use ($pagename) { return PRR(IncludeText($pagename, $m[1]));});
A lot of Markup_e involves needing $pagename; I would propose having
MarkupToHTML call the function with both the match and $pagename:
Markup('include', '>if',
'/\\(:include\\s+(\\S.*?):\\)/i',
function ($m, $pagename) { return PRR(IncludeText($pagename, $m[1]));});
the "use ()" syntax will probably allow us to rewrite Markup_e in a
way that - while perhaps slower - is seamless. Consider the following
code:
<?php
function get_f($m) {
return function () use ($m) { echo $m;};
}
$x=get_f('abc');
$x();
$y=get_f('def');
$x();
$y();
We should be able to do something similar with an eval() thrown in there.
--Peter
On Wed, May 3, 2017 at 1:48 PM, Petko Yotov <5ko at 5ko.fr> wrote:
> On 2017-05-03 19:19, Peter Kay wrote:
>>
>> One other problem I recently stumbled on is that the MarkupRules only
>> allow one instance of a given pattern.
>>
>> So for example if you want to process '/XXX/' twice (for whatever
>> reason), you can't - only one copy goes in.
>
>
>
> If you want to process '/XXX/' twice (for whatever reason), there are dozens
> of ways to write the same pattern:
>
> '/[X]XX/'
> '/X[X]X/'
> '/XX[X]/'
> '/(X)XX/'
> '/(XX)X/'
> '/(?:XX)X/'
> '/XXX{1}/'
> '/X{1}XX{1}/'
>
> etc., etc., etc.
>
>> I'd rather build the rules using the markup name, so as long
>> as the names are different, they'll both run.
>
>
> The next version of PHP, 7.2, will deprecate the function create_function().
> We will have to rewrite the core markup engine, markup rules and the
> processing of various $*Patterns (future PmWiki versions may have to drop
> support for PHP 5.2 and older).
>
> So indeed, it may be possible to find a way to build the rules using the
> markup name, and even pass the name to the processing function so a single
> function can do multiple rules.
>
> As always, if implemented, such a feature will have to *not* break the
> existing markup rules that work today for PHP 5.3-7.1.
>
>
> Petko
>
> _______________________________________________
> pmwiki-users mailing list
> pmwiki-users at pmichaud.com
> http://www.pmichaud.com/mailman/listinfo/pmwiki-users
More information about the pmwiki-users
mailing list