check: installer / upgrade sets empty bookmark for 'Changes'
make the installer password protection mandatory DONE
change the message sets and documentation accordingly (SQLite requires no password)
another password, not pretty, a necessity to prevent unauthorized setups with SQLite
sql_mode 'session strict' lets installer stall with MariaDB (debug!), going back and changing it to 'server (default)' and it works
language selection is behind authorization, it always defaults to English if you do a new installation, except you change the 'language' => 'de' in the config_defaults.php file
set language via user_agent_language()?
commented out auto-creation of empty help, terms and privacy page – needs FEEDBACK
make creation optional, the default theme shows the links when set in the config
either the user defines them individually in the admin panel or sets an additional option in the installer to create them
user pages: only the user should be able to write and create sub-pages by default in his namespace
validate username
use dbal also for installer: $db->sql_query($sql)
raise DB version requirement (there is a technical minimum requirement as well as a end of support) DONE
enforces version for technical requirement
show warning for versions with end of support
show error message if variable $fatal_error is true
set default bookmarks for new languages with multi-language mode after installation / upgrade
if the user adds new langages later by hand or activates it via Admin Panel, the default menu for newly activated languages are then missing
currently the admin can fix this only by manually adding the missing bookmarks with the {{menu system=1}} action or re-runs the upgrade process by setting back the WackoWiki version in the config file
it is possible to move comments to a forum main page and then they become inaccessible for the moderation handler, the only way is then to change to comment_on_id in the database to another accessible forum page – FIXME
the has_access() validation for the lock/unlock feature as well as for the indicator needs a special option for the Admin and the page owner, both have always access, and the handler always assumes only system read & comment defaults, so it won't show the correct indicator and lock/unlock mode
a forum or a topic however allows individual read and comment rights
export.xml: add option for cluster and if the handler should show the xml or offer it for direct download, some browsers modify the XML in presentation mode or show it as feed – however the user needs the original source text including the line feeds!
send notice on comment edit and make change visible in actions like it is done for pages, to not miss possible important content changes
diff: add page title to diff
print: pass arguments? e.g. ?phrase=canonical&lang=&p=2
add feature to move attachments between pages and global, useful for page and content refactoring
rename: cluster
update bookmarks in user session
update link table
6. Action
search: improve search, highlighting, ideographic languages
add regex search option and feature (similar to admin_replace)
add more filters
registration: add option to enforce certain user name patterns
blog: improve options, sorting and filtering, add content templates
paragraphs: add option to set permalinks to paragraphs (to page version) for export (PDF) or other external reference
forums: check not only for deleted topic but also for deleted comment in last comment query
gallery: add media query for small displays
add filter like in files action
usersettings: Sessions – [Log Out Everywhere Else] You are only logged in at this location.
search: add help for search syntax, e.g. “exact phrase”, operators (+, -, *), ...
edit and comment: allow inline usage to be included in text without line break, template however is parsed in a way that it always produce line breaks and a new paragraph (evaluate)
7. Formatter
Link regexp failed with many punctuation marks at the end
update default settings of options, some options are mostly more annoying than useful, e.g. (c)
turnoff option should also affect all page related comments
interference with other syntax, e.g. striketrough
Unicode context
create test cases
multi-line strikethrough (marker similar) may break correct tag nesting and parsing, how this should work anyways across paragraphs, lists, etc. by only wrapping it via <del> tag
WikiEdit as well the Formatter must recognize a new paragraph, list as terminators to avoid invalid tag nesting!
there is a working patch, however the current workaround for the random <dt> to <dd> tag transition, prevents wiki text formatting
add option to wrap caption around code blocks (DONE) and option to enable / disable <figcaption> like caption=0|1
HTML
<figure><figcaption>Language of code</figcaption><pre><code><!-- your code here --></code></pre></figure>
indenting text in quote breaks page
HTML
<pid="p291-1"class="auto"><br><blockquote>Where authority fails in its duties and indeed betrays the purpose for which it has been established, disobedience is not only lawful but obligatory: non-violent disobedience, at least for now, but determined and courageous.</p><divclass="indent">.</blockquote><pid="p291-2"class="auto"></div>
auto-paragraph did not terminates correctly in indent div having a code wrapper
Pre-MT produces a lot of none-sense which needs to be fixed again by hand, mixed results – depending on target language and context, English as source language with little context is sometimes hard to translate
A small change in an English source file like setting a comma or removing a <tag>, suddenly it discards all existing translations and replaces them with a new auto-translated version – very frustrating
ToDo & Workflow guide
completeness -> proofreading
Crowdin export scheme should mirror original file structure for simple drop-in replacement, but does not -> WHY ???
The large size of grammar files in Phiki is primarily due to the exponential state growth that occurs when compiling complex JSON schemas into finite-state automata, particularly when using nullable types and deep nesting.
Nullable Types Cause Branching: Each type definition that allows null (e.g., ["number", “null”]) compiles into an anyOf branch within the grammar. With multiple nullable fields per object, this creates dozens of branching points that multiply the number of states exponentially.
Lack of Efficient Deduplication: Even when schemas use $ref and $defs to define shared structures, the grammar compiler often expands everything inline rather than reusing grammar rules. This means repeated sub-schemas are duplicated in the compiled output, significantly increasing file size.
Deep Nesting Compounds Complexity: Paths with multiple levels of nested objects (e.g., schema → array → object → fields → constraints) compound the complexity, as each level adds its own set of properties and constraints to the state machine.
These factors mean that moderately complex schemas (e.g., 5 levels deep with 50 properties) can trigger errors like “compiled grammar is too large” because the resulting finite-state automaton becomes too large for efficient performance.