On 18/03/2022 10:50, Jan Peters wrote:
I want to write a macro that wraps around videoattach.php as a
shortcut for my pmwiki users:

Markup_e('leftvideo', 'directives',
"/\\(:leftvideo\\s+(.*?)\\s*:\\)/",
“leftvideo(\$m[1])”);

function leftvideo($video_code) {
        $output = "(:div class='igrid':) $video_code (:divend:)";
        return $output;
}

First, you should really use Markup() not Markup_e() otherwise your code will break with recent PHP versions:

  Markup_e('leftvideo', 'directives',
    "/\\(:leftvideo\\s+(.*?)\\s*:\\)/",
    "leftvideo");

function leftvideo($m) {
  $video_code = $m[1];
  // ...
}

Weirdly, the “(:divend:)” is treated as text while the rest is
processed correctly. Do you have any
ideas how to do this properly?

If your function returns wiki markup, it can call PRR() "PmWiki Redo Rules" either before returning the markup, or with the return value:

  return PRR($output);

See also:

  https://www.pmwiki.org/wiki/Cookbook/Functions#PRR

And the answer after "How can the text returned by my markup function be re-processed by the markup engine?" in the page:

  https://www.pmwiki.org/wiki/PmWiki/CustomMarkup#PRR

Petko

_______________________________________________
pmwiki-devel mailing list
pmwiki-devel@pmichaud.com
http://www.pmichaud.com/mailman/listinfo/pmwiki-devel

Reply via email to