Usage: ./build-release.sh [OPTIONS]
OPTIONS:
--version=X.Y.Z Version number for the release
(required unless building MASTER snapshot)
--source=REF Git reference to build from
Can be: HEAD, tag name, commit hash
Default: HEAD (current commit)
--branch=NAME Build from specific branch
(alternative to --source)
--minimal Build minimal package (src/ + vendor/)
This is the default
--full Build full package including docs
(src/ + vendor/ + README, LICENSE, etc.)
--no-log Disable logging to build.log
-y, --yes Auto-accept all prompts (for CI/CD)
--help, -h Show this help message
EXAMPLES:
./build-release.sh
./build-release.sh --version=6.2.2
./build-release.sh --version=MASTER
./build-release.sh --source=v6.2.2
./build-release.sh --branch=6.3 --version=6.3.0
./build-release.sh --version=6.2.2 --full
./build-release.sh --version=6.2.2 --yes
NOTES:
- Script must be executed from repository root
- composer.json must be present in root directory
- Git remote should be configured (GitHub or Codeberg)
- Script will check if local repo is up-to-date with remote
Classes
added
CookiePrefix
Methods
This is only a random selection.
Folders
new folder
vendor/ – is managed by Composer and is only part of the distribution package
Database
added field
editor_height INT(10) to user_setting table
autosave_draft TINYINT(1) to user_setting table
color_scheme TINYINT(1) to user_setting table
syntax_highlighting TINYINT(1) to user_setting table
live_preview TINYINT(1) to user_setting table
wikiedit_toolbar VARCHAR(2048) to user_setting table
the upgrade configuration array now takes updates to $wacko_config_defaults into account and no longer relies on the configuration cache, which may be out of date
Formatters
fix missing page handler in wiki links ((Page/_source …))
support text fragments in wiki links (WikiPage#:~:text=from,to)
fix interwiki links with percent encoding and text fragments
fix URL handling for trailing punctuation and invalid hosts
fix unescaped link text in footnote and anchor links
fix table cells broken by auto footnotes
fix double-encoding of quotes in link() text and title
fix setting $this->toc and broken toc generation for newly created pages
Phiki Highlighter
Replaces the legacy Pear highlighter. Fast, modern, supports 350+ languages via TextMate grammars.
upgrade configuration array now takes updates to $wacko_config_defaults into account and no longer relies on the configuration cache, which may be out of date
Translations
add translation for Croatian, Thai, Turkish, Vietnamese
Note that the changelog is usually incomplete, for a complete list of changes that went into R6.3, you can browse the Commit log, the Bug Tracker Log and ToDo list.
make sess->date_pattern dependent on $this->user_lang
rewrote SQL queries to work with MySQL as well as SQLite
register custom regexp function to use REGEXP with SQLite
fix missing route case for CSS files in RECOVERY_MODE
Classes
added
DbSqlite
Methods
This is only a random selection.
Add functions to abstract SQL syntax and function differences between MySQL and SQLite
utc_dt()
date_sub(int $value, string $interval)
binary()
collate()
limit()
These functions reside in the Dbal class mainly because the DbPDO class serves SQLite as well MySQL.
Folders
new folder
file/data - .htaccess protected folder for SQLite database file (see DATA_DIR in constants.php).
It is strongly recommended to place the database file outside the webroot for security, but if you must place it within the webroot, use a filename like file/data/.ht.sqlite to help prevent direct access via the web server.
Note that the changelog is usually incomplete, for a complete list of changes that went into R6.2, you can browse the Commit log, the Bug Tracker Log and ToDo list.
added option to set the SameSite attribute, default 'Lax' , see constants.php
While 'Strict' provides stronger protection against CSRF attacks, it actually prevents the user's session from being recognized when clicking a link from a notification e-mail, causing WackoWiki to start an anonymous session even if the user is already logged in.
added thumbnail support
use of new str_contains(), str_starts_with(), str_ends_with() functions and Match expression
use of PHP null coalescing assignment operator ??=
added option to compress sitemap.xml
writes sitemap.xml now by default into the xml/ folder
Description:
Creates a link to the edit handler, if the user has the right to edit the given page.
Usage:
{{edit}}
Options:
[page="PageName"]
[text="your text"]
hashid: adds version parameter, 0 links to page, 1 links to version of the page (default)
toc: adds start parameter for toc numbering
search:
adds language filter to search in multi-language mode
added button and icon for [[^ footnote]] and {{action}}
added WikiEdit icons for dark mode
Admin panel
pages: determines news_levels according to the given settings
upload:
lets you now set other groups than Admins to allow file upload
added option to transliterate all file names to lowercase (new default: off)
appearance: added option to set a theme color for the address bar
removed obsolete convert module
sets DEFAULT for all fields in backup module script
restore: skips is_executable() check for Windows
changed format for backup.log to JSON
You have to remove the backups you've created prior to 6.1.21 from the file/backup/ folder or replace the backup.log with a new JSON formatted version.
added syndication module
formatter: add option american_date to set the default date format for English to
[mdy] MM/dd/y (true)
[dmy] dd-MM-y (false)
users: allows Admins to change passwords for other users
basic: add option comments_offset to display either the first or last comments page by default
Translations
complete Chinese Simplified translation
added Arabic, Finnish, Czech, Norwegian, Romanian, Ukrainian, Swedish and Portuguese-Brasil translation
Requires proofreading by native speakers via Crowdin (Pre-MT)
added initial language files for Indonesian, Persian and Tamil (work in progress, help welcome)
uses now English as fallback for missing message sets
now you can add message sets for your own scripts under lang/custom.<lang>.php
the user must create the files himself, e.g. custom.fi.php using $custom_translation = [];
This way, the user's own message sets are not accidentally overwritten by updates.
Note that the changelog is usually incomplete, for a complete list of changes that went into R6.1, you can browse the Commit log, the Bug Tracker Log and ToDo list.
allows now full stop and hyphen-minus as part of the page tag, but only between alphanumeric characters as single character to not mess with the wiki syntax as well as the wiki link path, e.g. page/sub-page/6.1/details
fixed falsely setting the description text in page table to 1
added session heartbeat to edit and comment handler for logged in users
implemented full support for relative path, e.g. <a href="/wiki/WikiPage">
the link() function tracks now also external links
added support for optional language tag sub-code, e.g. en-NZ or en-GB
uses <button> element for submit, cancel and reset buttons
added option to disable hit counter
added option for Permissions-Policy HTTP response header
Summary
The HTML Details Element (<details>) creates a disclosure widget in which information is visible only when the widget is toggled into an "open" state. A summary or label can be provided using the <summary> element.
A disclosure widget is typically presented onscreen using a small triangle which rotates (or twists) to indicate open/closed status, with a label next to the triangle. If the first child of the <details> element is a <summary>, the contents of the <summary> element are used as the label for the disclosure widget.
1 This option does not make sense, because the width of the block is always equal to the width of the page. 2 Only to the left. 3 If you don't put the line feeds yourself, the block width is fixed by the engine at approximately 90% of the page width.
Unicode has the explicit aim of transcending the limitations of traditional character encodings, such as those defined by the ISO 8859 standard, which find wide usage in various countries of the world but remain largely incompatible with each other. Many traditional character encodings share a common problem in that they allow bilingual computer processing (usually using Latin characters and the local script), but not multilingual computer processing (computer processing of arbitrary scripts mixed with each other).
Unicode, in intent, encodes the underlying characters—graphemes and grapheme-like units—rather than the variant glyphs (renderings) for such characters. In the case of Chinese characters, this sometimes leads to controversies over distinguishing the underlying character from its variant glyphs (see Han unification).
In text processing, Unicode takes the role of providing a unique code point—a number, not a glyph—for each character. In other words, Unicode represents a character in an abstract way and leaves the visual rendering (size, shape, font, or style) to other software, such as a web browser or word processor. This simple aim becomes complicated, however, because of concessions made by Unicode's designers in the hope of encouraging a more rapid adoption of Unicode.
The first 256 code points were made identical to the content of ISO-8859-1 so as to make it trivial to convert existing western text. Many essentially identical characters were encoded multiple times at different code points to preserve distinctions used by legacy encodings and therefore, allow conversion from those encodings to Unicode (and back) without losing any information. For example, the "fullwidth forms" section of code points encompasses a full Latin alphabet that is separate from the main Latin alphabet section because in Chinese, Japanese, and Korean (CJK) fonts, these Latin characters are rendered at the same width as CJK characters, rather than at half the width. For other examples, see duplicate characters in Unicode.
.
Note that the changelog is usually incomplete, for a complete list of changes that went into R6.0, you can browse the Commit log, the Bug Tracker Log and ToDo list.
// whole idea is to take URI path, _GET/_PUT/_SERVER data and other
// meta-data, then process rules in this file sequentially, which
// results in dispatched handler to process query,
// and all arguments extracted from URI for further usage by those handlers
// (e.g. you can extract parts of URI to _GET vars, etc.)
// 'language' guide:
// every line of code consists of regex which matched against URI, and
// actions, all separated by whitespace. there are no possibility to
// include whitespace in regex or action.
// regex will be matched against URI, on success all actions executed, on failure - we go for next regex.
// lines without regex is continuations for same regex, and will be executed sequentially if regex matched.
// every single action can succeed or fail. if any one fails - all
// variable assignments made by THIS line (even before failed action) is
// discarded, and we go to next line.
// two control action exist (all action line must succeed for them to act!)
// _next! -- jump to next regex (skip next action lines with empty regex)
// _ok! -- search terminated with success
// if no _ok! executed ever - search fails and 404 emitted
// that's all on control flow.
// main regex:
// http://php.net/manual/en/reference.pcre.pattern.syntax.php -- usual php preg_* regex syntax apply, including
// delimiters and options after trailing delimiter.
// convenience macros (defined by 'define' line, or supplied by wackowiki) expanded before matching.
// used as {macro} - to be referenced as $1-vars then, or {var=macro} - for inline assignment.
// macros cannot be used in ~-regexes
// VARIABLES:
// $0..$9 - fields matched by main regex. $0 is complete match, $1 and later - corresponding (...) parts
// $a..$j - as $0..$9 but set by sub-matched (by ~ operator) patterns
// Gname - _GET[name]
// Pname - _PUT[name]
// Sname - _SERVER[name]
// others - local variables
// predefined vars:
// _tls - 1 or 0, tls session
// _uri - parsed URI (it is matched against main regex, but can be changed by assignment)
// _method - _SERVER[REQUEST_METHOD]
// _rewrite - 1 or 0, mod_rewrite active
// usage of undefined variables considered a failure (if not masked by @ in VALUE expansion, see later)
// ACTIONS:
// similar format used for all actions (not all fields apply for every action, and just ignored):
// VARIABLE[:FUNCTION]operatorVALUE
// value is a string, with expanded variables. expansions:
// $0 .. $9 / $a .. $j -- see above
// ${name}
// @$... format can be used to mask undefined variable error
// $$ - replaced by $
// $@ - replaced by @
// assignments:
// FUNCTIONs can be used: tolower | toupper | int
// var=$1
// var:tolower=$1
// var?=$2 -- assign if not set
// var! == var=1
// dbg=$1,$2,$3 -- Ut::dbg printer ;)
// pattern matching:
// var~/regex/i -- sets $a..$j on success
// var!~/regex/i
// var~hashid:[1-9] -- hashid expansion, into $a...
// var!~hashid:[1-9]
// comparisons:
// FUNCTIONS can be used: int -- both args converted to int before comparison
// var==12 var!=12 var:int<12 var>12 var<=12 var>=12
// others:
// var? -- isset
// var- -- unset
//define {method} name|name|name // predefined by wackowiki
define {hashid} [0-9a-zA-Z]+
define {i} [0-9]+
define {h} [0-9a-fA-F]+
define {a} [0-9a-zA-Z]+
define {w} [\w]+
define {} [^/]*
define {*} .*?
define {**} .*
//`^{hashid}$` $1~hashid:2 Gone=$a Gtwo=$b all=$0+${Gone} _ok! _tls!=0 _method~/g(e)t/i BIN:tolower=$b Pln=${_line}
// desc=$0 term:tolower=MyMethod term!= Gmethod=show _ok!
//`^{hashid}/{Op=*}/{Mode=**}$`
// Op!~/^diff$/i &next!
// $1~hashid:2 Gone=$a Gtwo=$b Gmethod:tolower=${Op} _ok! // test
`^`
SPATH_INFO!= _uri=${SPATH_INFO} _next! // if PATH_INFO available - use it
_rewrite==0 _uri=@${Gpage} Gpage- // when rewrite mode is off - replace _uri by page _GET variable
`^/*{_uri=*}/*$` // trim _uri of beginning & trailing slashes
`^index\.(php|html)$` _uri=
'^' route=static age=30 static=${_uri}
`^robots\.txt$` _ok!
`^sitemap\.xml$` _ok! age=0
`^(theme/{}/css|theme/_common|admin/style)/{}$` _ok! // css
`^image/(wikiedit/)?{}$` _ok! // icons
`^theme/default/icon/{}$` _ok! // icons
`^js/(lang/)?{}$` _ok! // js
`^file/global/{}$` _ok! // global uploads
`^setup/(image|css)/{}$` _ok! unlock=1 // setup inlines
`^xml/{}$` _ok! age=0 // feeds
'^' _ok! _install!=0 route=install unlock=1
session=1 age- static-
`^\.freecap$` _ok! route=freecap
'^' engine=1 route=wacko
`^admin\.php$` _ok! route=admin
`^{}(/.*)?$`
$1~hashid:2 page=$ax$b method=Hashid _ok!
// $1~hashid:2 Gpage_id=$a Gversion_id=$b page= method=show redirect=301 _ok!
//`^{i}rev{i}$`
// page=$1x$2 method=Hashid redirect=301 _ok!
//`^{page=}$`
// method=show _ok!
`^(|{page=**}/){method}(/.*?)?$`i
method:tolower=$3 _ok!
// catch-all
`{page=**}`
method=show _ok!
Note that the changelog is usually incomplete, for a complete list of changes that went into R5.5, you can browse the Commit log, the Bug Tracker Log and ToDo list.
creates a new page not just with the default language
Formatters
monospace now uses <code> instead of <tt>
Handlers
display link to show files / comments only if there is one or/and user has the right to add a new one
Translations
updated German and French
Note that the changelog is usually incomplete, for a complete list of changes that went into R5.1, you can browse the Commit log, the Bug Tracker Log and ToDo list.
yet only MySQL works, most of the core classes and actions are not abstracted from MySQL specific code
requires vendor specific setup scripts for database
For now we only support PDO MySQL. Other PDO dsns will be added in the near future with SQL Lite and PG SQL at the top of the list.
ALTERed column
body to MEDIUMTEXT in table pages and revisions
body_r to MEDIUMTEXT in table pages and revisions
Installer
New installer has been implemented.
Configuration
changed and new db settings
'database_driver" => 'mysql_legacy',
'database_host" => 'localhost',
'database_port" => ' ',
'database_database' => 'wacko',
'database_user' => 'wacko',
'database_password' => 'mypassword',
new available settings
'session_prefix' => 'wacko43_',
'xml_sitemap' => 0,
'spam_filter' => 1,
added hide_files and hide_comments to config file
the hide_files and hide_comments config options now take 0 to not hide them, 1 to hide them from all users and 2 to hide them from non-registered users
added captacha settings
'captcha_new_comment' => 1,
'captcha_new_page' => 1,
'captcha_edit_page' => 1,
'captcha_registration' => 1,
Features
RSS feed for "recentcomments"
added XML Sitemap Support
Ability to turn XML Sitemap on and off via the config file
AutoComplete feature — in place completion of wiki-links while pressing Ctrl+Space. MSIE users got pretty inplace menu, Mozilla users got toolbar indicator.
redirect non logged in users to the language that suits their system as default (not yet implemented for cache)
added optional spam bot protection: Captcha to new page, edit page, page comments and user registration.
Core
Lots of bugfixes & enhancements, including:
new pdf and rdf link and icon
added support for bz2 and 7z to file links
implemented cache in NpjTranslit
set correct content type for graphics
set correct content type for languages
hide referrers page from non registered users
hide settings page from users that don't have write permission
now rename also associated files on filesystem when a page is renamed
now remove also associated files on filesystem when a page is removed
changed wakka.php?wakka= to index.php?page=
changed default ACL configuration values from * to $ for write and comments
Now we insert the logo image data into the uploads table during installation. The actual image file is stored in the /files directory. The homepage logo image link has been changed to point to it i.e. file:wacko_logo.png
Fixed: multiple installations on same domain sharing session data
Fixed: Wanted Pages list has wrong count for referrers
Fixed: WantedPages don't obey ACLs
Actions
add mygroups and updated usergroups
add nofiles and allowfiles
add edit and comments
add nomark attribute for backlinks
mostpopular now works also for clusters and on subpages, add <fieldset><legend> and [nomark="1"] option
added "bydate" option for mychanges
pageindex by letter including result limiting, added two arguments to the PageIndex action. The first is "limit" which sets the maximum number of pages to show at any one time on each index page. The second argument is "letter" which lets you pick which pages to display based on their name starting with a specific letter.
update flash action to use SWFObject 2
fixed include: Multiple insert of a page is now possible
added user level based outputting to the usergroups action i.e. see nothing if you're not logged in, see just the groups you belong to if you're a normal user and see all groups if you're an admin.
Translations
localized more remaining and new strings (Russian & English)
added Danish and Greek
updated German, French, Russian, Greek, Spanish, all other languages still have English placeholders
Themes
hide watch/unwatch icon and "powered by ..." from guests
@import "../../common/X11ColorNames.css";
localized search box in Tabs theme
hide referrer tab from guests in tabs theme
header.php
added JS include line for autocomplete.js
added JS include line for swfobject.js
added JS include line for captcha.js
include protoedit, wikiedit2, & autocomplete.js only on method==edit
../css/wakka.css
added style for autocomplete button
added new classes
.debug
.pageedit form textarea {width: 100%;height: 400px; }
img {border:none;vertical-align: middle;}
added "new" default theme, the old default theme is now called "wakka"
Note that the changelog is usually incomplete, for a complete list of changes that went into R4.3, you can browse the Commit log and the Bug Tracker Log.
WackoFormatter: correct workaround of missed <table> closing tags
introduced wrappers (try %%(wacko wrapper=box))
introduced alignment in wrappers (like %%(wacko wrapper=box wrapper_align=right))
And stuff.
4.0
(31.07.2004)
Fixed XSS in textsearch
SafeHTML integrated – now you can enable <# #> syntax safely. No XSS =)
Text Formatting changes:
Closing delimiter of header formatting (==header==) could contain any number of = (more than 2) — there is no more need to enter exact amount of them as in opening delimiter. Fuf.
“Definition” syntax: (?RTFM Read The Fucking Manual?)
“Footnotes” syntax: text[[*]] more text[[*1]]
[[#*]] Footnote star [[#1]] Footnote digit
More usable upload
Global acl for rename: rename_globalacl
New config parameters outlook_workaround, disable_autosubscribe
Bugs fixed
beta1 (27.02.2004)
Flexible Upload feature
Four new language packs (it, fr, pl, nl).
Javascript-editor WikiEdit, that allows using shortcuts for quick insertion of wiki-formatting
Multilingual support in single installation (pages can be written in different languages and thereby using different encodings — within single installation)
Formatting enhancements:
Wiki-formatter has now two passes. This feature keeps it from making mistakes.
Paragrafica formatter – now HTML contains <p> in addition to <br> (e.g., it allows paragraphs auto-numbering)
Formatters (highlighters) for SQL and Pascal or Delphi source code.
Formatter for emails
“Blockquote” syntax: <[ text ]>
New (additional) link syntax: Actions.NewManual
Support for \\LAN\Path and file:// protocol
Email validation & confirming
Password changing, “Forgot password?” function
Essential amount of refactoring “action” features (take a look on /Doc/English/Actions new syntax & capabilities). As a result, most of actions now works in a separate cluster of wikispace (for example, you could look on RecentChanges of a separate cluster)
Individual “settings” for every page, where you can change language, META keywords and description
New actions
flash, for inserting flash movies
hits, mostpopular – calculate and display the number of requests to pages
User settings enhanced, in particular user can choose “theme” (design of wacko pages) from the list of preinstalled themes.
IIS compatibility, preliminary.
Millions of bugs fixed
3.5
(28.06.2003)
FIRST THINGS FIRST: some XSS-holes fixed, delete-by-GET-request fixed, Information Disclosure Vulnerability bug fixed.
Comment deletion implemented.
Page renaming implemented.
Comments are mailed to users “watching” the commented page now.
Simple diff supplied in email notifications on page changes (for users “watching” the page)
new formatters “icq”, “icq_m” & “icq_l” (ICQ, Miranda (nConvers plug-in) & ICQLite in that order) — to paste icq-logs.
Should be used as:
%%(icq_m) ... %%
( ... — paste your log here)
Users of “Admins” group (in wakka.config.php) can delete (but not view/edit) any page.
Usergroups & interwiki-links became case-insensitive.
New URL syntax — underscores & first letters capital. Comments on this are appreciated.
Various sort modes in mypages action
“Referrers” handler shows BackLinks also.
New macros to inlining your WackoName and/or current date (use 4 colons or 31.07.2004 14:50 and KusoMendokusee /31.07.2004 14:50/)
Diff enhanced one more time.
Significant speed-up due caching of wacko-formatted text wherever it is possible.
Tilded links gone deprecated & unsupported. Tilde (~) itself is used only to prevent linking to a WikiLink (like this) now.
In-page anchoring now supported due ((#Anchor_name)) syntax & {{anchor..}} action
New syntax for semantic markup ??some text?? : some text
Some actions look improved.
LinksTree action is back & enhanced.
meet new wakka.config.php options: url_underscrores, show_spaces and show_datetime.
Time of last revision of the page is inserted in HTTP-header (search engines will feel better from now)
Many-many errors fixed & unnecessary changes made. Backlinks which were broken in CVS for some time ago fixed too.
Links are accompanied with icons: email, foreign site link, lock (forbidden page) & key (page with limited access).
Separate handler for MSWord export (separate CSS & <div> instead of <br> in line-breaks).
“Themes” support — different interface designs w/o changing php-code. There is already two themes included: “default” & “tabs”.
WackoClusters — now you can create sub-pages & group pages in so-called clusters (hierarchically classification & some adjacent features)
Numerous caching issues that lead to significant performance improvement
Some new actions, such as TableOfContents & unified Search
Severe XSS problem fixed (there was a possibility to insert any HTML into double-double-quotes. Now this possibility still exists in Raw HTML?, but it is limited and can be completely turned off)
Some extensions to formatter, such as
%%(noautolinks)...%%
& ability to create WikiLinks with spaces inside using ((Page name== Text to place on page)).
100% correct work with mod_rewrite turned off.
Numerous small improvements & bug fixes.
2.0
(25.03.2003)
image insertion by posting link into the page
enhanced “code” & “php” formatters
foreign links & links to forbidden pages have different CSS-styles
WakkaAliases – admin can arrange users in groups using wakka.config.php “Aliases” option
spaces in WikiNames
separate “print version” handler
UserBookmarks – personal menu that user can add page links to
page watching
i18n, English & Russian translations
complete support of Russian language (yes, that was a very urgent need for us)
forget about example.com/wiki/%D1%F2%E0%ED%E4%E0%F0%F2%FB%C2%E5%F0%F1%F2%EA%E8 — all links are converted into [a-z] range
Wakka formatter greatly enhanced:
added table parsing
headers syntax now compatible with OpenWiki
bulleted/numbered list syntax now compatible with OpenWiki (old syntax still supported)
Please note: The changes below are made in the dev version of Wakka and won't be available to the public until we prepare a new version (read: no public CVS, sorry), which of course will be posted here, too. So, for example, everything posted above "Released Wakka 0.1.1." won't be available until there's a bold line of text saying "Released Wakka 0.1.2." or something. Hendrik Mans
2003-02-16:
Wakka 0.1.2 is out, containing the changes mentioned below. Sorry about the delay; a busy work schedule as well as a big server move prevented an earlier release. Thanks to everyone for sending in feedback and hacks; I'd love to include some of them in the 0.2 release.
There will probably be a 0.1.3 first, though, containing more fixes (if anyone finds further problems, that is), and some minor new features (including image tags).
double slashes in URLs won't mess up the formatting anymore. CarlosZottman
Revisions additionally available in RSS format now. CarlosZottman
Wakka's XHTML 1.0 Transitional compliant now ("basic compliance" only, i.e. until the formatter is completely rewritten to intercept badly nested tags, the user still has to take care of good nesting, but as long as s/he does, it's compliant;)), and the default CSS file is valid CSS (external file now, the CSS is not hardcoded into actions/header.php anymore). CarlosZottman
added static XML file output for RecentChanges page, updated at every page save/edit. CarlosZottman
Actions can now have attributes. Action calls are much more fool-proof now and don't care about trailing/leading (white-)spaces anymore; the calls may look like this: {{exampleaction}}, {{ exampleaction }} or {{exampleaction attribute1="test" attribute2="test0r", attribute3="test0sterone"}} (attributes/parameters may be separated by comma or spaces or anything that's neither number nor letter; it's still two brackets as it is now, but I couldn't write them in the examples or Wakka would try to execute these example action calls). CarlosZottman
2002-12-26:
Added global comments on/off switch in the config ('hide_comments'). CarlosZottman
2002-12-25:
ACL change: § was added as placeholder for "registered users only". CarlosZottman
Everybody give Carlo Zottmann a hug; he's now a co-developer for this little Wiki engine. :)
2002-11-26:
Rumors of my death are greatly exaggerated! I've been super-ultra-busy the last couple of months and unfortunately didn't have any time to invest into Wakka. This isn't going to change significantly any time soon, I'm afraid, but I'll try to fix a couple of things here and there and get a 0.1.2 out within the next couple of weeks.
2002-09-14:
The Wakka formatter now auto-links URLs.
New formatting tag: ''...'' for "notes" text. Looks like this!
2002-09-13:
Fixed a minor-ish problem with the link tracking code.
Fixed the silly comment sorting problem on RecentlyCommented.
Fixed a text problem on the referrer pages.
Fixed a couple of access control related problems. :|
Added new {{backlinks}} action. It inserts a list of all pages that link to the current page. Very useful for structuring your Wakka using categories.
2002-09-10:
Released Wakka 0.1.1.
Wakka now purges old page revisions. This is controlled by the new configuration parameter pages_purge_time (which should be set to the number of days old page revisions should be kept -- the default value is 90 days).
referrers_purge_time now uses days, not hours! If you've had it set at 24, change it to just 1. :)
Wakka doesn't use <?= ... ?> any longer. It was causing problems on systems with PHP's short_open_tag disabled. Urk!
The web installer/updater now writes the correct configuration file if you've told Wakka to use a non-standard one. More on that, err, later. Yeah.
Page previews now have a little "Preview" header at the top. Just in case.
You can now lock your Wakka site by creating a file called locked in your Wakka's directory. This file should contain a cleartext password on its first line. Once the file is there, everybody who accesses your site will be asked for a password. You will have to enter the specified password and "admin" as the user name to get in. Note that this isn't supposed to be a quick & dirty password protection hack, but rather a simple way to temporarily protect your Wakka site while, say, upgrading to a new version.
I'm actually thinking about making the installer/updater create this file automatically, so upgrading to a new version is safer. Let me know what you think.
2002-09-04:
Fixed the magic_quote_gpc workaround. Oops!
Released Wakka 0.1.
Wakka now comes with a .htaccess file that should make "nice URLs" work automagically. (It'll still work if the .htaccess file isn't being used.)
Hah. Hahaha. Hahahahhahaa.
Added a workaround for the magic quote stuff. Grrrrr.
You can now hide/display comments/comment forms. In UserSettings, you can control whether they should be displayed or hidden by default.
2002-09-03:
New configuration variable: navigation_links. A piece of text that gets inserted at the top of the page by the default Header action. This way you can easily change the links at the top without overriding the complete action. (Note: may add something similar for CSS styles in a future version.)
New action/handler overriding mechanism: You can now define paths (action_path and handler_path) that will be searched, so you can specify directories containing your own stuff without getting it overwritten when upgrading to a new Wakka version.
Added two new functions: Wakka::FormOpen() and Wakka::FormClose(). It is heavily recommended that you use these when putting forms into actions/methods.
Added a nice web-based installer/updater. When Wakka recognizes that it's been updated or newly installed, it'll automatically fire up the thing. It'll first ask you to set your configuration values, and then install all necessary tables. In future versions of Wakka, it'll also do all necessary changes.
Fix never-ending popup bug.
Fixed the stupid little bug in RecentlyCommented with some stupid little code. Yes, stupid. I hate it. It's evil.
2002-08-29:
Not saving empty comments any longer.
2002-08-28:
Oh man. I'm really, really tired. I've been tired all day. Still, I think this has been the most productive day for Wakka so far. Today I converted Wakka from a straight-forward Wiki engine into a real website toolkit. I'm happy. (But tired.) :)
I've kinda revamped the user login/signup page (on UserSettings on this site). You are now required to provide a password and an email address when signing up. Also, your user name has to be a WikiName. This rule may get relaxed at some point by making it a configuration option. Also, another upcoming configuration option will allow you to configure your Wakka site so users signing up will have to activate their accounts through an activation mail, for added security.
Pages now have owners. Only the page owner can edit a page's access control lists. In the ACL editing screen, he can also pass on ownership of the page to another user. Owners are stored per-revision, so it's possible to trace back who owned the page at what time. Pages created by non-registered users are owned by nobody. Pages owned by nobody can be "claimed" by registered users. In other words: if you want to have control over your created pages, make sure you sign up for an account and log in!
Added the ACL stuff. Good lord. It's in. It's easy to use. It rocks. See AccessControl for details.
Now there is no comment box on pages that don't exist yet.
Added some more comments stuff. There's now a {{RecentlyCommented}} action (see RecentlyCommented) that lists pages that have recently had comments attached to them. May be somewhat more useful than RecentComments.
You can now attach comments to pages. The functionality is pretty basic at the moment; I will probably change it so it only displays the comments from the last <n> days, or just the latest <n> comments. Probably the former, in order to "purge" stale discussion about possibly outdated page revisions. <n>, of course, will be a configurable value.
2002-08-27:
You can now view a page's referres from within the last 24 hours. Actually, this number is configurable through the configuration value referrers_purge_time.
Oops! I neglected AlwaysTwoCharacters with the header formatting codes. I've changed them so the smallest header now uses ==...== and the biggest ======...======. Yes, it's big!
Added a small TextSearch form in the footer action.
InterWiki linking implemented.
WantedPages can now display a list of pages linking to a wanted (non-existing) Wakka page.
Added a basic plugin structure. Pages are now being handled by "handlers", which are similar to classes with methods. In a future version, it will be possible to specify a handler when creating a new page. This will open up a lot of new possibilities for Wakka plugins that go a long way beyond simple Wiki pages.
The "header_action" and "footer_action" configuration values are now actually being used. Ahem.
Bracketed links are now slacker friendly, supporting lazy links like [[www.example.com]] or [[webmaster@example.com]].
Added some crazy database optimizations! Wakka is finally as fast as it is supposed to be.
2002-08-25:
Disabled auto-linking of URLs and email address, as this was causing some bad problems. :-(
Crazy! You can now embed source code
%%like this%%
. You can specify a language after the first
%%## enclosed into brackets. For example: ##%%(php)<?php actual PHP code ?>%%
. Right now, PHP is the only syntax highlighter available, but there will be more available soon, I'm sure.
URLs and email addresses are now HTMLified automagically.
In unescaped text, HTML tags now can't be used any longer. < and > will automagically be converted to their corresponding HTML entities. If you really need to use raw HTML, you'll have to escape it (by putting it inside pairs of double quotes).
When looking an old revision of a page, there now is a button that allows you to send that revision to the editor. This allows you to easily restore old revisions of pages.
Rewrote the Wakka formatter. Now it's useful! ;)
Added a very sexy Preview button to the editor.
In your config file, you can now specify meta_keywords and meta_description. No need to explain what those are for, right?
New formatting tag: ... for monospace text.
Uh-oh, forced links now use [[...]]! Time to update some pages. :)
Actions are now {{action}}.
Bold, italic and underlined now use **, // and __.
You can now use
to force line breaks. This can be useful in list entries.
Wakka now checks for the existence of $_REQUEST[] to make sure it is running on a somewhat recent version of PHP. Without this check, it would go nuts on pre-4.1.0 versions. (Thanks GabeKruger.)
2002-08-23:
Added formatting code for headers.
Added formatting code for escaped text; text enclosed in double quotes will not be touched by the formatter at all. Unfortunately doesn't work over multiple lines yet.
Clicking the page title will launch a full text search.
Added a full text search at TextSearch.
When you log in through UserSettings, you will be remembered through cookies. (ie, you don't have to log in again the next time to visit.)
You can now disable the double-click editing if you don't like it. Also, it will now only work when you're viewing the page itself, not the editor or revision list.
API stuff: added Wakka::Redirect() for HTTP redirects, and Wakka::SetMessage() to store a message that the next page can display (vanilla Wakka does this in a JavaScript alert box).
Added a new action: UserSettings -- implements basic user management. Basically, Wakka now allows you to create a user account (linked to a WikiUserName) that should, but doesn't have to be password protected. If you don't set a password, anyone can use your WikiUserName. Your name will be used on RecentChanges and maybe some other upcoming pages/actions.
Slightly revised the RecentChanges action. Inspired by WikkiTikkiTavi.
2002-08-22:
On the revision list, you can now select two revisions that can be compared for differences.
You can now access old versions of all pages.
Added some more list types and normal indented text.