Skip to content

6.3.0

Latest

Choose a tag to compare

@vendeeglobe vendeeglobe released this 18 Jul 13:57

WackoWiki v6.3.0 — Major Feature Release

This release represents a massive architectural overhaul, bringing modern JavaScript tooling, a completely rewritten editor experience, hardened security defaults, and a flexible new syntax highlighter.


Headline Features

WikiEdit: Complete Rewrite (ES2023 + ES Modules)

The editor has been modularized into ES6 modules with a dedicated state management layer and a AbortController for all fetch calls.

Feature Description
Autosave Never lose drafts again; automatic background persistence.
Full Undo/Redo Stack Deep history management across sessions.
Search & Replace Full regex-supported find/replace inside the editor.
Live Preview Real-time rendering as you type.
Syntax Highlighting Code blocks highlighted inside the editor.
Fullscreen / Zen Mode Distraction-free writing (widescreen centered).
Drag & Drop + Paste Images Upload assets directly into the edit buffer.
Markdown ↔ Wacko Converter Seamless format switching via toolbar.
Popup Forms Guided modals for complex Links and Tables.
Toolbar Customization Add/remove/reorder buttons via config.
Resizable Editor Drag handle to adjust height.

Dev Note: Complex legacy helpers (MarkUp, _LSum, _RSum, _TSum) have been refactored. Autocomplete selection bugs are fixed.


Security & Platform Hardening

  • Content Security Policy (CSP) Nonces: All inline scripts now use strict nonces.
  • Cookie Prefixes (RFC 6265bis): __Host- and __Secure- prefixes applied for session integrity.
  • Native Clipboard API: Removed Clipboard.js dependency; uses modern navigator.clipboard with robust fallback.
  • Fixed Invalid Selector Tokens: Patched potential broken "Copy to Clipboard" handlers.

Core Architecture & Routing

Change Impact
Virtual _ Handler Prefix Handlers moved to page/_edit, page/_show, etc.
Fixes namespace collisions where user pages named Something/edit clashed with core handlers.
Composer vendor Folder All external PHP libraries moved out of lib/ into vendor/ (managed via Composer).
Config Array Upgrade Configuration updates now respect $wacko_config_defaults live, ignoring potentially stale cache.
TOC Generation Fix $this->toc logic repaired for newly created pages.

UI & Theming

  • Dark Mode: First-class support with OS detection (prefers-color-scheme) and manual toggle.
  • Double-Click Edit Comments: Rapid inline editing for comment sections.

Syntax & Markup Extensions

Phiki Highlighter (v2.2.0)

Replaces the legacy Pear highlighter. Fast, modern, supports 350+ languages via TextMate grammars.

Migration Required: Obsolete highlighters removed (css, ini, html, java, pascal, sql).
Action: Run the admin_replace action to auto-migrate:

%%(css)   →  %%(hl css)
%%(sql)   →  %%(hl sql)
... etc

Table Markup Improvements

New attribute system for rows, cells, and tables.

New Syntax:

!| col | col |!            # Header row with attributes
#|(attr=value)             # Row attributes

Supported Attributes:

Attribute Values Scope
span number Cell/Colspan
side top | bottom Header/Foot position
class alternate, sticky, default[left|center|right...], colN[left|right...], col-N[left|right...] Styling hooks

CSS Selectors Added:

  • .alternate — Zebra striping
  • .sticky — Fixed header on scroll
  • .default[left|center|right|top|middle|bottom] — Global cell alignment
  • .colN[...] — Column N alignment (1–25)
  • .col-N[...] — Column N from right alignment (1–9)

Helper Functions

  • New table_attr() parser for the extended markup.
  • Wrapper page now accepts col option.

Internationalization (i18n)

New complete translations added:

  • 🇭🇷 Croatian (hr)
  • 🇹🇭 Thai (th)
  • 🇹🇷 Turkish (tr)
  • 🇻🇳 Vietnamese (vi)

Dependency Updates

Library Version Status
Phiki 2.2.0 New (Replaces Pear)
Legacy Highlighters Removed

Upgrade Guide

  1. Run Composer: composer install --no-dev (populates vendor/).
  2. Run Migrations: Execute the installer script.
  3. Migrate Highlighters: Run the admin_replace action to convert %%(lang)%%(hl lang).
  4. Check Routes: If you have custom handlers or pages named edit, show, properties, etc., verify they resolve correctly under the new page/_* namespace.
  5. Clear Cache: Delete cache/config/ and cache/template/ (or run admincache action).
  6. Test CSP: Verify your web server passes the Content-Security-Policy header with nonces.

Credits

Huge thanks to contributors for the Phiki integration, the translation teams for HR/TH/TR/VI, and everyone testing the WikiEdit rewrite.


Full Changelog: 6.2.1...6.3.0
Documentation: wackowiki.org