2006-08-28 09:40:20 +02:00
|
|
|
An overview of some of ikiwiki's features:
|
2008-07-21 13:32:31 +02:00
|
|
|
[[!toc ]]
|
2006-03-11 06:24:01 +01:00
|
|
|
|
2006-08-28 09:40:20 +02:00
|
|
|
## Uses a real RCS
|
2006-03-11 06:32:03 +01:00
|
|
|
|
2006-08-28 09:40:20 +02:00
|
|
|
Rather than implement its own system for storing page histories etc,
|
2008-10-09 00:02:03 +02:00
|
|
|
ikiwiki uses a real [[Revision_Control_System|rcs]]. This isn't (just)
|
|
|
|
because we're lazy, it's because a real RCS is a good thing to have, and
|
|
|
|
there are advantages to using one that are not possible with a standard
|
|
|
|
wiki.
|
2006-03-11 06:32:03 +01:00
|
|
|
|
2006-08-28 09:40:20 +02:00
|
|
|
Instead of editing pages in a stupid web form, you can use vim and commit
|
2007-08-21 06:25:03 +02:00
|
|
|
changes via [[Subversion|rcs/svn]], [[rcs/git]], or any of a number of other
|
|
|
|
[[Revision_Control_Systems|rcs]].
|
2006-03-11 06:32:03 +01:00
|
|
|
|
2010-04-03 22:07:32 +02:00
|
|
|
Ikiwiki can be run from a [[post-commit]] hook to update your wiki
|
2006-09-06 22:31:55 +02:00
|
|
|
immediately whenever you commit a change using the RCS.
|
2006-03-14 07:04:44 +01:00
|
|
|
|
2009-08-04 19:46:02 +02:00
|
|
|
It's even possible to securely let
|
|
|
|
[[anonymous_users_git_push_changes|tips/untrusted_git_push]]
|
|
|
|
to the wiki.
|
|
|
|
|
2006-08-28 09:40:20 +02:00
|
|
|
Note that ikiwiki does not require a RCS to function. If you want to
|
|
|
|
run a simple wiki without page history, it can do that too.
|
2006-03-11 06:32:03 +01:00
|
|
|
|
2006-08-28 09:51:04 +02:00
|
|
|
## A wiki compiler
|
|
|
|
|
2010-04-03 22:07:32 +02:00
|
|
|
Ikiwiki is a wiki compiler; it builds a static website for your wiki, and
|
2006-08-28 09:51:04 +02:00
|
|
|
updates it as pages are edited. It is fast and smart about updating a wiki,
|
|
|
|
it only builds pages that have changed (and tracks things like creation of
|
|
|
|
new pages and links that can indirectly cause a page to need a rebuild)
|
|
|
|
|
2006-08-28 09:40:20 +02:00
|
|
|
## Supports many markup languages
|
2006-03-11 06:24:01 +01:00
|
|
|
|
2007-12-08 21:59:08 +01:00
|
|
|
By default, pages in the wiki are written using the [[ikiwiki/MarkDown]] format.
|
2006-08-28 09:40:20 +02:00
|
|
|
Any page with a filename ending in ".mdwn" is converted from markdown to html
|
|
|
|
by ikiwiki. Markdown understands text formatted as it would be in an email,
|
|
|
|
and is quite smart about converting it to html. The only additional markup
|
2007-12-08 21:59:08 +01:00
|
|
|
provided by ikiwiki on top of regular markdown is the [[ikiwiki/WikiLink]] and
|
2008-08-25 20:19:39 +02:00
|
|
|
the [[ikiwiki/directive]].
|
2006-03-11 06:24:01 +01:00
|
|
|
|
2006-08-28 09:40:20 +02:00
|
|
|
If you prefer to use some other markup language, ikiwiki allows others to
|
|
|
|
easily be added by [[plugins]]. For example it also supports traditional
|
|
|
|
[[plugins/WikiText]] formatted pages, pages written as pure
|
2006-12-29 06:18:39 +01:00
|
|
|
[[plugins/HTML]], or pages written in [[reStructuredText|plugins/rst]]
|
|
|
|
or [[Textile|plugins/textile]].
|
2006-07-04 00:08:04 +02:00
|
|
|
|
2010-04-03 22:07:32 +02:00
|
|
|
Ikiwiki also supports files of any other type, including plain text,
|
2006-08-28 09:40:20 +02:00
|
|
|
images, etc. These are not converted to wiki pages, they are just copied
|
|
|
|
unchanged by ikiwiki as it builds your wiki. So you can check in an image,
|
|
|
|
program, or other special file and link to it from your wiki pages.
|
2006-03-11 06:26:52 +01:00
|
|
|
|
2007-08-21 06:55:55 +02:00
|
|
|
## Blogging
|
2006-03-24 02:16:32 +01:00
|
|
|
|
2008-09-12 01:39:05 +02:00
|
|
|
You can turn any page in the wiki into a [[blog]]. Pages matching a
|
2007-12-08 21:59:08 +01:00
|
|
|
specified [[ikiwiki/PageSpec]] will be displayed as a weblog within the blog
|
2006-10-09 01:57:37 +02:00
|
|
|
page. And RSS or Atom feeds can be generated to follow the blog.
|
2006-03-24 02:16:32 +01:00
|
|
|
|
2006-08-28 09:40:20 +02:00
|
|
|
Ikiwiki's own [[TODO]], [[news]], and [[plugins]] pages are good examples
|
2006-10-29 01:41:39 +02:00
|
|
|
of some of the flexible ways that this can be used. There is also an
|
|
|
|
[[example_blog|examples/blog]] set up that you can copy into your own wiki.
|
2006-06-02 03:17:26 +02:00
|
|
|
|
2006-08-28 09:40:20 +02:00
|
|
|
Ikiwiki can also [[plugins/aggregate]] external blogs, feeding them into
|
|
|
|
the wiki. This can be used to create a Planet type site that aggregates
|
|
|
|
interesting feeds.
|
2006-07-30 06:31:08 +02:00
|
|
|
|
2013-07-22 02:06:12 +02:00
|
|
|
You can also mix blogging with [[podcasting|podcast]]. Simply drop
|
|
|
|
media files where they will be picked up like blog posts. For
|
|
|
|
fuller-featured podcast feeds, enclose media files in blog posts
|
|
|
|
using [[plugins/meta]]. Either way, this will work for any files
|
|
|
|
that you would care to syndicate.
|
2006-11-01 07:45:59 +01:00
|
|
|
|
2006-09-22 16:44:52 +02:00
|
|
|
## Valid html and [[css]]
|
2006-03-12 04:29:09 +01:00
|
|
|
|
2010-04-03 22:07:32 +02:00
|
|
|
Ikiwiki aims to produce
|
2010-05-02 03:00:06 +02:00
|
|
|
[valid XHTML 1.0](http://validator.w3.org/check?url=referer).
|
2010-05-02 23:16:15 +02:00
|
|
|
(Experimental [[tips/HTML5]] support is also available.)
|
2010-05-02 03:00:06 +02:00
|
|
|
|
|
|
|
Ikiwiki generates html using [[templates]], and uses [[css]], so you
|
2007-03-31 08:55:12 +02:00
|
|
|
can change the look and layout of all pages in any way you would like.
|
2006-03-12 04:29:09 +01:00
|
|
|
|
2010-12-11 19:55:24 +01:00
|
|
|
Ikiwiki ships with several ready to use [[themes]].
|
|
|
|
|
2006-08-28 09:51:04 +02:00
|
|
|
## [[Plugins]]
|
|
|
|
|
2008-10-09 00:02:03 +02:00
|
|
|
Plugins can be used to add additional features to ikiwiki. The interface is
|
|
|
|
quite flexible, allowing plugins to implement additional markup languages,
|
|
|
|
register [[directives|ikiwiki/directive]], provide a [[RCS]] backend, hook
|
|
|
|
into [[CGI]] mode, and much more. Most of ikiwiki's features are actually
|
|
|
|
provided by plugins.
|
2006-08-28 09:51:04 +02:00
|
|
|
|
2007-08-13 05:30:01 +02:00
|
|
|
The standard language for ikiwiki plugins is perl, but ikiwiki also supports
|
|
|
|
[[plugins/write/external]] plugins: Standalone programs that can be written in
|
|
|
|
any language and communicate with ikiwiki using XML RPC.
|
|
|
|
|
2006-08-28 09:52:37 +02:00
|
|
|
## [[todo/utf8]]
|
2006-08-28 09:51:04 +02:00
|
|
|
|
|
|
|
After rather a lot of fiddling, we think that ikiwiki correctly and fully
|
|
|
|
supports utf8 everywhere.
|
|
|
|
|
|
|
|
## Other features
|
|
|
|
|
|
|
|
The above are the core design goals and features of ikiwiki, but on that
|
|
|
|
foundation a lot of other important features are added. Here is an
|
|
|
|
incomplete list of some of them.
|
|
|
|
|
2006-08-28 09:51:43 +02:00
|
|
|
### [[Tags]]
|
2006-08-28 09:51:04 +02:00
|
|
|
|
|
|
|
You can tag pages and use these tags in various ways. Tags will show
|
|
|
|
up in the ways you'd expect, like at the bottom of pages, in blogs, and
|
2006-10-09 01:57:37 +02:00
|
|
|
in RSS and Atom feeds.
|
2006-08-28 09:51:04 +02:00
|
|
|
|
2007-12-08 21:59:08 +01:00
|
|
|
### [[SubPages|ikiwiki/SubPage]]
|
2006-08-20 23:06:57 +02:00
|
|
|
|
2006-08-28 09:40:20 +02:00
|
|
|
Arbitrarily deep hierarchies of pages with fairly simple and useful
|
2007-12-08 21:59:08 +01:00
|
|
|
[[ikiwiki/SubPage/LinkingRules]]
|
2006-08-20 23:06:57 +02:00
|
|
|
|
2006-08-28 09:51:04 +02:00
|
|
|
### [[BackLinks]]
|
2006-03-11 07:09:10 +01:00
|
|
|
|
2006-08-28 09:40:20 +02:00
|
|
|
Automatically included on pages. Rather faster than eg MoinMoin and
|
|
|
|
always there to help with navigation.
|
2006-03-11 07:09:10 +01:00
|
|
|
|
2006-08-28 09:51:04 +02:00
|
|
|
### Smart merging and conflict resolution in your web browser
|
2006-03-11 07:34:04 +01:00
|
|
|
|
2006-08-28 09:51:04 +02:00
|
|
|
Since it uses a real RCS, ikiwiki takes advantage of its smart merging to
|
|
|
|
avoid any conflicts when two people edit different parts of the same page
|
|
|
|
at the same time. No annoying warnings about other editors, or locking,
|
|
|
|
etc, instead the other person's changes will be automatically merged with
|
|
|
|
yours when you commit.
|
2006-03-11 07:34:04 +01:00
|
|
|
|
2006-08-28 09:51:04 +02:00
|
|
|
In the rare cases where automatic merging fails due to the same part of a
|
|
|
|
page being concurrently edited, regular commit conflict markers are
|
|
|
|
shown in the file to resolve the conflict, so if you're already familiar
|
2010-04-02 19:28:34 +02:00
|
|
|
with that there's no new commit marker syntax to learn.
|
2006-08-28 09:51:04 +02:00
|
|
|
|
2022-10-03 19:11:24 +02:00
|
|
|
### [[RecentChanges]], editing pages in a web browser
|
2006-03-11 06:45:18 +01:00
|
|
|
|
2006-08-28 09:40:20 +02:00
|
|
|
Nearly the definition of a wiki, although perhaps ikiwiki challenges how
|
|
|
|
much of that web gunk a wiki really needs. These features are optional
|
2008-01-30 01:27:37 +01:00
|
|
|
and can be enabled by enabling [[CGI]] and a [[Revision_Control_System|rcs]].
|
2006-03-12 21:10:42 +01:00
|
|
|
|
2006-08-28 09:51:04 +02:00
|
|
|
### User registration
|
2006-03-12 21:10:42 +01:00
|
|
|
|
2007-02-02 03:33:03 +01:00
|
|
|
Can optionally be configured to allow only registered users to edit
|
2006-11-20 02:52:18 +01:00
|
|
|
pages.
|
|
|
|
|
|
|
|
User registration can be done using a web form, or ikiwiki can be
|
|
|
|
configured to accept users authenticated with OpenID, or HTTP basic
|
|
|
|
authentication, or other methods implemented via plugins.
|
2006-03-11 06:45:18 +01:00
|
|
|
|
2006-08-28 09:51:04 +02:00
|
|
|
### Discussion pages
|
2006-03-13 01:52:57 +01:00
|
|
|
|
2006-08-28 09:40:20 +02:00
|
|
|
Thanks to subpages, every page can easily and automatically have a
|
|
|
|
/Discussion subpage. By default, these links are included in the
|
2011-07-11 00:49:27 +02:00
|
|
|
[[templates]] for each page. If you prefer blog-style
|
2009-08-04 19:46:02 +02:00
|
|
|
[[plugins/comments]], that is available too.
|
2006-03-13 01:52:57 +01:00
|
|
|
|
2007-02-02 03:33:03 +01:00
|
|
|
### Edit controls
|
2006-03-19 21:42:12 +01:00
|
|
|
|
2008-10-09 00:02:03 +02:00
|
|
|
Wiki admins can lock pages so that only other admins can edit them. Or a
|
2008-10-08 23:09:24 +02:00
|
|
|
wiki can be set up to allow anyone to edit Discussion pages, but only
|
|
|
|
registered users to edit other pages. These are just two possibilities,
|
|
|
|
since page edit controls can be changed via plugins.
|
2006-03-23 02:40:46 +01:00
|
|
|
|
2006-08-28 09:51:04 +02:00
|
|
|
### [[PageHistory]]
|
2006-03-23 02:40:46 +01:00
|
|
|
|
2010-04-02 19:28:34 +02:00
|
|
|
Well, sorta. Rather than implementing YA history browser, it can link to
|
2007-02-09 06:34:40 +01:00
|
|
|
[[ViewVC]] or the like to browse the history of a wiki page.
|
2006-03-19 21:42:12 +01:00
|
|
|
|
2006-08-28 09:51:04 +02:00
|
|
|
### Full text search
|
2006-03-30 00:21:23 +02:00
|
|
|
|
2010-04-03 22:07:32 +02:00
|
|
|
Ikiwiki can use the xapian search engine to add powerful
|
2008-06-03 21:29:54 +02:00
|
|
|
full text [[plugins/search]] capabilities to your wiki.
|
2006-03-30 00:21:23 +02:00
|
|
|
|
2009-08-04 19:46:02 +02:00
|
|
|
### Translation via po files
|
|
|
|
|
|
|
|
The [[plugins/po]] plugin allows translating individual wiki pages using
|
|
|
|
standard `po` files.
|
|
|
|
|
2006-08-28 09:51:04 +02:00
|
|
|
### [[w3mmode]]
|
2006-07-07 21:38:35 +02:00
|
|
|
|
2006-08-28 09:40:20 +02:00
|
|
|
Can be set up so that w3m can be used to browse a wiki and edit pages
|
|
|
|
without using a web server.
|