History log of /dokuwiki/inc/parser/xhtml.php (Results 1 – 25 of 376)
Revision Date Author Comments
# 2848662b 25-Jun-2026 splitbrain <86426+splitbrain@users.noreply.github.com>

�� Rector and PHPCS fixes


# 8ced0cff 25-Jun-2026 Andreas Gohr <andi@splitbrain.org>

Merge pull request #4636 from dokuwiki/gfm

Add native Markdown parsing


# b73ece99 10-Jun-2026 Andreas Gohr <andi@splitbrain.org>

Merge branch 'master' into gfm

* master:
�� Rector and PHPCS fixes
�� Update deleted files
Make common_pageinfo tests independent of execution order
Translation update (sk)
chore: adjust o

Merge branch 'master' into gfm

* master:
�� Rector and PHPCS fixes
�� Update deleted files
Make common_pageinfo tests independent of execution order
Translation update (sk)
chore: adjust overlong line
fix(auth): scope media ACL checks to the namespace
refactor(search): extract LegacyIndexer wrapper for BC contract
Translation update (ro)
fix(authad): avoid warning when initAdLdap is called before opts is populated
fix(infoutils): fix synology os-release file parsing
remove valid_input_set(), inline the only remaining callers
Update copyright year in README
fix(mail): keep '&' intact in mailto links with multiple query params

# Conflicts:
# inc/Parsing/ParserMode/Internallink.php

show more ...


# 795d8419 06-Jun-2026 Andreas Gohr <andi@splitbrain.org>

Read the code block download offset as an integer

The named code/file block download link reads the codeblockOffset
request parameter and adds it to the current block index to build the
export link.

Read the code block download offset as an integer

The named code/file block download link reads the codeblockOffset
request parameter and adds it to the current block index to build the
export link. The value was read as a string and then used in arithmetic.
On PHP 8 a non-numeric value turns that addition into a string + int
operation, which throws a TypeError and produces a fatal error when
rendering any page that contains a named code or file block.

The offset is now read with $INPUT->int(), which yields 0 for absent,
empty or non-numeric input and the integer value otherwise, so the
arithmetic is always int + int. The has() guard and zero initialiser
are no longer needed.

show more ...


# 73dc0a89 06-May-2026 Andreas Gohr <andi@splitbrain.org>

fix(mail): keep '&' intact in mailto links with multiple query params

Move the email-handling helpers (obfuscate, mail_isvalid,
mail_quotedprintable_encode, mail_setup) out of the procedural
inc/mai

fix(mail): keep '&' intact in mailto links with multiple query params

Move the email-handling helpers (obfuscate, mail_isvalid,
mail_quotedprintable_encode, mail_setup) out of the procedural
inc/mail.php into a namespaced dokuwiki\MailUtils class plus a new
Mailer::configInit(), and add a separate MailUtils::obfuscateUrl() for
the mailto-href context.

The xhtml renderer and PluginTrait now build the link label and the
href separately: the address half is run through the mailguard
obfuscation, the query string is preserved verbatim with only HTML
escaping applied. This fixes #1690 — in 'visible' mode the previous
code rawurlencoded the entire address+query, turning '?' into '%3F' and
breaking multi-parameter mailto links; in all modes the query string is
no longer mangled by the [at]/[dot] substitution.

Core call sites (Mailer, auth, LegacyApiCore, common, the xhtml
renderer, the parser, the bundled config/styling/usermanager plugins)
are migrated to MailUtils directly. The old top-level functions and
PREG_PATTERN_VALID_EMAIL constant remain as deprecated shims with
rector mappings.

Tests for obfuscate / mail_isvalid / mail_quotedprintable_encode are
consolidated into a single _test/tests/MailUtilsTest.php and extended
with regression coverage for the multi-parameter, double-escape and
URL-shape cases.

Closes #1690
Replaces #1964

show more ...


# f7c6e4ac 30-Apr-2026 Andreas Gohr <gohr@cosmocode.de>

add listo_open_start sibling method for GFM start numbers

Reverts the listo_open signature widening from 5a2118acc and instead
adds a sibling method `listo_open_start($start = 1)` on the renderer
hi

add listo_open_start sibling method for GFM start numbers

Reverts the listo_open signature widening from 5a2118acc and instead
adds a sibling method `listo_open_start($start = 1)` on the renderer
hierarchy. The base default delegates to listo_open() so renderers
that don't override it still produce a valid (but unnumbered) list;
xhtml's override emits <ol start="N">.

The handler now emits 'listo_open_start' only for ordered lists with
a non-default first number; plain ordered lists keep emitting the
unchanged 'listo_open' instruction. This preserves the historical
listo_open / listu_open signatures (zero-arg base, $classes-only
xhtml form from 2016) so the 17 plugin renderers found via
codesearch keep working without modification, while still
implementing GFM's "5. foo" -> <ol start="5"> rule.

show more ...


# 5a2118ac 28-Apr-2026 Andreas Gohr <andi@splitbrain.org>

add `$start` parameter to listo_open

Doku_Renderer::listo_open() is now listo_open($classes = null, $start = 1),
with the same signature on the metadata and XHTML renderers. The XHTML
renderer emits

add `$start` parameter to listo_open

Doku_Renderer::listo_open() is now listo_open($classes = null, $start = 1),
with the same signature on the metadata and XHTML renderers. The XHTML
renderer emits start="N" only when $start is not 1, so existing
ordered-list output is unchanged.

Used by the upcoming GfmListblock to implement GFM's ordered-list start
rule (`5. foo` → `<ol start="5">`). Plugin renderers that override
listo_open keep working, since PHP lets overrides omit added-with-default
parameters.

show more ...


# 8719732d 22-Apr-2026 Andreas Gohr <gohr@cosmocode.de>

add GfmHeader for ATX headings (`# text` through `###### text`)

Opener must sit at column 0. GFM tolerates 0-3 spaces before the `#`
but that collides with DokuWiki's 2-space-indent preformatted blo

add GfmHeader for ATX headings (`# text` through `###### text`)

Opener must sit at column 0. GFM tolerates 0-3 spaces before the `#`
but that collides with DokuWiki's 2-space-indent preformatted block,
so the tolerance is dropped rather than plumbed across modes.

Widen the XHTML renderer's section-node tracker from 5 slots to 6 so
h6 doesn't hit "Undefined array key 5". Extend GfmSpecTest's HTML
normalizer to strip DokuWiki's section-div wrappers, section-edit
comments, and header id/class attributes so heading spec examples
can validate semantic correctness.

show more ...


# 093fe67e 07-Mar-2026 Andreas Gohr <andi@splitbrain.org>

updated rector and applied it


# 0e11cf25 27-Nov-2024 brzsmg <brzsmg@gmail.com>

Typo in the word associative


# db926724 26-Jan-2024 Andreas Gohr <andi@splitbrain.org>

Replace strftime with Intl ICU. Fixes #3573

This uses a class that maps strftime placeholders to the appropriate ICU
patterns. I am using the fallback-intl branch here which provides an
English-only

Replace strftime with Intl ICU. Fixes #3573

This uses a class that maps strftime placeholders to the appropriate ICU
patterns. I am using the fallback-intl branch here which provides an
English-only fallback when the intl extension is not available.

Core has only two places where strftime is used: dformat() and the
SimplePie feed parser. Both are adjusted with this patch. For the latter
a custom Item class had to be registered. For better separation all our
FeedParser classes have been moved to the Feed namespace where our
FeedCreator classes already reside.

Note that this will currently be a degration for users without intl as
it will fall back to date and not to the still available strftime.

show more ...


# e44b94a4 08-Sep-2024 Andreas Gohr <andi@splitbrain.org>

Revert "use a dispatcher to access static image files"

This reverts commit 944e9ba7254387adb60f253b0d8796f2276096b1.

It was accidentally pused to master before review. A PR with a revert
for the re

Revert "use a dispatcher to access static image files"

This reverts commit 944e9ba7254387adb60f253b0d8796f2276096b1.

It was accidentally pused to master before review. A PR with a revert
for the revert will be pushed shortly.

show more ...


# 944e9ba7 08-Sep-2024 Andreas Gohr <andi@splitbrain.org>

use a dispatcher to access static image files

This makes it possible to replace default images in an update safe way.
It also addresses the issue raised in dokuwiki/docker#16

A .htaccess rewrite ca

use a dispatcher to access static image files

This makes it possible to replace default images in an update safe way.
It also addresses the issue raised in dokuwiki/docker#16

A .htaccess rewrite catches any direct accesses that might come in from
plugins.

show more ...


# 6c16a3a9 14-Sep-2023 fiwswe <fiwswe@fwml.de>

Use str_starts_with/str_ends_with


# 749bc7f1 02-Sep-2023 Andreas Gohr <andi@splitbrain.org>

minor cleanup in the renderers


# 95078f23 02-Sep-2023 Andreas Gohr <andi@splitbrain.org>

apply code sniffer rules to inc/parser as well


# a19c9aa0 30-Aug-2023 Gerrit Uitslag <klapinklapin@gmail.com>

recover comments in list


# faf3f01b 29-Aug-2023 Andreas Gohr <andi@splitbrain.org>

Apply rector fixes to inc/parser


# 53df38b0 15-May-2023 Andreas Gohr <andi@splitbrain.org>

fix XSS in RSS syntax

The title was not correctly escaped when written to the doc in xhtml
renderer.

SimplePie does no content escaping on its own (a comment in the code
seems to suggest that that

fix XSS in RSS syntax

The title was not correctly escaped when written to the doc in xhtml
renderer.

SimplePie does no content escaping on its own (a comment in the code
seems to suggest that that was assumed). Instead the content is passed
on as-is from the feed.

This patch also applies some more escaping on the description output
(though it should have been relatively safe thanks to the use of
striptags).

This was discovered by @ry0tak and reported in
https://huntr.dev/bounties/c6119106-1a5c-464c-94dd-ee7c5d0bece0/

show more ...


# d5fce494 11-Mar-2023 Andreas Gohr <andi@splitbrain.org>

Merge branch 'pr/3908'

* pr/3908:
JPEGMeta: clean up exception handling
Fix: Do not garbage collect the JpegMeta object after reading a tag
Replace check for null with cast to string
Fix: Re

Merge branch 'pr/3908'

* pr/3908:
JPEGMeta: clean up exception handling
Fix: Do not garbage collect the JpegMeta object after reading a tag
Replace check for null with cast to string
Fix: Rework error handling in JpegMeta marker reading
Replace is_null() check with count()
Fix: Padding in _getFixedString, log the path of damaged images
Fix: PHP8-related JpegMeta.php fixes
Backwards Compatibility: Don't error if finishSectionEdit is called without first startSectionEdit
Fix: 'E_WARNING: Uninitialized string offset -1' on some templates
Fix: 'E_WARNING: Undefined array key "_data"'

show more ...


# 78b498a7 10-Mar-2023 Andreas Gohr <andi@splitbrain.org>

clean up parserutils (reformatting mostly)


# ad43fdbf 08-Mar-2023 asivery <asivery@protonmail.com>

Replace is_null() check with count()


# 0d9f02ec 25-Feb-2023 asivery <asivery@protonmail.com>

Backwards Compatibility: Don't error if finishSectionEdit is called without first startSectionEdit


# ac2b3d9e 19-Oct-2022 Andreas Gohr <andi@splitbrain.org>

Merge pull request #3798 from splitbrain/nofootshoot

Remove the htmlok and phpok embedding options


# ec34bb30 19-Oct-2022 Andreas Gohr <andi@splitbrain.org>

Update core code to make use of sexplode()

This makes use of our own explode mechanism everywhere were we expect a
fixed number of results.


12345678910>>...16