RSS feed -- custom RSS feeds
Note: Thanks to GrantBow, MS and other wikimasters this problem is now almost completely solved. The only remaining item:
- How to add an RSS-feed target to the standard Wiki search results page so that if you liked the results of a search you could "capture" it as an RSS feed. -- PieterHartsook - 04 Jun 2004
Build a custom RSS feed.
The Wiki can generate a custom RSS index page to feed RSS readers. The URL for the feed only works with one Wiki at a time and takes the form:
http://wiki.osafoundation.org/twiki/bin/view/*wikiname*/WebRss?skin=rss&search=*searchstring* where the variables are:
- wikiname -- the OSAF wikis, e.g. Chandler, Journal, Jungle, Glossary
- searchstring -- whatever you want to identify the pages that that when changed will populate your RSS feed. If you use a Wiki topic name remember that this will hit positive on that page AND any page that references that page. The search term could be as broad as you wish, e.g. 'repository' to make a feed that shows all changes to Wiki pages that have the string 'repository' in them. To test the specificity of the string, try it out in a Wiki search first.
The
StarterProjects project is to come up with some wiki-fu that would make a nice end-user UI to set those two variables, the first maybe a pulldown menu with the valid Wiki names, and the second a text entry box to enter the search term. After setting the variables the use would then have a valid URL, for example (
http://wiki.osafoundation.org/twiki/bin/view/Chandler/WebRss?skin=rss&search=Teams.CpiaFramework ) to enter as a RSS feed into their RSS reader.
try it out, click the link to see the changed pages that have "CipiaFramework" in them
An alternative deployment would be to add the generated RSS feed URL to all Wiki search results (in each Wiki sub-list) with the URL for the RSS feed for those search results. It would be a way to take the results of a Wiki search and execute it periodically and display the results in your RSS reader of choice.
Here's an implementation that uses a two step process. The good part is that you don't need to hack perl, however the drawback is that it does require two page loads. You must click the Set Web button (browser will reload the page) so that the second step will work. This would seem much better on a dedicated page. More details and an outline of the alternative (better) way of doing this can be found on
Jungle.FirstDraftRssSelector.
Contact person: PieterHartsook
Build a Wiki variable for a page's name.
Using the approach above create a variable that can be placed on every Wiki page in the header of footer of the page, sitting behind an

XML.gif that will generate the custom RSS feed for that page (and all the pages that have that text on it, including references to that page).
An example handcoded for this
StarterProjects page would be:
<a href=http://wiki.osafoundation.org/twiki/bin/view/Chandler/WebRss?skin=rss&search=HelpUs><img src=http://wiki.osafoundation.org/twiki/pub/TWiki/TWikiDocGraphics/xml.gif></a>
- test using the %TOPIC% Wiki variable (seems to work!)
<a href=http://wiki.osafoundation.org/twiki/bin/view/Chandler/WebRss?skin=rss&search=%TOPIC%><img src=http://wiki.osafoundation.org/twiki/pub/TWiki/TWikiDocGraphics/xml.gif></a>
- set RSS_SEARCH = <a href=WebRss?skin=rss&search=
- set XML_GIF_IMGSRC = >
- now to try using three variables strung together: %RSS_SEARCH%RssFeedProjects%IMG_GIF_IMGSRC%
%RSS_SEARCH%%TOPIC%%IMG_GIF_IMGSRC%
--
That sure didn't work!
So I figured out a universal variable that 'creates' an RSS feed based on the wiki page "TOPIC", the wiki name of the page. This code can be placed on every wiki page (and probably should be included in the PAGE HEADER)is:
<a href=WebRss?skin=rss&search=%TOPIC%><img src=http://wiki.osafoundation.org/twiki/pub/TWiki/TWikiDocGraphics/xml.gif></a>
Note: this creates a feed for that page AND every other page in that wiki that mentions that page name.
The way it is formatted to work within the OSAF_PAGETYPEHEADER variable thanks to help from Grant Bowman and others on #twiki, is:
The RSS feed for this page and other pages on the Projects Wiki that refer to RssFeedProjects is: |
* Set OSAF_RSSFEED_PAGEGENERATOR = <BR>The RSS feed for *this page* and other pages on the <span style="color:red"> %WEB% </span> Wiki that refer to *%TOPIC%* is: <a href=WebRss?skin=rss&search=%TOPIC%><img src=http://wiki.osafoundation.org/twiki/pub/TWiki/TWikiDocGraphics/xml.gif></a>
| PieterHartsook? RSS feed | |
Contact person: PieterHartsook
The #twiki folks also suggested using %INCLUDE instead of using the variables for the page types and RSS generators. Information about this can be found at:
- IncludeVariables?
- OsafUntypedPageTemplate?
I haven't got this method to work yet. --
PieterHartsook - 23 Apr 2004
--
PieterHartsook - 07 Apr 2004
Allow RSS updates on a given page
There is already a way to get an RSS feed that gives changes any time any page containing a particular text string changes, but there is no way to only get a particular page. For example, this custom RSS feed
will show not just changes
ManagementCommitteeMeetingNotes, but also to
ManagementCommitteeMeetingNotes20040316,
ManagementCommitteeMeetingNotes20040330, etc.
It would be great if someone could come up with some wiki-fu so that you could subscribe to a given wiki page, not to all pages with the given text.
With some help from wiki-fu masters Grant Bowman and MS over on #twiki IRC channel at calvino.freenode.net, they have come up with an improved
WebRssBase?,by changing how the %SEARCH function works. This is now implemented at
WebRssBase so we now are able to pass all the standard SEARCH parameters to the rss feed statement including restricting the search string to the TOPIC to restrict the results, use Regular Expressions in the search striings, and in the other direction to set web="all" to get all referring pages across all the OSAF Wikis!
- This satisfies Ducky's request to create a feed for a specific page (solution is just to use the Regular Expression ^FooPage$ where FooPage? is the specific Wiki page name.
- But by leaving off the "$" at the end you can get all the pages that extend on the Topic, e.g. MeetingNotes?$, MeetingNotes2004?, MeetingNotes20040426?, MeetingNotes20040426Agenda?, etc. While the parentage of a Wiki page may change, you can cluster pages together by standard naming conventions, e.g. WeeklyStatusByPerson20040428?.
- The next step will be to be able to conduct a simple or advanced search using the TWiki Search pages and on the results page have the option to generate the RssFeed? URL for that search (once you finally get the search to give you the results you want)
Contact person: DuckySherwood
--
DuckySherwood - 07 Apr 2004
More wiki-fu requests
The first question is about these two pages:
Each of those pages has "a list of lists". The lists themselves are all
automatically generated, but the "list of lists" is not automatic, and
as a result the tables of content sections on those pages are already
out of date (for example, no listing for Brian Kirsh, even though
BrianKirsh? does appear as an entry on the
MaintainedBy page).
Might it be possible to use some sort of nest search expression to
generate all of the contents of those pages, so that almost nothing is
hard-coded?
This is related to the next question. The definitive list of page types is defined in
Projects.PageType. Right now the
WikiHelpPage page type includes those definition topics as well as some others. You might be able to use a regex in a formatted search that finds all pages with the metadata page type set to
WikiHelpPage whose topics themselves end with 'Page' in the topic name.
I also believe that each of those
PageTypes can also have defined in them % startinclude % sections for the variables that are currently on
TWiki.TWikiPreferences but I would want to do some
PageTypeFeatureTesting? to verify that nothing gets in the way, using a single topic for both the contents of a "TWiki form's selection data field as well as using it for an include data source. This is certainly pushing the limits of the existing TWiki features from other TWiki sites I have worked with.
Another page to automate is
Trash.AboutPageType?. All the info in that table could be generated from metadata in a form applied to the "PageType" topics. Maybe another
PageType should be defined for the actual topics that contain data about the
PageTypes.
If lists of lists can't be done (or it's too tough for whatever reason) with nested formatted searches, a simple perl script can be written with the functionality.
--
GrantBowman - 03 May 2004
Second question: Is it possible to somehow implement the page type
header boxes so that the code for them is better factored, rather than
each one being basically a copy of the one before, the way it is now?
http://wiki.o11n.org/twiki/bin/view/TWiki/TWikiPreferences#Standard_page_type_header_boxes_
PieterHartsook was working on this using % includes after a discussion on irc.freenode.net #twiki with MS who frequents that channel. See
TWiki.TWikiVariables for syntax.
Third question: Is there other stuff that Grant has noticed we should be
doing different? Things we're doing the hard way, or things we're
failing to do? Or really wonderful plugins that we don't even have
installed?
--
PieterHartsook - 04 Jun 2004