[Home]SisterSitesImplementationGuide

MeatballWiki | RecentChanges | Random Page | Indices | Categories

A step-by-step guide for WikiDevelopers? who want to add SisterSites to their WikiEngine:

Enable others to link to your wiki

Offer a URL that lists AllPages, formatted like this, in UTF-8:

http://foo.com/wiki.pl?WikiWord WikiWord
http://foo.com/wiki.pl?TextFormattingRules TextFormattingRules
http://foo.com/wiki.pl?Free_Link Free Link

Note that the WikiName on the third line contains a space ("Free Link"). This is okay, as the page's URL should never contain a space. URLs should be properly %-encoded, or you risk having undefined behaviour for pages with non-ASCII characters.

For the full spec, see http://eekim.com/cgi-bin/wiki.pl?SisterSites

There are other formats, notably AllPagesStandard, but as of August 2006 no one has replied to ChrisPurcell's comment that ASCII is not only sufficient but necessary for URLs. More to the point, a number of wikis have already implemented the above specification, so let's just keep going with it unless it becomes obvious that something about it is broken.

Enable your wiki to link to other sites

Create a way for wiki administrators and/or users to select their wiki's SisterSites.

Maintain a local database of sister site info by periodically grabbing the SisterSites' page name lists. (Optionally) do WikiNameCanonicalization of those names to increase the chance of finding matches.

When a page renders, search your database for matches and put links to matching pages.

Write documentation

How do administrators/users maintain their wiki's list of SisterSites?

What (if anything) does the person installing the wiki do to enable the periodic running of the code that grabs their SisterSites' page listings?

Sample code can be found in WikiEnginesWithSisterSites, and WardCunningham's Coding Tips for Wiki Sister Sites http://c2.com/doc/TipsForSisterSites/sisters.pdf (he also wrote a blog post: - http://www.artima.com/weblogs/viewpost.jsp?thread=4615)

Other considerations


An alternative to each site building their own database is to get sister site info from a wiki indexing service - assuming a comprehensive one is created. See MetaWiki. Another possibility is Feedster - ScottRafer? expressed interest.


ProWiki supports SisterSites by an efficient incremental update protocol that works between servers (WikiNet). Especially powerful when used in connection with MultiLinking and/or NearLink. -- HelmutLeitner


See also Wiki:AboutSisterSites, TwinPages, InterMap#Standard. The idea to write this guide came from a WikiVanning OpenSpace session after WikiSym 2005.


UTF-8 [in URLs] is still a good idea because it accomodates page names in multiple languages.

This is false. If you include non-ASCII chars in a URL, you force the system reading the page to decide how to %-encode that char. Should it be in Latin-1, if the characters are e.g. é or ø? That will be correct for many non-internationalized wikis, such as vanilla UseMod, and MeatballWiki even a year ago. Should it be in UTF-8? That will work for e.g. MeatballWiki as it currently stands, and indeed many online sites. I have to pick one, and if I pick wrong — probably a 50:50 chance here — my links won't work.

This information must be included in the AllPages listing, and the easiest way to do that is to simply %-encode the URLs yourself. Output legitimate (that is, restricted ASCII, octets 20-7E only) URLs, as per RFC 1738. -- ChrisPurcell


CategoryUncommonWikiTechnology CategoryInterCommunity

Discussion

MeatballWiki | RecentChanges | Random Page | Indices | Categories
Edit text of this page | View other revisions
Search: