[pmwiki-users] Numbered Sections cookbook recipe
Petko Yotov
5ko at 5ko.fr
Wed Nov 13 06:56:16 PST 2019
Thanks for sharing this.
> $prefix=PSS($m[1]);
> $text=PSS($m[2]);
You need to remove the PSS() calls from the new version. PSS() strips
one level of backslashes. It was previously needed in markup
replacements because preg_replace() with /eval added one level of
backslashes. The new PHP 5.5-7.2 way doesn't add backslashes, and using
PSS() may remove legitimate backslashes from the wiki text.
> Maybe Petko could change this in the download-version?
If the maintainer is unreachable, as the recipe is licensed GPL, you can
publish the changes yourself, and even take over the maintenance of the
recipe.
BTW, if you also need a table of contents, the latest PmWiki version
includes a new table of contents feature that can also automatically
number sections, see $PmTOC['NumberedHeadings'] at this page:
https://www.pmwiki.org/wiki/PmWiki/TableOfContents
Core numbered headings currently depend on the table of contents, but
that should be refactored to become an independent function. Now, if the
sections are less than 3 (configurable), there is no TOC and the
headings are not numbered.
Petko
On 13/11/2019 15:23, Hans-Jürgen Godau wrote:
> I wanted to have numbered sections in my wiki-page, so I tried the
> numbered
> sections recipe and noticed, it still uses the deprecated "/e" Markup.
> so I
> changed the source with the following diff's:
> -------------------------
> --- Downloads/archive/pmwiki/numberedsections.php
> +++ numberedsections.php
> @@ -88,8 +88,8 @@
> ##
> SDV ($DDNumFmt, '1.1.1.1.1.1');
>
> -Markup('dd-num1','>include','/^(!{1,6})(?:\s*)(.*)$/e',
> "DDMkNumTitle(PSS('$1'),PSS('$2'))");
> -Markup('dd-num2','directives','/\\(:(no)?numbered-sections(?:\s+(.*?))?:\\)/e',
> "DDRunNum('$1',PSS('$2'))");
> +Markup('dd-num1','>include','/^(!{1,6})(?:\s*)(.*)$/',
> "DDMkNumTitle");
> +Markup('dd-num2','directives','/\\(:(no)?numbered-sections(?:\s+(.*?))?:\\)/',
> "DDRunNum");
>
> ##
> ## If numbered sections are enabled in the group or site header or
> footer,
> ensure they are not inherited
> @@ -101,8 +101,9 @@
> $SiteHeaderFmt = $SiteHeaderFmt.'(:nonumbered-sections:)';
> $SiteFooterFmt = '(:nonumbered-sections:)'.$SiteFooterFmt;
>
> -
> -function DDMkNumTitle ($prefix, $text) {
> +function DDMkNumTitle ($m) {
> + $prefix=PSS($m[1]);
> + $text=PSS($m[2]);
> global $DDNumFmt, $DDNumHdrEnable, $DDFmtSet, $DDDebug;
> static $FmtNb, $OrNb, $TcNb, $sp, $numoffset, $CurLvl;
>
> @@ -158,8 +159,10 @@
> return chr(ord($num)-1);
> }
>
> -function DDRunNum ($nonum, $argstr) {
> +function DDRunNum ($m) {
> global $DDNumHdrEnable, $DDFmtSet, $DDNumFmt, $DDDebug;
> + $nonum = $m[1];
> + $argstr = PSS($m[2]);
>
> $args = ParseArgs($argstr);
> -------------------------
> Maybe Petko could change this in the download-version?
More information about the pmwiki-users
mailing list