ikiwiki/ news

This is where announcements of new releases, features, and other news are posted. IkiWikiUsers are recommended to subscribe to this page's RSS feed.

version 3.20180311

ikiwiki 3.20180311 released with these changes

- [ Amitai Schleier ]
  - Avoid unexpected full paths from find(1)
- [ thm.id.fedoraproject.org ]
  - rst test: Probe for docutils Python 3 module, not Python 2
- [ Simon McVittie ]
  - mdwn: Automatically detect which Discount flags to use, fixing regressions in 3.20180228 when using Discount < 2.2
  - Add a test asserting that no plugin is an empty file, to confirm that the build fixes in 3.20180228 were successful

version 3.20190207

ikiwiki 3.20190207 released with these changes

- [ Amitai Schleier ]
  - graph: Add an optional "file" parameter
  - emailauth: When email can't be sent, show the error message
  - osm: Don't raise errors if tags don't have attached icons
  - cgi: Avoid C compiler warnings for waitpid() on NetBSD
- [ Simon McVittie ]
  - Hide popup template content from documentation (Closes: #898836)
  - meta: Make [[!meta Error: cannot parse date/time: ]] show an error if dates are invalid or Date::Parse can't be loaded
  - inline: Cope with non-ASCII `rootpage` parameter. Thanks, Feng Shu
  - table: Cope with non-ASCII content in CSV format tables. Thanks, Feng Shu
  - trail: Allow unescaped punctuation in `pagenames` parameter
  - comments: Hide "add comment" link from print stylesheet. Thanks, Antoine Beaupré
  - recentchangesdiff, relativedate, toggle: Import JavaScript at the end of the page content, not the beginning, so that the browser can render content as soon as possible. Thanks, Antoine Beaupré
  - debian: Allow Breezy as an alternative to bzr Thanks, Jelmer Vernooĳ
  - inline: Add basic test coverage for [[!inline Error: missing pages parameter]]
  - table: Add basic test coverage
  - po: Add enough test coverage to reproduce Debian #911356
  - comments: Improve test coverage
  - tests: Exercise Unicode more
- [ Joey Hess ]
  - aggregate: Fix aggregation of posts without a title. Thanks, Alexandre Oliva
  - poll: Added postlink and posttrail options for better multi-page polls.
  - Fix permalink to comments.

version 3.20190228

ikiwiki 3.20190228 released with these changes

- aggregate: Use LWPx::ParanoidAgent if available. Previously blogspam, openid and pinger used this module if available, but aggregate did not. This prevents server-side request forgery or local file disclosure, and mitigates denial of service when slow "tarpit" URLs are accessed. (CVE-2019-9187)
- blogspam, openid, pinger: Use a HTTP proxy if configured, even if LWPx::ParanoidAgent is installed. Previously, only aggregate would obey proxy configuration. If a proxy is used, the proxy (not ikiwiki) is responsible for preventing attacks like CVE-2019-9187.
- aggregate, blogspam, openid, pinger: Do not access non-http, non-https URLs. Previously, these plugins would have allowed non-HTTP-based requests if LWPx::ParanoidAgent was not installed. Preventing file URIs avoids local file disclosure, and preventing other rarely-used URI schemes like gopher mitigates request forgery attacks.
- aggregate, openid, pinger: Document LWPx::ParanoidAgent as strongly recommended. These plugins can request attacker-controlled URLs in some site configurations.
- blogspam: Document LWPx::ParanoidAgent as desirable. This plugin doesn't request attacker-controlled URLs, so it's non-critical here.
- blogspam, openid, pinger: Consistently use cookiejar if configured. Previously, these plugins would only obey this configuration if LWPx::ParanoidAgent was not installed, but this appears to have been unintended.
- po: Always filter .po files. The po plugin in previous ikiwiki releases made the second and subsequent filter call per (page, destpage) pair into a no-op, apparently in an attempt to prevent recursive filtering (which as far as we can tell can't happen anyway), with the undesired effect of interpreting the raw .po file as page content (e.g. Markdown) if it was inlined into the same page twice, which is apparently something that tails.org does. Simplify this by deleting the code that prevented repeated filtering. Thanks, intrigeri (Closes: #911356)

ikiwiki 3.20170111.1 was also released, backporting the LWP-related changes from 3.20190228 to the branch used in Debian 9 'stretch'.

version 3.20200202.3

ikiwiki 3.20200202.3 released with these changes

- [ Amitai Schleier ]
  - highlight: Adapt to API change in highlight >= 3.51
  - mdwn: Fix inverted footnote configuration when MultiMarkdown is enabled. Thanks, Giuseppe Bilotta
- [ Joey Hess ]
  - Updated German basewiki and directives translation from Sebastian Kuhnert.
  - Updated German program translation from Sebastian Kuhnert.

version 3.20200202.4

ikiwiki 3.20200202.4 released with these changes

- [ Simon McVittie ]

  - build: Don't install an empty share/ikiwiki/examples/doc/examples

- [ Joey Hess ]

  - aggregate: When a feed has an enclosure that is an image, audio, or video, include the enclosure in the generated page.
  - aggregate: Also support feeds with media:content tags.
  - git: Pass --no-rebase when pulling, to avoid git warning messages about pull.rebase.

- [ Amitai Schleier ]

  - highlight: Adapt to API change in highlight >= 4.0
  - Avoid 'Duplicate specification' for option "s"

- [ Jonathan Dowland ]

  - html5: Switch from pubdate=pubdate to class=dt-published
  - mdwn: debug() which implementation is chosen

- [ Antoine Beaupré ]

  - recentchanges: support non-CGI links
  - add geo: scheme
  - pass PAGE variable to templates

- [ intrigeri ]

  - po: fix support for UTF-8 with po4a 0.58+

version 3.20250221

ikiwiki 3.20250221 released with these changes

- [ Jonathan Dowland ]

  - po.pm: fixes for po4a ≥ 0.70.
  - CGI::printheader: optional HTTP status argument
  - comments: return HTTP 202 for moderated comments
  - page.tmpl: don't generate an empty parentlinks span
  - new plugins:
    - Jason Blevins' h1title plugin (previously external/contrib)
    - DuckDuckGo plugin for site searching
  - new theme: lightdark. Supports browse preferences for light or dark mode.
  - Default html5 to '1'
  - Remove charset attribute from forms
  - Use the HTML5 details tag for more backlinks

- [ Paul Wise ]

  - Remove extra quote character from date spans

- [ intrigeri ]

  - t/po.t: Add missing PO header

- [ Antoine Beaupré ]

  - admonitions plugin

version 3.20250501

ikiwiki 3.20250501 released with these changes

- [ Antoine Beaupré ]

  - adjust logo from black to mid-point grey so it contrasts equally well on a black background to a white one.

- [ Jonathan Dowland ]

  - po4a: attempt to detect versions ≥ 0.70 and continue to support earlier versions (for now), such that modern ikiwiki can be built and operate on Debian stable (bookworm).
  - actiontabs: add support for dark mode

version 3.20260201

ikiwiki 3.20260201 released with these changes

- [ Joe Rayhawk ]

  - Git.pm: Headless git branches

- [ Jonathan Dowland ]

  - Add CommonMark support to mdwn.pm
  - New plugin: pagespec_aliases
  - Warn if deprecated html5 option is set
  - Fix ups for headless git branches
    - new test (build) dependency: Test::Fatal
  - Fix reproducible images with ImageMagick 7.1.2.1+
  - loginselector: remove jquery dependency
    - Upgrade notice: The highlighted login field is now marked with the CSS class name "login_highlight", instead of having its ID changed to "login_highlight".

- [ Philip Searle ]

  - Fix AutoSetup with modern readline

- [ intrigeri ]

  - po: fix incompatibility with po4a 0.73+ and HTML input files

ikiwiki-hosting

ikiwiki-hosting is an interface on top of Ikiwiki to allow easy management of lots of ikiwiki sites. I developed it for Branchable, an Ikiwiki hosting provider. It has a powerful, scriptable command-line interface, and also includes special-purpose ikiwiki plugins for things like a user control panel.

To get a feel for it, here are some examples:

    ikisite create foo.ikiwiki.net --admin http://joey.kitenet.net/
    ikisite branch foo.ikiwiki.net bar.ikiwiki.net
    ikisite backup bar.ikiwiki.net --stdout | ssh otherhost 'ikisite restore bar.ikiwiki.net --stdin'

ikiwiki-hosting is free software, released under the AGPL. Its website: http://ikiwiki-hosting.branchable.com/ --Joey

server move

The ikiwiki.info domain has been moved to a new server. If you can see this, your DNS has already caught up and you are using the new server. By the way, the new server should be somewhat faster. --Joey

ikiwiki version 3.0

Ikiwiki has reached version 3.0 and entered a new phase in its development cycle.

The 3.0 release of ikiwiki changes several defaults and finishes some transitions. You will need to modify your wikis to work with ikiwiki 3.0. A document explaining the process is available in upgrade to 3.0.

The highlights of the changes in version 3.0 include:

- Support for uploading attachments.
- Can rename and remove pages and files via the web.
- Web based setup.
- Blog-style comments as an alternative to Discussion pages.
- Many other new plugins including htmlbalance, format, progress, color, autoindex, cutpaste, hnb, creole, txt, amazon s3, pinger, pingee, edittemplate
- The RecentChanges page is compiled statically, not generated from the CGI.
- Support for additional revision control systems: bzr, monotone
- Support for untrusted git push.
- A new version (3.00) of the plugin API, exporting additional commonly used functions from `IkiWiki.pm`.
- Nearly everything in ikiwiki is now a plugin, from WikiLinks to page editing, to RecentChanges.
- Far too many bug fixes, features, and enhancements to list here.

Thanks to the many contributors to ikiwiki 3.0, including:

Jelmer Vernooij, Recai Oktaş, William Uther, Simon McVittie, Axel Beckert, Bernd Zeimetz, Gabriel McManus, Paweł Tęcza, Peter Simons, Manoj Srivastava, Patrick Winnertz, Jeremie Koenig, Josh Triplett, thm, Michael Gold, Jason Blevins, Alexandre Dupas, Henrik Brix Andersen, Thomas Keller, Enrico Zini, intrigeri, Scott Bronson, Brian May, Adeodato Simó, Brian Downing, Nis Martensen. (And anyone I missed.)

Also, thanks to the users, bug submitters, and documentation wiki editors. Without you, ikiwiki would just be a little thing I use for my home page.

--Joey

git push to this wiki

Now you can use git to clone this wiki, and push your changes back, thanks to ikiwiki's new support for untrusted git push. Enjoy working on the wiki while offline! --Joey

code swarm

I've produced a code_swarm visualization of the first 2+ years of ikiwiki's commit history.

- 15 mb avi
- stream on vimeo

PS, while I'm posting links to videos, here's a video of a lightning talk about ikiwiki.

--Joey

### notes

Interesting things to watch for:

- Initial development of ikiwiki to the point it was getting web edits. (First 2 seconds of video!)
- Introduction to plugin support, and later, plugin changes dominating code changes.
- Introduction of openid support and the resulting swarm of openid commenters.
- Switch to git, my name in the logs changes from "joey" to "Joey Hess", and there are more code commits directly from others.

Getting the commit log was tricky because every web commit is in there too, so it has to deal with things like IPs and openids. The code swarm log.pl script will munge the log to handle these, and it was configured with code swarm.config.

Video editing by kino, ffmpeg, ffmpeg2theora, and too many hours of pain.

Audio by the Punch Brothers.

consultant list

I was asked a good question today: How can a company find someone to work on ikiwiki? To help answer this question, I've set up a consultants page. If you might be interested in being paid to work on ikiwiki, please add your information to the page. --Joey

And here's the first company looking for an ikiwiki developer that I am aware of:

> The TOVA Company, a small medical software and hardware company in Portland, Oregon, is looking for developers to add functionality to ikiwiki. We're looking for developers who are already familiar with ikiwiki development, including plugins, and who would be willing to work on a part-time, non-employee, project-based basis for each of the small features that we want. The features we're interested in would obviously be GPL'd, and released to the community (if they'll have them ). Please contact Andrew Greenberg (andrew@thetovacompany) if you're interested. Thanks!

server move

I've gone ahead and moved ikiwiki.info to the faster box mentioned on server speed. Most poll respondants felt the old box was fast enough, but it's getting a bit overloaded with other stuff.

If you can see this, you're seeing the new server. If not, your DNS server hasn't caught up yet. I'll keep the old server up for a while too and merge any changes across since git makes that bog-easy.

Please report any problems..

no more email notifications

ikiwiki.info has upgraded to the not yet released ikiwiki 2.30. This version of ikiwiki drops support for subscribing to commit mail notifications for pages. The idea is that you can subscribe to the new RecentChanges feed instead. (Or create your own custom feed of only the changes you're interested in, and subscribe to that.)

So if you were subscribed to mail notifications on here, you'll need to change how you keep track of changes. Please let me know if there are any missing features in the RecentChanges feeds.

Statically building the RecentChanges also has performance implications, I'll keep an eye on server speed..

--Joey

ikiwiki screencast

I've put together a short screencast that covers approximatly the first half of the setup document, and includes a demo of setting up a blog using ikiwiki.

http://kitenet.net/~joey/screencasts/ikiwiki_blog/

.. And now I've added a second screencast. Note that this uses a script that is only available in the as yet unreleased ikiwiki version 2.15.

http://kitenet.net/~joey/screencasts/ikiwiki_cgi_and_git/

--Joey

moved to git

I've started using git as ikiwiki's main repository. See download for repository locations.

Note that all the sha1sums have changed from those in previously published git repositories. Blame git-svnimport.

I hope that this will make it easier to maintain and submit patches for ikiwiki.

--Joey

ikiwiki version 2.0

Ikiwiki has reached version 2.0 and entered a new phase in its development cycle.

With the 2.0 release of ikiwiki, some major changes have been made to the default configuration:

- The `usedirs` setting is enabled by default. This will break all URLs to wikis that did not have `usedirs` turned on before, unless you follow the procedure described at switching to usedirs or edit your setup file to turn `usedirs` off: `usedirs => 0,`
- OpenID logins are now enabled by default, if the Net::OpenID::Consumer perl module is available. Password logins are also still enabled by default. If you like, you can turn either OpenID or password logins off via the `disable_plugins` setting.

An overview of changes in the year since the 1.0 release:

- New improved URLs to pages via `usedirs`.
- OpenID support, enabled by default.
- Plugin interface added, with some 60 plugins available, greatly expanding the capabilities of ikiwiki.
- Tags, atom feeds, and generally full-fledged blogging support.
- Fully working utf8.
- Optimisations, approximately 3.5 times as fast as version 1.0.
- Improved scalability to large numbers of pages.
- Improved scalable logo.
- Support for additional revision control systems besides svn: git, tla, mercurial.
- Some support for other markup languages than markdown: rst, textile.
- Unit test suite, with more than 300 tests.

Article on Ikiwiki as a BTS

Integrated issue tracking with Ikiwiki by Joey Hess is now available on LinuxWorld.com. (LinuxWorld's author contract also allows this article to become part of the project's documentation.) Learn how to use Ikiwiki inlining and PageSpecs for lightweight workflow. Joey also explains how having the BTS and docs in the project's revision control system can help users of distributed revision control systems keep bug tracking info in sync with code changes.

ikiwiki accepted for Summer of Code

Google has accepted ikiwiki as a mentoring organization for Summer of Code 2007.

See our Summer of Code page for projects.

--JoshTriplett

server speed

Quick poll: Do you feel that ikiwiki is fast enough on this server, or should I move it to my much beefier auxiliary server?

[[!poll open=no 40 "It's fast enough" 6 "It's too slow!" 4 "No opinion"]]

If you have specifics on performance issues, you might mention them on the discussion page.

Ikiwiki is now hosted at Branchable.

irc channel

Ikiwiki now has an IRC channel: `#ikiwiki` on irc.oftc.net

The channel features live commit messages for CIA for changes to both ikiwiki's code and this wiki. Plus occasional talk about ikiwiki.

Thanks to JoshTriplett for making this happen.

new domain name

Ikiwiki has its own domain now, ikiwiki.info. Update your links.

donations

After looking up and noticing that another 8 hours had passed, replying to people and hacking, I've added a TipJar page, in case anyone feels like tossing me a few bucks for ikiwiki. TIA! --Joey

openid

Ikiwiki in svn now has support for using OpenID, a decentralized authentication mechanism that allows you to have one login that you can use on a growing number of websites.

Traditional password-based logins are still supported, but I'm considering switching at least ikiwiki.info over to using only OpenID logins. That would mean blowing away all the currently registered users and their preferences. If you're active on this wiki, I suggest you log out and log back in, try out the OpenID signup process if you don't already have an OpenID, and see how OpenID works for you. And let me know your feelings about making such a switch. --Joey

[[!poll open=no 77 "Accept only OpenID for logins" 22 "Accept only password logins" 50 "Accept both"]]

stylesheets

Some people may consider ikiwiki's default look to be a bit plain. Someone on slashdot even suggested perhaps it uses html 1.0. (Yes, an ikiwiki site has survived its first slashdotting. With static html, that's not very hard..) While the default style is indeed plain, there's more fine-tuning going on than you might think, and it's actually all done with xhtml and style sheets.

Stefano Zacchiroli came up with the idea of adding a css market page where IkiWikiUsers can share style sheets that you've come up with for ikiwiki. This is a great idea and I encourage those of you who have customised stylesheets to post them.

I'm also always looking for minimalistic yet refined additions to the default style sheet, and always appreciate suggestions for it.

--Joey

By the way, some other pages with RSS feeds about ikiwiki include plugins, TODO and bugs.