Welcome, Registration, and other StartingPoints; Foswiki history & Wiki style; All the docs...
Edit | Attach | New | Raw | Delete | History | Print | Tools
You are here: System » HeadlinesPlugin

Headlines Plugin


This plugin displays RSS and ATOM feeds from news sites. Use it to build news portals that show headline news.

Note: Syndic8.com ( http://www.syndic8.com/ ) is a good site listing many RSS feeds.

Syntax Rules


ParameterSorted ascending 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
format Format of one item. Can include these variables:
- $title: news item title (item.title)
- $link: news item link (item.link)
- $description: news item description (item.description)
- $date: the publication date (item.pubDate, item.date)
- $category: the article category (item.category)
Global FORMAT setting
header Header. Can include these variables: - $channeltitle, $title: title of channel (channel.title)
- $channellink, $link: link of channel (channel.link)
- $channeldescription, $description: description (channel.description)
- $channeldate, $date: publication date of the channel (channel.pubDate)
- $rights: copyrights of the channel (channel.copyright)
- $imagetitle: title text for site (image.title)
- $imagelink: link for site (image.link)
- $imageurl: URL of image (image.url)
- $imagedescription: description of image (image.description)
Global HEADER setting
href="..." (Alternative to above) N/A
limit="12" Maximum number of items shown Global LIMIT setting
refresh="60" Refresh rate in minutes for caching feed; "0" for no caching Global REFRESH 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 (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>.


Slashdot News


%HEADLINES{"http://slashdot.org/slashdot.rdf" header="---+!! [[$link][$title]]$n $description" format="$t* [[$link][$title]]"}%
to get the latest Slashdot news as a bullet list format:

Business Opportunities Weblog


%HEADLINES{"http://www.business-opportunities.biz/feed" limit="3"}%

to get the latest postings on the "Business Opportunities" weblog:

Wed, 20 Aug 2014 20:48:21 +0000
The original blog about business opportunities and business ideas for small business entrepreneurs
Wed, 20 Aug 2014 20:47:29 +0000 Dane Carlson


Sometimes, great ideas, whether for a new business or a new invention, seem so obvious once someone brings them to life that you wonder why didn’t I think of that? The Bicyclick is just such an invention. It is a simple tool that attaches to the end of a bicycle handlebar, and lets users click a pair of bikes together to help them stand up.

Bicyclick's creators are currently raising funding on Kickstarter.

Wed, 20 Aug 2014 20:42:34 +0000 Dane Carlson

Yam Chops

YamChops is an oxymoron: a vegetarian butcher shop. But, YamChops believes that plant-based proteins can be a staple of any kitchen or diet.

The shop is located at 705 College St, Toronto. If any of our readers would like to stop in and check them out, please report back!

Tue, 19 Aug 2014 22:25:24 +0000 Dane Carlson

The Franchise King® is the alter-ego of franchise ownership advisor and author Joel Libava. In addition to providing straight-shooting advice/coaching on choosing, researching, and buying franchises, Joel is the author Become A Franchise Owner! (Wiley Publishing, 2011). He also writes monthly franchise articles for The Small Business Administration’s Community blog, Small Business Trends (where he’s the “franchise expert in residence”) and Franchise Direct.

In addition to all of the above, he also gives a 100% money-back guarantee on all of his products and services – wow!

He recently took time out of his busy day, well, two busy days, really, to answer some of my questions. (My questions are below in bold.)

Become a Franchise Owner

So, Joel, what is The Franchise King?

It’s my official brand name, and it’s trademarked. It was officially registered and approved by the US Trademark office several years ago.

Ok, I better use the ® mark too. So, where did the idea for The Franchise King® come from?

Tom Sudow, the former director of the Beachwood, Ohio Chamber of Commerce, called me “The Franchise King” (he actually yelled it out at a business expo) and the name stuck.

How did you bring it to life?

My friend, Jim Kukral, who owns and runs http://www.digitalbooklaunch.com/ , strongly encouraged me to get it trademarked and to use it everywhere. He thinks I should wear my crown everywhere I go. I’m not there yet.

Where do you see it (your business) in five years?

Wow. Great question. I still want to consult one-on-one with prospective franchise owners. That’s my passion. I love helping people learn all they can so they can make intelligent decisions on the franchises they’re looking at. And, I want my Franchise Biz Directory to be a serious player in the franchise marketing space.

If you were to start again, what would you do differently?

I would do more outsourcing instead of trying to do everything myself.

What does your typical day look like?


My time is spent:

  • Writing articles for my own web properties
  • Writing paid articles for other websites and blogs
  • Doing marketing work for a select number of franchisors and industry suppliers
  • Promoting my franchise ownership advisory services
  • Promoting The Franchise Biz Directory
  • Adding new listings to the Directory after they’ve been purchased
  • Networking on social media sites
  • Doing client calls on the phone and via Skype
  • Searching for strategic partnerships

What's one trend that really excites you?

I’m really watching the Mobile space. The PC market is shrinking (although I don’t want it to) and it’s going to be interesting to see what our tech geniuses have in store for Mobile viewing and engagement.

What was the worst job you ever had and what did you learn from it?

I worked for an automotive franchise promotions/Direct Mail company. It was a fun job, but the CEO was full of crap, and I knew it when I met him. He seemed to be a bit sleazy. I didn’t trust my gut. It was a disaster. My wife was really mad that I took the job. It lasted 2 months. I learned that I must trust my gut… my instincts. They’re usually correct.

As an entrepreneur, what is the one thing you do over and over and recommend everyone else do?

Write. Write. Then write some more. You can do so much with words these days. Becoming an average writer has opened lots of doors for me, and I’m getting better at it-a day at a time.

What is one failure you had as an entrepreneur, and how did you overcome it?

I tried to start a podcast. Twice.

I spent lots of time and some money learning how to do it. I even made a commitment (publicly) to launch it. Lots of people wanted me to. I didn’t have the patience to do it right. I feel that I let some people down. I’m pretty much okay with not having a podcast now. It’s just not a fit for me. (Even though I used to be an on-air radio announcer back in the day.)

What is one business idea that you're willing to give away to our readers?

Someone needs to start a franchise brokerage that will buy back a failing franchise that one of their brokers placed. In other words, if a franchise broker makes a successful match, and gets paid to do so, if the person he or she put in business is failing and wants out, the brokerage should offer to buy it back and sell it. (And give as much of money back to the former franchisee as possible) That would change everything in franchise brokerage.

If you could change one thing in the world, what would it be and how would you go about it?

I would like to find a way to save more stray and neglected dogs. There are more adoptable dogs around that ever before (it seems) and it’s just so sad to see so many of them euthanized. They are very special animals. They really are man’s best friend…and they should be celebrated as such. How would I do it? Become an advocate and use my influence to make change. I don’t have any specifics yet. Yet.

What are your three favorite online tools or resources and what do you love about them?

I like <easygraphicsmaker.com> It’s an easy-to use tool that can be used to add sales-related graphics to websites.

I love Moz. It’s founder, Rand Fishkin is a genius. I want to meet him, as he seems like good people. Moz provides the best SEO software on the planet.

I love Alltop.com I use it all the time to find current happenings in business and tech. The best blogs in the world are listed on Alltop.com along with hundreds of very specific categories. Bonus: I was able to help Guy Kawasaki’s team put together the franchising section of the site.

What is the one book that you recommend our community should read and why?

Killing Giants by Stephen Denny. It’s a great book for small business owners who want to learn how to compete with the biggest and best companies around. Amazing book.

Killing Giants

Three people we should follow on Twitter and why?

@chrisbrogan – I met Chris through Twitter, and we’ve become friends. Chris is into sharing great stuff and promoting others. He also imparts lots of wisdom in 140 characters or less.

@copyblogger – Brain Clark’s team is amazing. Copywriting and inbound marketing tips are dispensed daily on their Twitter feed. They don’t promote others a lot, but when they do, expect to see things out of the ordinary and first-class.

@smallbiztrends – Anita Campbell puts out an amazing product. Her product: her website, smallbiztrends.com which features the latest and greatest in the world of small business. No spam. Ever.

When was the last time you laughed out loud? What caused it?

Watching a Tonight Show With Johnny Carson interview via YouTube, of the late Robin Williams. Robin Williams was the funniest man ever. And, Johnny Carson was the best in his field.

Who is your hero?

Johnny Carson. I idolized him when I was growing up. He was an artist. To watch him at the top of his game was amazing. I always thought it be cool to host a TV show like that.

Do you (or did you ever) have a mentor?

I’ve had some informal ones. Anita Campbell mentored me a bit (and still does) when I started writing for Small Business Trends 7-8 years ago. She encouraged me and showed me how to write in an authoritative way. Rieva Lesonsky is another informal mentor of mine. I trust her judgment when it comes to business. Carol Roth lets me run ideas and such past her, but I haven’t talked to her for a while-my own fault. Maybe it’s time to have a formal one?

Is there anything I didn’t ask that I should have?

No. You’re quite thorough, Dane.

Tell us a secret.

I only attended college for 8 months.

Bonus Secret: I have ADD.

Thanks Joel! If you’d like to find out more about The Franchise King® you can visit his website, or, you can connect with Joel on Twitter (@FranchiseKing), Facebook or LinkedIn. The Franchise King also publishes his own franchise directory. Check it out here.

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 SitePreferences. For example, to customize the USERAGENTNAME setting, create a HEADLINESPLUGIN_USERAGENTNAME setting in Main.SitePreferences.

  • One line description, shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = Show headline news in Foswiki 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 Foswiki's internal getUrl() method. Default: yes

  • Timeout fetching a feed using the LWP::UserAgent. Default: 20

  • Name of user agent. Default: FoswikiHeadlinesPlugin/2.21.1
      * Set USERAGENTNAME = FoswikiHeadlinesPlugin/2.21.1

  • Default header: (variables are explained in the syntax rules)
      * Set HEADER = <div class="headlinesChannel"><div class="headlinesLogo"><img src="$imageurl" alt="$imagetitle" border="0" />%BR%</div><div class="headlinesTitle">$n---+!! <a href="$link">$title</a></div><div class="headlinesDate">$date</div><div class="headlinesDescription">$description</div><div class="headlinesRight">$rights</div></div>

  • Default format of one item: (variables are explained in the syntax rules)
      * Set FORMAT = <div class="headlinesArticle"><div class="headlinesTitle"><a href="$link">$title</a></div>$n<span class="headlinesDate">$date</span> <span class="headlinesCreator"> $creator</span> <span class="headlinesSubject"> $subject </span>$n<div class="headlinesText"> $description</div></div>

  • Values taken from configure: (only supported if CPAN:LWP is installed)
    • $Foswiki::cfg{PROXY}{HOST} - proxy host, such as "proxy.example.com";
    • $Foswiki::cfg{PROXY}{PORT} - proxy port, such as "8080";
    • $Foswiki::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 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 the ZIP file
  • Unzip it in your foswiki installation directory. Content:
    File: Description:
    data/System/HeadlinesPlugin.txt plugin topic
    pub/System/HeadlinesPlugin/style.css default css
    lib/Foswiki/HeadlinesPlugin.pm plugin perl module
    lib/Foswiki/HeadlinesPlugin/Core.pm plugin core
    Check if above examples show a news feed instead of variable.
  • Optionally, run HeadlinesPlugin_installer.pl to automatically check and install other Foswiki 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.
    Digest::MD5>=2.33Required. Download from CPAN:Digest::MD5
    LWP::UserAgent>=5.803Optional. Download from CPAN:LWP::UserAgent

Plugin Info

Plugin Author: TWiki:Main.PeterThoeny, Foswiki:Main.MichaelDaum (2005-2007)
Copyright: © 2002-2009, Peter Thoeny, TWIKI.NET; 2005-2007, Michael Daum http://wikiring.de
License: GPL (GNU General Public License)
Plugin Version: 2.21.1 (08 Mar 2009)
Change History:  
08 Mar 2009: Ported without changes to Foswiki namespace by Kenneth Lavrsen and put under "Feel Free To Modify" in Foswiki context.
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.008
Plugin Home: http://foswiki.org/Extensions/HeadlinesPlugin
Feedback: http://foswiki.org/Extensions/HeadlinesPluginDev
Copyright © 2014 Atomikos BVBA. Transaction Management for Extreme Transaction Processing and SOA Environments serving ISV, Commercial, OEM and Open Source Markets
Site map RSS ATOM