# Headlines Plugin
## Description This plugin displays RSS and ATOM feeds from news sites. Use it to build news portals that show headline news. **_Note:_** Syndic8.com ( ) is a good site listing many RSS feeds. ## Syntax Rules `%HEADLINES{"..."}%`
Parameter Explanation Default
"..." source of RSS feed; this can be an url (starting with http) or a web.topic location for internal feeds None; is required
href="..." (Alternative to above) N/A
refresh="60" Refresh rate in minutes for caching feed; "0" for no caching Global REFRESH setting
limit="12" Maximum number of items shown Global LIMIT setting
header Header. Can include these variables: - $channeltitle, $title: title of channel (channel.title) %BR% - $channellink, $link: link of channel (channel.link) %BR% - $channeldescription, $description: description (channel.description) %BR% - $channeldate, $date: publication date of the channel (channel.pubDate) %BR% - $rights: copyrights of the channel (channel.copyright) %BR% - $imagetitle: title text for site (image.title) %BR% - $imagelink: link for site (image.link) %BR% - $imageurl: URL of image (image.url) %BR% - $imagedescription: description of image (image.description) Global HEADER setting
format Format of one item. Can include these variables: %BR% - $title: news item title (item.title) %BR% - $link: news item link (item.link) %BR% - $description: news item description (item.description) %BR% - $date: the publication date (item.pubDate, item.date) %BR% - $category: the article category (item.category) Global FORMAT setting
The `header` and `format` parameters might also use variables rendering the `dc`, `image` and `content` namespace information. Note, that only bits of interest have been implemented so far and those namespaces might not be implemented fully yet. ### Rendering the `dc` namespace The following variables are extracting the `dc` namespace info, that could be used in `header` and `format`. Nnote, that some of the variables are already used above. This is done by purpose to use different feeds with the same formating parameters. If there's a conflict the non-dc tags have higher precedence, i.e. a <title> content </title> is prefered over <dc:title> content </dc:title> . - $title: channel/article title (dc:title) - $creator: channel creator (dc:creator) - $subject: subject text; this will also add an image according to the subject hash list, see [[above|Main/WebHome#Subject_Images]] (dc:subject) - $description: ... (dc:description) - $publisher: the channel/article publisher (dc:publisher) - $contributor: ... (dc:contributor) - $date: ... (dc:date) - $type: ... (dc:type) - $format: ... (dc:format) - $identifier: ... (dc:identifier) - $source: ... (dc:source) - $language: ... (dc:language) - $relation: ... (dc:relation) - $coverage: ... (dc: coverage) - $rights: ... (dc: rights) ### Rendering the `image` namespace An `image:item` is converted into an <img> tag using the following mappings: - `src`: image url (rdf:about attribute of the image.item tag) - `alt`: image title (title) - `width`: image width (image:width) - `height`: image height image:height) ### Rendering the `content` namespace The variable $content is refering to the <content:encoding> content </content:encoding>. ## Examples ### Slashdot News Write %HEADLINES{"http://slashdot.org/slashdot.rdf" header="*[[$link][$title]]:* $description" format="$t* [[$link][$title]]" }% to get the latest Slashdot news as a bullet list format: %HEADLINES\{"http://slashdot.org/slashdot.rdf" header="---+!! [[$title|Main/Link]]$n $description" format="$t\* [[$title|Main/Link]]"\}% ### Business Opportunities Weblog Write %HEADLINES{"http://www.business-opportunities.biz/feed" limit="3"}% to get the latest postings on the "Business Opportunities" weblog: %HEADLINES\{"http://www.business-opportunities.biz/feed" limit="3"\}% ## Plugin Settings Plugin settings are stored as preferences variables. To reference a plugin setting write **%<plugin>\_<setting>%**, for example, **%HEADLINESPLUGIN\_SHORTDESCRIPTION%**. **Note:** Don't modify the settings here; copy and customize the settings in [[Main.TWikiPreferences|Main/TWikiPreferences]]. For example, to customize the USERAGENTNAME setting, create a HEADLINESPLUGIN\_USERAGENTNAME setting in Main.TWikiPreferences. - One line description, shown in the [[TextFormattingRules]] topic: - Set SHORTDESCRIPTION = Show headline news in TWiki pages based on RSS and ATOM news feeds from external sites - Refresh rate in minutes for cached feeds. Disable caching: `0`, default: `60` - Set REFRESH = 60 - Maximum number of items shown. Default: `100` - Set LIMIT = 100 - Use LWP::UserAgent, or fallback to TWiki's internal `getUrl()` method. Default: `yes` - Set USELWPUSERAGENT = yes - Timeout fetching a feed using the LWP::UserAgent. Default: `20` - Set USERAGENTTIMEOUT = 20 - Name of user agent. Default: `TWikiHeadlinesPlugin/2.21` * Set USERAGENTNAME = TWikiHeadlinesPlugin/2.21 - Default header: (variables are explained in the syntax rules) * Set HEADER =
$n---+!! $title
$date
$description
$rights
- Default format of one item: (variables are explained in the syntax rules) * Set FORMAT =
$n$date $creator $subject $n
$description
- Values taken from configure: (only supported if CPAN:LWP is installed) - `$TWiki::cfg{PROXY}{HOST}` - proxy host, such as `"proxy.example.com";` - `$TWiki::cfg{PROXY}{PORT}` - proxy port, such as `"8080";` - `$TWiki::cfg{PROXY}{SkipProxyForDomains}` - domains excluded from proxy, such as `"intra.example.com, bugs.example.com";` ## Style sheets The default HEADER and FORMAT settings use the following styles. See the [style.css](http://www.dementia.org/twiki//view/style.css) file defining the default CSS properties (indentation illustrates enclosure). - headlinesRss: output of the [[HeadlinesPlugin]] (div) - headlinesChannel: channel header (div) - headlinesLogo: channel logo (div) - headlinesTitle: channel title (div) - headlinesDate: channel date (div) - headlinesDescription: channel description (div) - headlinesRight: channel copyright (div) - headlinesArticle: one news item (div) - headlinesTitle: article title (div) - headlinesDate: article date (span) - headlinesCreator: author of article (span) - headlinesSubject: subect category of the article (span) - headlinesText: article text (div) ## Plugin Installation Instructions - [Download](http://www.dementia.org/twiki//view/%TOPIC%.zip) the ZIP file - Unzip it in your twiki installation directory. Content:
File: Description:
data/TWiki/%TOPIC%.txt plugin topic
pub/TWiki/%TOPIC%/style.css default css
lib/TWiki/%TOPIC%.pm plugin perl module
lib/TWiki/%TOPIC%/Core.pm plugin core
Check if above examples show a news feed instead of variable. - Optionally, run **%TOPIC%\_installer.pl** to automatically check and install other TWiki modules that this module depends on. You can also do this step manually. - Alternatively, manually make sure the dependencies listed in the table below are resolved.
Name Version Description
Digest::MD5 >=2.33 Required. Download from CPAN:Digest::MD5
LWP::UserAgent >=5.803 Optional. Download from CPAN:LWP::UserAgent
## Plugin Info
Plugin Author: TWiki:Main.PeterThoeny, TWiki:Main.MichaelDaum
Copyright: © 2002-2009, Peter Thoeny, TWIKI.NET; 2005-2007, Michael Daum http://wikiring.de
License: GPL (GNU General Public License)
Plugin Version: v2.21 - 12 Feb 2009
Change History:  
12 Feb 2009: {PROXY}{HOST} supports domain with and without protocol -- Peter Thoeny
06 Feb 2009: added {PROXY}{SkipProxyForDomains} configure setting, added USERAGENTNAME plugin setting -- Peter Thoeny
11 Dec 2008: added {PROXY}{HOST} and {PROXY}{PORT} configure settings -- Peter Thoeny
13 Sep 2007: fixed parsing of content:encoded
23 Jul 2006: improved atom parser; if a posting has no title default to 'Untitled'
26 Apr 2006: added lazy compilation
10 Feb 2006: packaged using the TWiki:Plugins/BuildContrib; minor fixes
03 Feb 2006: off-by-one: limit="n" returned n+1 articles; make FORMAT and HEADER format strings more robust
23 Jan 2006: released v2.00
05 Dec 2005: internal feed urls must be absolute
02 Dec 2005: added web.topic shorthand for internal feeds
29 Nov 2005: fixed CDATA handling
21 Nov 2005: added ATOM support; extended RSS support; added dublin core support; added content support; optionally using LWP to fetch feeds to follow redirections; corrected CPAN dependencies ; recoding special chars from html integer to entity encoding to increase browser compatibility; added css support; use getWorkArea() if available
11 May 2005: TWiki:Main.WillNorris: added DevelopBranch compatability
31 Oct 2004: Fixed taint issue by TWiki:Main.AdrianWeiler; small performance improvement
29 Oct 2004: Fixed issue of external caching if mod_perl or SpeedyCGI is used
02 Aug 2002: Implemented caching of feeds, thanks to TWiki:Main/RobDuarte
11 Jun 2002: Initial version (V1.000)
Perl Version: 5.8
TWiki:Plugins/Benchmark: [[TWiki/GoodStyle]] 100%, [[TWiki/FormattedSearch]] 99.5%, %TOPIC% 94%
Plugin Home: TWiki:Plugins/%TOPIC%
Feedback: TWiki:Plugins/%TOPIC%Dev
Appraisal: TWiki:Plugins/%TOPIC%Appraisal
-- TWiki:Main.PeterThoeny - 12 Jan 2009 %BR% -- TWiki:Main.MichaelDaum - 13 Sep 2007