News for ikiwiki 2.16: Many of the pages in ikiwiki's basewiki have been moved and renamed in this release, to avoid the basewiki including pages with names like "blog". Redirection pages have been left behind for these moved pages temporarily, and will be removed later. The meta plugin no longer supports setting internal or external links with "meta link". Instead, use "meta openid" for openid links, and use tags for in-wiki invisible links between pages. If you use the calendar plugin, ikiwiki is now smarter and your nightly cron job to update the wiki doesn't need to rebuild everything. Just pass --refresh to ikiwiki in the cron job and it will update only pages that contain out of date calendars. ikiwiki 2.16 released with [[toggle text="these changes"]] [[toggleable text=""" * Major basewiki reorganisation. Most pages moved into ikiwiki/ subdirectory to avoid polluting the main namespace, and some were further renamed. * meta: Add redir support, based on a patch by Thomas Schwinge. * Redirs added for moved basewiki pages. These will be removed in a future release. * Remove .otl file from sandbox to avoid build ugliness. Closes: #[454181](http://bugs.debian.org/454181) * Finally implemented a simple per-page data storage mechanism for plugins, via the %pagestate hash. * Use pagestate in meta to detect potential redir loops. * Added a version plugin that saves state about what's using it, to force pages to rebuild when ikiwiki's version changes. * The calendar plugin stores state about when it needs to be updated, and forces rebuilds of the pages that contain calendars. So running ikiwiki --refresh at midnight is now enough, no need for a full wiki rebuild each midnight. * calendar: Work around block html parsing bug in markdown 1.0.1 by enclosing the calendar in an extra div. * Fix file pruning code to work if ikiwiki is run with "." as the srcdir. * Add an edittemplate plugin, allowing registering template pages, that provide default content for new pages created using the web frontend. * Change formbuilder hook to not be responsible for displaying a form, so that more than one plugin can use this hook. I believe this is a safe change, since only passwordauth uses this hook. (If some other plugin already used it, it would have broken passwordauth!) * Ensure that web edited pages always end in a newline. * Avoid unnecessary stat calls to get mtime when rendering pages, use cached value. * Preserve input file modification times in output files. * Allow dashes in preprocessor directive commands, and shortcuts. * Htmlize parameters passed to the template preprocessor directive before inserting them into the html template. This ensures that markdown acts on them, even if the value is expanded inside a block-level html element in the html template. Closes: #[454058](http://bugs.debian.org/454058) * Use a div in the note template rather than a span. * shortcut: Expand %S to the raw input text, not url-encoded. * Don't increment feed numbers when an inline has no feeds. (Nis Martensen) * Allow editing a page and deleting all content, while still disallowing creating a new page that's entirely empty. * meta: Drop support for "meta link", since supporting this for internal links required meta to be run during scan, which complicated its data storage, since it had to clear data stored during the scan pass to avoid duplicating it during the normal preprocessing pass. * If you used "meta link", you should switch to either "meta openid" (for openid delegations), or tags (for internal, invisible links). I assume that nobody really used "meta link" for external, non-openid links, since the htmlscrubber ate those. (Tell me differently and I'll consider bringing back that support.) * meta: Improved data storage. * meta: Drop the hackish filter hook that was used to clear stored data before preprocessing, this hack was ugly, and broken (cf: liw's disappearing openids). * aggregate: Convert filter hook to a needsbuild hook. * map: Don't inline images. * brokenlinks: Don't list the same link multiple times. (%links might contain multiple copies of the same link) * git: Correct display of multiline commit messages in recentchanges. * Re-organise dependencies and recommends now that recommends are installed by default. * Don't refuse to render files with ".." in their name. (Anchor the regexp.) * Work around perl taint checking bug #411786, where perl sometimes randomly sets the taint flag on untainted variables, by disabling taint checking in the deb. This sucks."""]]