EmailMainTagsEditHistoryDiscussion

Introduction

This page documents some features of Svnwiki.

General Features

  • Since the wiki contents are stored in a Subversion repository, you can use any program that operates on a Subversion repository directly on your wiki contents. For example:
    • You can svn checkout your wiki contents, edit them directly with any text-editor and then svn commit or svn diff them. You can view your wiki's changes using svn log.
    • You can use any tool to generate plots from a Subversion repository directly on your wiki.
  • Generates static files from which page views are served. To do this it comes with a svnwiki-post-commit-hook program that should be configured as a post-commit hook in the wiki's Subversion repository (details on how to do that are provided in the installation guide). We call this the pre-rendered model.
  • Uses svn properties providing great flexibility in the way the wiki site is managed. You can do the following things on a file by file basis (or you can set properties on directories to affect all their contents recursively):
    • Allow users to send a diff (patch) with their changes to specific email addresses.
    • Prevent users from modifying certain files directly (through Svnwiki). Such files can only modified by other means (such as using the Subversion svn client).
    • Prevent certain files from being converted from wiki-format to HTML. These files will be sent directly as they are. This allows you to include binary files (eg. images, sound, xml) in your repository. The standard svn:mime-type property will be uses for these files. You can even edit these files through Svnwiki (for example, you may include your CSS files in your repository and edit them through Svnwiki).
  • Supports content in any charset. You configure the charset you want to use for the information in your wiki through the svnwiki:charset Subversion property. The only limitation would be names of files (ie. paths) in the wiki, but that's difficult to solve given that the character set of URLs is not specified.

Wiki format

  • Supports an extensible syntax for types of links, which in other wiki systems have been called «interwiki links». Basically, you define a set of rules specifying transformations and then you can easily create links. For instance, [[google:svnwiki]] is rendered as a link to a Google search: svnwiki.

Extensions

Many of the features from Svnwiki come from extensions:

  • Supports tagging (ie. folksonomy) of files. Each file may have many associated tags. Files are generated for each tag with links to the files having it (example). Files are also generated for each file listing the tags they have (example). A file is generated with the most popular tags (example). And also, each page has a list of Related pages, which includes those it shares tags with sorted by tag (there's an example at the end of this page).
  • Includes a weblog extension. With it, a wiki directory can be used as a weblog (examples). Along with the rating and discuss extensions, your weblog can show the list of the highest rated and most commented posts.
  • Includes an image extension. If you enable it and commit an image file to the repository, an HTML page will be generated for the image, allowing it to be viewed in multiple sizes and displaying more information about the image, such as the list of tags that it has (from the folksonomy extension) or its title (example). Furthermore, along with the folksonomy extension, an image gallery (with thumbnails) will be generated for every tag that is associated to at least one image (example).
  • Includes a googlemap extension, that creates a map of your pages, based on a latitude and longitude property on each page. An example would be the map of Chicken users.
  • Includes a metadata extension that, among other things, can be used to let users modify certain Subversion properties of pages in the wiki through the web interface. This is used, for example, for setting the title of a page and its list of tags.
  • Allows people to subscribe to wiki pages to receive email notifications of changes or new comments. We are currently working on allowing people to reply to these emails to post new comments. This is provided by the mail extension. You can read the design specification for the email functionality.
  • Uses GNU Enscript to perform syntax highlighting over multiple languages / formats (example with Java and Python code). As of this writing, the following are supported: ada asm awk bash c changelog cpp csh delphi diff diffs diffu dylan eiffel elisp erlang forth fortran fortran_pp haskell html icon idl inf java javascript ksh lua m4 mail makefile matlab nroff oberon2 objc outline oz pascal perl postscript pyrex python rfc scheme sh skill Smalltalk sml sql states synopsys tcl tcsh tex vba verilog vhdl vrml wmlscript zsh.

Miscellaneous

  • Generates ATOM XML feeds with activity, one for each file (example) and one for each directory (example), including the root of your wiki.
  • Generates PDF files for the articles (example). The PDF generation doesn't support everything yet (eg. images) but is quite good for most cases.
  • Supports searching the wiki using Hyper Estraier. Svnwiki will itself call Hyper Estraier directly to index documents in the wiki as well as to perform searches.
  • Supports browsing the directory tree of the repository, providing some information on every file.

Last update: 2009-05-19 (Rev 15503)

svnwiki $Rev: 15576 $