create new tag
, view all tags

Headlines Plugin

Show headline news in TWiki pages based on RSS and ATOM news feeds from external sites


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


  • RSS (Rich Site Summary) is an XML standard used to publish frequently updated works such as blog entries, news headlines and audio.
  • Atom is an XML syndication format used for web feeds.
  • Syndic8.com at http://www.syndic8.com/ lists many RSS and ATOM feeds.

Syntax Rules


Parameter Explanation Default
"..." Source of RSS or ATOM 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. May 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
format="..." Format of one item. May 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
touch="..." Touch (edit/save) topics if the feed has updates. Specify a comma-space delimited list of TopicNames or Web.TopicNames, such as "%TOPIC%, NewsLetter". Useful to send out newsletter using MailerContrib, showing new feeds since last newsletter. To update feeds, visit topics with feeds in regular intervals (using cron with wget or the like). N/A

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. Note that some of the variables are already used above. This is done by purpose to use different feeds with the same formatting parameters. If there's a conflict the non-dc tags have higher precedence, i.e. a <title> content </title> is preferred 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 referring to the <content:encoding> content </content:encoding>.


Slashdot News


%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:

Business Opportunities Weblog


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

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

Sat, 30 May 2020 21:37:52 +0000
The original blog about business opportunities and business ideas for small business entrepreneurs
Sat, 30 May 2020 21:37:50 +0000 Carrol Strain
Featured image by Harry Strauss from Pixabay 

What does the reopening of the UK property market mean for UK homeowners and buyers? We look into this question here.

As part of the government’s response to mitigate and control the spread of the coronavirus, the month of March saw the banning of property viewings and valuations on properties in the UK. Some 350,000 transactions were put on hold due to the lockdown. With that, the promising performance of the UK property market at the beginning of 2020 therefore halted and regressed.


After six-and-a-half weeks of suspended transactions, the property market in the UK is finally opening, slowly but surely. While this news is promising, anyone hoping for a quick bounce back will be disappointed.

What Does Reopening Mean for Homeowners and Buyers?

It is safe to say much has changed. Sellers can place their property on the market again, and potential buyers can now view potential new homes. However, the process of completing a transaction is still at the mercy of social distancing measures.

The Reopening Happened Suddenly for Estate Agents

After the government released the list of essential businesses at the beginning of the shutdown, non-essential businesses, such as estate agents had to close. Then, as the government announced measures to kick-start the economy back into action, they lifted restrictions on the housing market. Estate agents went back into action.

The sudden and unexpected firing up of the housing market took estate agents and trade bodies up and down the country by surprise. They had initially expected a phased restart. But the markets suddenly opened. And estate agents throughout the UK witnessed significant demand for properties within the first hour of opening.

The demand for property has sky-rocketed with the reopening of the market. However, this usually lightly regulated market is now facing significant oversight to ensure the safety of all parties involved.

How Is the Property Market Dealing with Social Distancing?

The housing market across the globe is one of the most unique sectors. For one thing, it requires members of staff and possible customers to enter someone's home and intimate space. This is the space the government identifies as the battleground for combating the virus.

To keep the market flowing and allow transactions to be completed, sellers and agents need to provide virtual tours for potential buyers before the final in-person viewing.

The reasoning behind such a measure is obvious. It allows the process of the transaction to continue while limiting contact for sellers, buyers, and agents. However, transactions cannot be completed without some form of physical viewing.

To provide a safe environment, estate agents have had to put measures in place to safeguard all parties. Such measures have included:

  • Some agents ask buyers to sign a health declaration
  • Everyone is subject to temperature checks when they arrive for the final viewing
  • When in the property, everyone wears gloves and masks
  • Everyone ensures they keep some distance from other parties

What Does Reopening Mean for Sales in the UK Housing Market?

It is hard to predict how these measures will affect the number of sales in the UK property market.

Before the announcement of the reopening, experts across the property industry had widely predicted the heart of the slowdown for the housing market would likely occur in May and June. In fact, Zoopla estimated a 60% drop in transactions during this period.

Experts and analysts now express doubt that any sort of rebound in the market can occur until social distancing measures come to an end. However, as the housing market has now officially opened again, those same experts will be paying close attention to how the market actually responds.

How Does This Translate for Homeowners?

For anyone looking to sell their home, the decision to reopen the property market will be welcome news-until they receive the first offer from potential buyers.

Naturally, offers on a property will be somewhat lower than the original valuation of that property. For many, this is where a stand-off will take place. So how can you overcome the core issue of price disputes?

Although traditional estate agents are well-versed in this sort of dispute, homeowners who are looking to sell their house quickly are turning toward online estate agents. Here, they find a fast and effective solution.


Online estate agents are more than likely to help homeowners achieve a quick sale of their property. In fact, some guarantee a sale in 30 days or less. Additionally, they also provide the homeowner with a fair final sale price on their property.

The post How Will Reopening Affect the UK Property Market? appeared first on Business Opportunities.

Sat, 30 May 2020 17:52:16 +0000 Carrol Strain
Featured image by NordWood Themes on Unsplash

One of the most difficult tricks in the world of search engine optimization is writing commercial content. It is particularly challenging to write product content that earns a strong organic ranking on Google.

The reason creating product page content that ranks well is so difficult is because people search for that type of content when they're ready to buy. Therefore, every other business in your industry is trying to rank well for those same keywords-and the competition is intense.

Here's how to write product content that ranks well on Google.

Most Businesses Follow the Same General Rules

For a new business in almost any field, the standard strategy for achieving strong search rankings and generating organic traffic goes something like this:

  • Write the best product content that you can, but don't expect it to rank well right off the bat.
  • Concentrate on creating the best non-commercial blog content possible. It's easier to earn strong organic rankings for non-commercial content, and if the content is sufficiently helpful, it'll earn links that eventually improve the rankings of your commercial content.
  • In the meantime, generate traffic for your commercial content by bidding on AdWords keywords.

But Some Cannot

There are businesses in some industries, however, that can't follow that strategy because they can't bid on AdWords. For example, vaping businesses like E-Cigarette Empire fall into that category. Even without the ability to bid on AdWords, though, the most successful vaping businesses receive plenty of organic traffic anyway. How do they do it?

As it turns out, it is not impossible to write product content that ranks well. This is true even if your website is new and doesn't have high domain authority yet. It isn't easy, though. Moreover, it may require you to put far more effort into your product pages than you currently do.

Don't Copy Product Text from Other Sources

Without question, the absolute worst thing that you can do is copy your product descriptions from other sources. For example, it might seem a natural to copy product content from the products' manufacturers or competing retailers. But don’t do that.

First of all, you don't own that content and you don't have permission to use it. Secondly, that content is unlikely to generate any traffic.

Google's search engine works by scanning and indexing all of the text content on the web. When people type keywords, Google attempts to suggest pages on the web with text that will answer those queries. If you use copied text on a product page, Google has no reason to suggest your page as the answer for a query. Why would Google do that when its index already has at least one other page that provides exactly the same information?

If you want your product pages to generate organic traffic, the text absolutely must be original.

Make Product Content as Long and Informative as Possible

Google is a search engine that works on text. It scans the content of pages on the web and attempts to understand the text and connect it to keyword-based searches. The more text a web page has, the more keywords it has. Therefore, the greater chance it has to earn high organic ranks for lots of different searches.


Also, long content is informative content, and content length has been shown to correlate strongly with high organic rankings on Google. However, creating lengthy product text takes more effort. Unless you happen to have a background in writing, you may find yourself experiencing frequent cases of writer's block.

Answer These Questions to Write Longer Product Content

Are you having trouble coming up with a sufficiently large volume of text for a product page? Then check the text to ensure that you've answered these key questions.

  • What is the product?
  • What does the product do?
  • How does the product work?
  • What pain points or problems does the product resolve?
  • What's the best way to have a great experience with the product?
  • What are the product's features and specifications?
  • How does the product differ from competing companies' offerings?
  • How does the product differ from other offerings on your site?

Ultimately, the core goal of any product page is to convince a website visitor that the product he or she is viewing is absolutely perfect for his or her needs. In case the product isn't perfect for that customer, though, you should also use the product page as an opportunity to help website visitors discover other products on your site.

Use Question Phrases on Product Pages

More than ever, people are searching Google not just by typing keywords, but by asking actual questions. Smartphone voice assistants have helped to drive that trend. What’s more, Google has been preparing for question-based searching for years.

For example, they have enhanced the search engine's ability to understand and process complete sentences. Therefore, it is wise to optimize your product pages for voice searching. Do this by putting at least some of the information in a question-and-answer format.

Use High-Quality Original Photography Alongside Product Text

When you're trying to sell a product, the best way to do that isn't with words. It's by showing the product to prospective customers. People want to see the product before they buy it. So make sure every product page has the highest-quality photography possible. That's not just for the user experience, though. It's also for SEO.

Google has the ability to recognize photos that are similar to-or the same as-photos that are already in its index. If your product photos are the same as some that are already available elsewhere, those photos probably won't appear in Google's image search. And people definitely use image search when they're shopping for products.

If you have the ability to create videos demonstrating how to use your products, you should strongly consider doing so. When it comes to showing how to use a product, or showing how well a product works, nothing works as well as video.


Optimize the Product Page for Easy Scanning

Putting a large volume of text on your product pages might be good for search rankings. However, it's only good for the user experience if the text is laid out in a way that makes sense and is easy to scan.

Therefore, use elements like grids, charts, bullet points, and subheadings liberally. This helps to maintain the viewer’s attention and make content easy to understand. Google's ranking algorithm notes good content organization and uses it as a ranking factor. Good product organization makes bots happy-and it's also good for the user’s experience.

Learn more about optimizing your online store or blog to attract the attention of search engines by bookmarking our blog and visiting often.

The post How to Write Product Content That Ranks Well on Google appeared first on Business Opportunities.

Plugin Settings

Plugin settings are stored as preferences settings. Do not change the settings here, they are here only for illustration purposes showing the default values. Define the settings in Main.TWikiPreferences. For example, to customize the HEADLINESPLUGIN_USERAGENTNAME setting, add a * Set HEADLINESPLUGIN_USERAGENTNAME = ... bullet in Main.TWikiPreferences.

  • Refresh rate in minutes for cached feeds. Set to 0 to disable caching:

  • Maximum number of items shown:

  • Use LWP::UserAgent if set to 1, or fallback to TWiki's internal getUrl() method if set to 0:

  • Timeout fetching a feed using the LWP::UserAgent:

  • Name of user agent:
    • Set HEADLINESPLUGIN_USERAGENTNAME = TWikiHeadlinesPlugin/2011-07-08

  • Default header: (variables are explained in the syntax rules)
      * Set HEADLINESPLUGIN_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 HEADLINESPLUGIN_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)
    • $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 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

This is a pre-installed plugin. TWiki administrators can upgrade the plugin as needed on the TWiki server.

Note: You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the plugin on the TWiki server.

  • For an automated installation, run the configure script and follow "Find More Extensions" in the in the Extensions section.

  • Or, follow these manual installation steps:
    • Download the ZIP file from the Plugins home (see below).
    • Unzip HeadlinesPlugin.zip in your twiki installation directory. Content:
      File: Description:
      data/TWiki/HeadlinesPlugin.txt Plugin topic
      pub/TWiki/HeadlinesPlugin/style.css Default CSS
      lib/TWiki/Plugins/HeadlinesPlugin.pm Plugin Perl module
      lib/TWiki/HeadlinesPlugin/Core.pm Plugin core
    • Set the ownership of the extracted directories and files to the webserver user.
    • 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 configuration and testing:
    • Run the configure script, enable the plugin in the Plugins section
    • Configure the plugin: See plugin settings above.
    • Test if the installation was successful: See example above.

Plugin Info

  • 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

Plugin Author: TWiki:Main.PeterThoeny, TWiki:Main.MichaelDaum
Copyright: © 2002-2013 Peter Thoeny, TWiki.org
© 2005-2007 Michael Daum wikiring.de
License: GPL (GNU General Public License)
Plugin Version: 2013-02-16
2013-02-16: TWikibug:Item7091: Use TWISTY in installation instructions section and change history
2013-01-29: TWikibug:Item7131: HeadlinesPlugin doesn't match pattern in multiple lines.
2012-12-10: TWikibug:Item7070: HeadlinesPlugin doesn't support multiple disks.
2012-11-13: TWikibug:Item7016: Restore changes for earlier versions with LWP
2012-11-13: TWikibug:Item7020: Categorize TWiki Variable
2012-10-31: TWikibug:Item7016: Utilize <guid> value when it is available
2012-09-05: TWikibug:Item6837: Doc fixes
2011-07-17: TWikibug:Item6764: Add VarHEADLINES variable documentation; doc improvements; setting NO_PREFS_IN_TOPIC
2011-07-08: TWikibug:Item6725: Change global package variables from "use vars" to "our"
2010-05-16: TWikibug:Item6433: More doc improvements
2010-04-25: TWikibug:Item6433: Doc fix: Changing TWIKIWEB to SYSTEMWEB
2010-02-27: TWikibug:Item6313: Fixed bug in ATOM feed with <link ...></link> instead of <link ... /> -- Peter Thoeny
2009-09-30: fixed bug in lastBuildDate of feeds affecting touch parameter functionality -- Peter Thoeny
2009-08-29: added touch parameter -- Peter Thoeny
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
Plugin Benchmark: GoodStyle 100%, FormattedSearch 99.5%, HeadlinesPlugin 94%
Plugin Home: http://TWiki.org/cgi-bin/view/Plugins/HeadlinesPlugin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/HeadlinesPluginDev
Appraisal: http://TWiki.org/cgi-bin/view/Plugins/HeadlinesPluginAppraisal

Related Topics: VarHEADLINES, TWikiPlugins, AdminDocumentationCategory, TWikiPreferences

Topic revision: r8 - 2013-02-16 - 18:01:51 - TWikiContributor
Copyright © 1999-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Note: Please contribute updates to this topic on TWiki.org at TWiki:TWiki.HeadlinesPlugin.