How can I list blog entries on my non-blog web page?
The short answer is that I’m afraid it’s not just some simple HTML.
It will take some server-side code to do it. The good news is that
since most blogging software now automatically provides an RSS feed in
one form or another, that feed is a great source for what you want to
display. The additional code on your server transforms that feed into
HTML that works on your site and then you display the results.
If your pages are already being generated by something dynamic like
PHP or ASP, then the best way to accomplish what you want is to add the
transformation code to the desired page directly. As one example I’ve
included an VBScript function below, displayRSS, that I’ve used in ASP
pages. It takes pointers to an RSS Feed and an XSLT transformation
applies the transformation and returns the results for display. XSLT
is a programming language highly optimized for transforming structured
XML data, which is what an RSS feed is, into other forms such as HTML.
A simple transformation can return all or portions of the information
contained within the feed.
If your pages are static you’re not sunk as long as you have access
to some form of CGI to run server-side code. I’ve created an example
that runs as a CGI that will transform an RSS feed into an HTML bullet
list. As an alternative to using XSLT, grabrss uses only an XML parser
and pulls apart the component fields we might care about and pushes out
the HTML as a series of jscript “document.writeln” statements. In your
static HTML page just include:
<script language="jscript" src="http://yourserver/cgibin/grabrss.pl">
This will include the script and execute it in place resulting in the
HTML bullet list being displayed. As I said, grabrss is an example. I’m
sure not everyone wants a bullet list, but it should be easy to modify
to output the HTML specifics that you want.
You can get a copy of grabrss.pl
DisplayRSS, the ASP sample, follows here:
Become a Patron of Ask Leo! and go ad-free!
Function displayRSS(ByVal strSource, ByVal strXSL) Dim xmlHTTP, xmlRSSSource, xmlStyle Dim strXSLFile ' Use the XMLHTTPConnection object to grab the feed Set xmlHTTP = Server.CreateObject("Microsoft.XMLHTTP") xmlHTTP.Open "GET", strSource, False xmlHTTP.Send ' Load the feed into a DOM object Set xmlRSSSource = Server.CreateObject("Microsoft.XMLDOM") xmlRSSSource.async = False xmlRSSSource.loadXML(xmlHTTP.ResponseText) ' Load the XSL style sheet strXSLFile = Server.MapPath(strXSL) Set xmlStyle = Server.CreateObject("Microsoft.XMLDOM") xmlStyle.async = False xmlStyle.load(strXSLFile) ' Render the feed using the style sheet displayRSS = xmlRSSSource.transformNode(xmlStyle) ' Release resources Set xmlStyle = Nothing Set xmlRSSSource = Nothing Set xmlHTTP = Nothing End Function