Wiki source for SyndicatingWikka


Show raw source

=====Syndicating Wikka Wiki=====
''This pages is a //stub//''

>>**See also:**
~-RssInfo
~-IncludeRemote
~-WikkaFolksonomy
>>I would like to collect on this page some thoughts about the development of advanced tools (a sort of ""<acronym title="Application Programming Interface">API</acronym>"") to allow **syndication** of content and/or structure of a wiki.

There are already several ways of syndicating the content of a wiki running on Wikka:
~-trough some of its built-in [[RSSInfo | rss feeds]];
~-through the use of some dedicated handlers (like the ##/raw## handler) -- see IncludeRemote for a possible use of this handler;
~-through the WikiPing functionality;

== A Wikka API ==
It would be interesting to explore the possibility of extending these tools to include other handlers, producing output in different formats (RDF, RSS, MM, raw text) to be used by external sites or services to syndicate the content of a wiki.

== A simple application: //automatically checking for updates// ==
An action to automatically check for available upgrades only requires two simple pieces of code. On the server side, we just need a simple handler to output the version number of the latest stable package as raw text. From the client side, we need an action that connects to the Wikka server, retrieves the latest version number and compare it with the one of the engine running locally. If the local package is outdated, then an upgrade information box is displayed, along with automatically generated links. One can certainly provide more server-side information to be used by client wikis, e.g. a direct download link to the package in different formats, a link to the [[RecentChanges | changelog]] or the [[WhatsNew | "what's new"]] page. This would require a more flexible output format (XML) on the server side.

== An example of advanced syndication between wikis==
A particularly interesting case would be that of //wikis syndicating information from each other//.
Consider for instance a **meta-wiki** (A) collecting information from a number of **child-wikis** (B,C,D).
(A) might use dedicated actions to:
~1) connect "live" to (B), (C) and (D),
~1) retrieve information from each of them through the use of dedicate handlers,
~1) process, format and display such information "locally".
Now suppose (B), (C), and (D) possess a handler outputting a RSS feed with the //number of new registered users per day during the last week//. (A) could use an action to syndicate (B), (C) and (D), process the data available from such feeds, and use something like a built-in [[BarGraph | graphic class]] to output a chart comparing the evolution of the number of users for each of these wikis.

== Possible applications ==
There are many possible uses of similar syndication tools to extract information from a wiki at different levels:
~-page content (e.g., the actual body of a page)
~-page metadata (e.g., the last author of a page)
~-wiki structure (e.g., the categories present on a wiki)
~-wiki metadata (e.g., the number of pages on a wiki)

We just need to identify such uses and start designing dedicated tools.

//Feel free to add here your thoughts/suggestions.//

~&Logically it's only a kind of division between generating content and displaying it. I.e. having a function like FetchContent() who sorts out the (acess-)rights and calls the other funcs who will make the content. NilsLindenberg

----
CategoryDevelopmentDiscussion CategoryDevelopmentSyndication
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki