History log of /dokuwiki/inc/ (Results 26 – 50 of 6646)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
1f44347616-Apr-2026 Andreas Gohr <andi@splitbrain.org>

split Formatting into individual classes per formatting type

Introduce AbstractFormatting as a base class and seven concrete
classes (Strong, Emphasis, Underline, Monospace, Subscript,
Superscript,

split Formatting into individual classes per formatting type

Introduce AbstractFormatting as a base class and seven concrete
classes (Strong, Emphasis, Underline, Monospace, Subscript,
Superscript, Deleted) that each define their own patterns and
sort order. Delete the old Formatting class and update tests
to use the new classes directly. ModeRegistry now treats
formatting modes as regular built-in modes.

show more ...

c8dd1b9d16-Apr-2026 Andreas Gohr <andi@splitbrain.org>

introduce ModeRegistry to encapsulate parser mode categories

Replace the global $PARSER_MODES definition in inc/parser/parser.php
with a ModeRegistry singleton that initializes and manages the mode

introduce ModeRegistry to encapsulate parser mode categories

Replace the global $PARSER_MODES definition in inc/parser/parser.php
with a ModeRegistry singleton that initializes and manages the mode
categories. The global array is still populated for backward
compatibility with plugins that access it directly.

Mode constructors now use ModeRegistry::getModesForCategories()
instead of accessing the global directly. p_get_parsermodes() and
p_sort_modes() are moved to inc/deprecated.php as thin wrappers.

show more ...

8c5fa12616-Apr-2026 Andreas Gohr <gohr@cosmocode.de>

deduplicate finalise() across rewriter subclasses

Move the identical finalise() logic into AbstractRewriter with an
abstract getClosingCall() method. Lists, Quote, Table, Preformatted
and Nest each

deduplicate finalise() across rewriter subclasses

Move the identical finalise() logic into AbstractRewriter with an
abstract getClosingCall() method. Lists, Quote, Table, Preformatted
and Nest each provide their closing call name instead of duplicating
the full method.

show more ...

57d6140316-Apr-2026 Andreas Gohr <gohr@cosmocode.de>

remove unused Doku_Handler::fetch() method

Confirmed zero callers in core and plugin ecosystem.

8ab4ec3016-Apr-2026 Andreas Gohr <gohr@cosmocode.de>

remove dead ParallelRegex::apply() method

Remove apply() which was never called from production code. Rewrite
the inherited SimpleTest tests to use split() instead, and add a
test for pre/post-match

remove dead ParallelRegex::apply() method

Remove apply() which was never called from production code. Rewrite
the inherited SimpleTest tests to use split() instead, and add a
test for pre/post-match splitting.

show more ...

f8026da116-Apr-2026 Andreas Gohr <gohr@cosmocode.de>

replace magic strings with class constants in Lexer

Introduce MODE_EXIT and MODE_SPECIAL_PREFIX constants to replace
the undocumented "__exit" and "_" string conventions used for
mode transitions.

b929bbff15-Apr-2026 Vyacheslav <bryanskmap@ya.ru>

Translation update (ru)

fe6048cc14-Apr-2026 Alexander Lehmann <alexlehm@gmail.com>

remove realip option, add default in conf/dokuwiki.php

bfc167db11-Apr-2026 Andreas Gohr <andi@splitbrain.org>

Limit namespace depth in io_createNamespace() #4613

Throw a RuntimeException when the given ID contains 128 or more
colon-separated segments, preventing creation of excessively deep
directory hierar

Limit namespace depth in io_createNamespace() #4613

Throw a RuntimeException when the given ID contains 128 or more
colon-separated segments, preventing creation of excessively deep
directory hierarchies.

show more ...

743a690811-Apr-2026 splitbrain <86426+splitbrain@users.noreply.github.com>

�� Rector and PHPCS fixes

867da04d11-Apr-2026 Andreas Gohr <andi@splitbrain.org>

Less ubiquitous feed caching. addresses #4574

Instead of creating caches for each and every requested feed, only the
recent feed is still cached.

The number of items is clamped to conf[recent]*5.

Less ubiquitous feed caching. addresses #4574

Instead of creating caches for each and every requested feed, only the
recent feed is still cached.

The number of items is clamped to conf[recent]*5.

Plugins can influence the caching behavior via the existing
FEED_OPTS_POSTPROCESS event by setting cache_allow to true and
optionally adding their own cache key in cache_key

Additionally the per-namespace feed autodiscovery link from <head>
pointing to list-mode feeds has been removed.

show more ...

b7c3b74a02-Oct-2025 Anna Dabrowska <dabrowska@cosmocode.de>

Add copy-to-clipboard functionality to code blocks


/dokuwiki/composer.lock
lang/de-informal/lang.php
lang/de/lang.php
lang/en/lang.php
lang/pl/lang.php
/dokuwiki/lib/scripts/page.js
/dokuwiki/lib/tpl/dokuwiki/css/content.less
/dokuwiki/vendor/composer/installed.json
/dokuwiki/vendor/composer/installed.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Common/AsymmetricKey.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Common/Formats/Keys/PKCS8.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/DES.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/DH.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/DSA.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/DSA/PrivateKey.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/DSA/PublicKey.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/EC.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/Curve25519.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/Curve448.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Keys/Common.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Keys/MontgomeryPrivate.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Keys/OpenSSH.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/EC/Formats/Keys/PKCS8.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/EC/PrivateKey.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/EC/PublicKey.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA/PrivateKey.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA/PublicKey.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php
/dokuwiki/vendor/phpseclib/phpseclib/phpseclib/openssl.cnf
06053dca10-Apr-2026 Andreas Gohr <andi@splitbrain.org>

SearchIndex: remove write side effect from retrieveRow()

retrieveRow() padded the index file when the requested RID was beyond
the current length. This was an optimization for subsequent changeRow()

SearchIndex: remove write side effect from retrieveRow()

retrieveRow() padded the index file when the requested RID was beyond
the current length. This was an optimization for subsequent changeRow()
calls, but changeRow() already handles padding on its own. The side
effect was also inconsistent with retrieveRows() which is a pure read.

Added a cross-index integration test verifying RID consistency across
entity, token, frequency and reverse indexes when multiple entities
share tokens.

show more ...

1e5f7f1f10-Apr-2026 Andreas Gohr <andi@splitbrain.org>

Manifest: add UTF-8 to entity decoding

As recommended in the PHP manual

6beb5edc10-Apr-2026 Andreas Gohr <andi@splitbrain.org>

add gzfile_get_contents() to handle multi-stream gz and corruption

The initial gzdecode() fix only decoded the first gzip stream,
breaking append mode where gzopen() creates concatenated streams.

R

add gzfile_get_contents() to handle multi-stream gz and corruption

The initial gzdecode() fix only decoded the first gzip stream,
breaking append mode where gzopen() creates concatenated streams.

Replace with a chunk-based reader using inflate_* functions that
loops through all streams and still correctly detects corrupt data.

show more ...

3b335c6410-Apr-2026 Andreas Gohr <andi@splitbrain.org>

use gzdecode instead of gzfile to work around PHP 8.5.3+ regression

gzfile() no longer detects corrupt gzip data due to a bug in PHP's
zlib stream wrapper (php/php-src#21376). Using file_get_content

use gzdecode instead of gzfile to work around PHP 8.5.3+ regression

gzfile() no longer detects corrupt gzip data due to a bug in PHP's
zlib stream wrapper (php/php-src#21376). Using file_get_contents()
with gzdecode() avoids the stream wrapper and correctly returns false
for corrupt files.

show more ...

c553d38d08-Apr-2026 Andreas Gohr <andi@splitbrain.org>

SearchIndex: fix TypeError when $QUERY global is null

QueryParser::convert() requires a string argument, but the global
$QUERY can be null. Coalesce to empty string to match prior behavior.

9313ce6d08-Apr-2026 Andreas Gohr <andi@splitbrain.org>

SearchIndex: fix TypeError when $highlight is passed uninitialized

FulltextSearch::pageSearch() type-hints $highlight as array, but
callers passed uninitialized variables (null). Initialize to [] at

SearchIndex: fix TypeError when $highlight is passed uninitialized

FulltextSearch::pageSearch() type-hints $highlight as array, but
callers passed uninitialized variables (null). Initialize to [] at
all call sites and add a guard in the deprecated ft_pageSearch() wrapper.

show more ...

5d034a7508-Apr-2026 Andreas Gohr <andi@splitbrain.org>

SearchIndex: increase index version

9369b4a908-Apr-2026 Andreas Gohr <andi@splitbrain.org>

SearchIndex: rector, phpcs, type hint fixes

db8be58608-Apr-2026 Andreas Gohr <andi@splitbrain.org>

SearchIndex: review fixes — auto-save MemoryIndex, cast TupleOps counts, style cleanups

- MemoryIndex: auto-save dirty data on unlock/destruction to prevent
silent index corruption when indexes ar

SearchIndex: review fixes — auto-save MemoryIndex, cast TupleOps counts, style cleanups

- MemoryIndex: auto-save dirty data on unlock/destruction to prevent
silent index corruption when indexes are used in tandem
- TupleOps::parseTuples(): cast exploded count strings to int
- FileIndex::retrieveRow(): document the write-on-read padding behavior
- Fix whitespace issues in ApiCore, common.php, Sitemap/Mapper
- Update concept.txt to reflect MemoryIndex auto-save behavior

show more ...

2a22d4b908-Apr-2026 Andreas Gohr <andi@splitbrain.org>

SearchIndex: document Tokenizer::isValidSearchTerm() in concept.txt

1148921d08-Apr-2026 Andreas Gohr <andi@splitbrain.org>

SearchIndex: unify CollectionSearch API and optimize search pipeline

- Remove separate lookup() API from CollectionSearch. All searches now
use addTerm()/execute() with a single unified pipeline.

SearchIndex: unify CollectionSearch API and optimize search pipeline

- Remove separate lookup() API from CollectionSearch. All searches now
use addTerm()/execute() with a single unified pipeline.
- Add matches() predicate to Term using efficient string functions
(===, str_starts_with, str_ends_with, str_contains) instead of regex.
- Add caseInsensitive() support on CollectionSearch and Term for
metadata/title searches where indexed values preserve case.
- Remove callback support from MetadataSearch::lookupKey() — the only
real usage (case-insensitive substring) is replaced by
caseInsensitive() + wildcards.
- Remove min-length validation from Term. Add Tokenizer::isValidSearchTerm()
for callers that need it (FulltextSearch, Indexer::lookup).
- Optimize execute() from 4 group passes to 2: scan tokens + resolve
frequencies in one pass per group, batch entity name resolution, then
populate Terms.
- Store full match detail in Term: entity → token → frequency. New
accessors getMatches(), getEntityTokens(), getEntityFrequencies()
derive different views from this single data structure.
- Term no longer used as scratch pad by CollectionSearch. Index-internal
data (token IDs, entity IDs) stays local to execute(). Terms receive
only final resolved results.
- Use title from search results in MetadataSearch::pageLookupCallBack()
instead of re-fetching via p_get_first_heading().
- Update concept.txt documentation.

show more ...

b9d7a61507-Apr-2026 Andreas Gohr <andi@splitbrain.org>

SearchIndex: updated documentation

to be moved into the wiki later

0b52f0de07-Apr-2026 Andreas Gohr <andi@splitbrain.org>

SearchIndex: use FileIndex for title token index

PageTitleCollection accesses titles by RID (one line at a time), so
loading the entire index into memory is wasteful. Override getTokenIndex()
to ret

SearchIndex: use FileIndex for title token index

PageTitleCollection accesses titles by RID (one line at a time), so
loading the entire index into memory is wasteful. Override getTokenIndex()
to return a FileIndex, matching the line-by-line access pattern used on
master.

show more ...

12345678910>>...266