<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Domtheo</id>
	<title>Microformats Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Domtheo"/>
	<link rel="alternate" type="text/html" href="https://microformats.org/wiki/Special:Contributions/Domtheo"/>
	<updated>2026-04-04T14:17:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=rest/ahah&amp;diff=60019</id>
		<title>rest/ahah</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=rest/ahah&amp;diff=60019"/>
		<updated>2013-08-20T06:36:16Z</updated>

		<summary type="html">&lt;p&gt;Domtheo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AHAH: Asynchronous HTML and HTTP =&lt;br /&gt;
&lt;br /&gt;
AHAH is a very simple technique for dynamically updating web pages using fragments which are then inserted directly into the web page, whence they can be styled using&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
* [http://subconscious-therapy.com/hipnoterapi-surabaya Hipnoterapi surabaya]&lt;br /&gt;
* [http://www.tiraimodern.com/product/vertical-blind Vertical blind]&lt;br /&gt;
* [http://www.detikauto.com Variasi mobil]&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
* Has anyone considered working with browser vendors to have them support client-side includes? This way, markup like &amp;amp;lt;div src=&amp;quot;hello-world.txt&amp;quot; /&amp;amp;gt; would just work. This avoids the need for client side script and ensures the browser can correctly manage connections, caching, authentication, etc. For backwards compatibility, you could create a little javascript utility to scan for all occurrences of tags like this, queue up the requests and let the content flow in after the page was loaded. I have a little csi.js utility that does this and it's pretty handy.  || Yes, Div Includes is a good concept (fraught with all the usual security issues), but the real power of includes is when they are used dynamically in response to user interaction.  For purely static pages it is much more efficient to have the server create them using something like shtml or php.  The ability to create/update a Div include via JS is where this proposed technique would be a fantastic improvement on the mess that we have now. &lt;br /&gt;
  &lt;br /&gt;
* Okay, maybe this is a dumb question, but I don't understand why this is called AHAH instead of AJAH.  AHAH still uses the same XMLHttpRequest JavaScript functionality as AJAX, so why drop the J?  AJAX uses the same HTTP functionality as AHAH, so why add the H?  Have I misunderstood what is actually happening? (You are right of course, but Ahah! == Eureka!!! and AJah = ?)&lt;br /&gt;
&lt;br /&gt;
== Relation to AJAX ==&lt;br /&gt;
&lt;br /&gt;
AHAH is intended to be a much simpler way to do &amp;quot;Asynchronous JavaScript and XML.&amp;quot;  Strictly speaking, AHAH can be considered a subset of AJAX, since (X)HTML is just a special kind of XML.  However, it is a subset with some very specific and useful properties:&lt;br /&gt;
# The lack of custom XML schemas dramatically reduces design time&lt;br /&gt;
# AHAH can trivially reuse existing HTML pages, avoiding the need for a custom web service&lt;br /&gt;
# All data transport is done via browser-friendly HTML, easing debugging and testing&lt;br /&gt;
# The HTML is designed to be directly embedded in the page's DOM, eliminating the need for parsing&lt;br /&gt;
# As HTML, designers can format it using CSS, rather than programmers having to do XSLT transforms&lt;br /&gt;
# Processing is all done on the server, so the client-side programming is essentially nil (moving opaque bits)&lt;br /&gt;
&lt;br /&gt;
In fact, for any content that is destined to be viewed by the browser, it is virtually impossible to imagine any advantage to sending it as custom XML rather than structurally-correct HTML (with appropriate CSS-friendly class names, of course).&lt;br /&gt;
&lt;br /&gt;
That said, many applications of AJAX are (at least in theory) targeteable at custom JavaScript code or desktop GUIs rather than mere browsers.  For those cases, the advantages of HTML over custom XML are somewhat less.  However, even here, it may well make sense to encode data using [[xoxo]] -- aka XHTML Property Lists -- which can be losslessly converted back and forth from standard data structures (lists and dictionaries) without the need for custom parsers.&lt;br /&gt;
&lt;br /&gt;
== Source Code ==&lt;br /&gt;
Unlike the various libraries important for AJAX, all of AHAH is contained in a single JavaScript file (also available.  In fact, this is little more than the canonical XMLHttpRequest example, and is simple enough for any modern web designer to embed within their existing web pages.&lt;br /&gt;
&lt;br /&gt;
NOTE: The example ahah.js mentioned here has the unfortunate requirement (if the delay argument is not undefined) that url,target,delay must be global variables (which makes one wonder why they are passed as parameters....).  If you don't want to use globals, and want this to actually work, use something like: setTimeout( 'ahah( &amp;quot;' + url + '&amp;quot;, &amp;quot;' + target + '&amp;quot;, ' + delay + ')', delay );   Fair warning. &lt;br /&gt;
&lt;br /&gt;
=== Send AHAH Request ===&lt;br /&gt;
&lt;br /&gt;
 function ahah(url,target) {&lt;br /&gt;
     document.getElementById(target).innerHTML = 'loading data...';&lt;br /&gt;
     if (window.XMLHttpRequest) {&lt;br /&gt;
         req = new XMLHttpRequest();&lt;br /&gt;
         req.onreadystatechange = function() {ahahDone(target);};&lt;br /&gt;
         req.open(&amp;quot;GET&amp;quot;, url, true);&lt;br /&gt;
         req.send(null);&lt;br /&gt;
     } else if (window.ActiveXObject) {&lt;br /&gt;
         req = new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;);&lt;br /&gt;
         if (req) {&lt;br /&gt;
             req.onreadystatechange = function() {ahahDone(target);};&lt;br /&gt;
             req.open(&amp;quot;GET&amp;quot;, url, true);&lt;br /&gt;
             req.send();&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
Note the workaround needed for IE's ActiveX implementation.  The current version hard-codes GET; there may be value in adding an extra parameter to allow POST, PUT, and DELETE.&lt;br /&gt;
&lt;br /&gt;
=== Receive AHAH Request ===&lt;br /&gt;
&lt;br /&gt;
 function ahahDone(target) {&lt;br /&gt;
    // only if req is &amp;quot;loaded&amp;quot;&lt;br /&gt;
    if (req.readyState == 4) {&lt;br /&gt;
        // only if &amp;quot;OK&amp;quot;&lt;br /&gt;
        if (req.status == 200 || req.status == 304) {&lt;br /&gt;
            results = req.responseText;&lt;br /&gt;
            document.getElementById(target).innerHTML = results;&lt;br /&gt;
        } else {&lt;br /&gt;
            document.getElementById(target).innerHTML=&amp;quot;ahah error:\n&amp;quot; +&lt;br /&gt;
                req.statusText;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Other than error checking, the only real work done is:&lt;br /&gt;
&lt;br /&gt;
 document.getElementById(target).innerHTML = results;&lt;br /&gt;
&lt;br /&gt;
Everything else (e.g., CSS-styling) is merely inherited from the parent webpage.&lt;br /&gt;
&lt;br /&gt;
=== Executing Javascript ===&lt;br /&gt;
&lt;br /&gt;
Since the browser won't execute &amp;lt;script&amp;gt; tags when changing innerHTML, you may want to apply the following function call on document.getElementById(target):&lt;br /&gt;
&lt;br /&gt;
 var bSaf = (navigator.userAgent.indexOf('Safari') != -1);&lt;br /&gt;
 var bOpera = (navigator.userAgent.indexOf('Opera') != -1);&lt;br /&gt;
 var bMoz = (navigator.appName == 'Netscape');&lt;br /&gt;
 function execJS(node) {&lt;br /&gt;
   var st = node.getElementsByTagName('SCRIPT');&lt;br /&gt;
   var strExec;&lt;br /&gt;
   for(var i=0;i&amp;lt;st.length; i++) {     &lt;br /&gt;
     if (bSaf) {&lt;br /&gt;
       strExec = st[i].innerHTML;&lt;br /&gt;
     }&lt;br /&gt;
     else if (bOpera) {&lt;br /&gt;
       strExec = st[i].text;&lt;br /&gt;
     }&lt;br /&gt;
     else if (bMoz) {&lt;br /&gt;
       strExec = st[i].textContent;&lt;br /&gt;
     }&lt;br /&gt;
     else {&lt;br /&gt;
       strExec = st[i].text;&lt;br /&gt;
     }&lt;br /&gt;
     try {&lt;br /&gt;
       eval(strExec.split(&amp;quot;&amp;amp;lt;!--&amp;quot;).join(&amp;quot;&amp;quot;).split(&amp;quot;--&amp;amp;gt;&amp;quot;).join(&amp;quot;&amp;quot;));&lt;br /&gt;
     } catch(e) {&lt;br /&gt;
       alert(e);&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== JavaScript Notes: ====&lt;br /&gt;
* IE always returns tags in UPPER CASE, so you must search for SCRIPT and not script.  Keep your SCRIPT tags in upper case for Firefox compatibility.&lt;br /&gt;
* Do not use // comments, use /* */ instead.  The eval executes all your javascript as though it was on one line, so you must end each statement with a semicolon (;).&lt;br /&gt;
* Any functions declared in your JavaScript will go out of scope once the eval statement completes.  It is possible to keep them in scope by attaching them as a method to a function that was defined at the document level.&lt;br /&gt;
&lt;br /&gt;
== Indexing ==&lt;br /&gt;
&lt;br /&gt;
Another advantage of AHAH is that the dynamic XHTML content can be easily indexed by search engines; this avoids the need to inline all the dynamic content as hidden divs, which would increase page load times.&lt;br /&gt;
&lt;br /&gt;
The current best practice for doing this is to:&lt;br /&gt;
* included &amp;amp;lt;link&amp;gt; tags in &amp;amp;lt;head&amp;gt; of the parent page, to reference the various URLs retrieved by AHAH&lt;br /&gt;
* include &amp;amp;lt;redirects&amp;gt; in the outer HTML of the AHAH page, so that search hits go to an appropriate anchor on the parent  page&lt;br /&gt;
&lt;br /&gt;
It is possible that some crawlers will automatically index the URLs in the JavaScript calls, if recognized as such (e.g., due to the &amp;quot;html&amp;quot; extension, or if it is an absolute URL), though it is not clear how well this would work.&lt;br /&gt;
&lt;br /&gt;
== Meta tags ==&lt;br /&gt;
&lt;br /&gt;
One odd characteristic of &amp;lt;tt&amp;gt;responseText&amp;lt;/tt&amp;gt; is that it appears to preserve 'meta' and 'link' tags (though apparently not 'head' itself).  This would potentially pollute the browser with illegal HTML, though since they're empty tags it shouldn't affect rendering, and any real-world browsers can be counted on to safely ignore it.  One might want to add JavaScript to strip out the extra data, but that would likely be more overhead than it is worth (unless there is sensitive data in there you don't want curious source-viewers to see).&lt;br /&gt;
&lt;br /&gt;
On the flip side, though, the preservation of meta tags allows the sending of additional key-value pairs, a la  True, it doesn't support more complex data structures, but in many cases it will suffice, and it avoids the security concerns.  For more complex metadata, it is probably better to use [[xoxo]] (perhaps with JSON conventions).&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;AHAH&amp;quot; as a formal technique appears to have been introduced by Kevin Marks on May 12, 2005 under the name: &amp;quot;Just Asynchronous HTML&amp;quot;, where it was also used in.  The term &amp;quot;AHAH&amp;quot; was proposed by Ernest Prabhakar during the 2005 conference, and later adopted as part of the REST-Enabled XHTML microformat for web services.&lt;br /&gt;
&lt;br /&gt;
David Hansson had independently discovered the exact same concept, and in fact had already submitted an abstract about it for O'Reilly's 2006 conference when he encountered the work done by Marks and Prabhakar.  He had not however named the technique, and quickly agreed to adopt the AHAH moniker.  The same concept has no doubt been independently discovered by others, but these three appear to be the first to make a sustained attempt to promote it as a formal technique.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
* Sample available from Ernie Prabhakar, extending work by Kevin Marks.&lt;br /&gt;
* There is some talk of directly supporting AHAH in&lt;br /&gt;
* has implemented&lt;br /&gt;
* has performed AHAH original function&lt;br /&gt;
* published an article about his AHAH/Hijax framework &amp;quot;OutPost&amp;quot; on October 6, 2005 at.&lt;br /&gt;
* has modified the code to support multiple simultaneous outstanding AHAH requests.&lt;/div&gt;</summary>
		<author><name>Domtheo</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hatom-examples&amp;diff=59955</id>
		<title>hatom-examples</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hatom-examples&amp;diff=59955"/>
		<updated>2013-08-20T03:16:05Z</updated>

		<summary type="html">&lt;p&gt;Domtheo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;hAtom examples&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples of [[hatom]] - '''Work in progress!'''&lt;br /&gt;
&lt;br /&gt;
= Contributors =&lt;br /&gt;
* [http://www.propertykita.com/rumah.html Rumah dijual]&lt;br /&gt;
* [http://www.detikauto.com Aksesoris mobil]&lt;br /&gt;
* [http://subconscious-therapy.com/hipnoterapi-surabaya Hipnoterapi surabaya]&lt;br /&gt;
* [http://www.tiraimodern.com/product/vertical-blind Vertical blind]&lt;br /&gt;
* [http://www.raywhitesemarang.com Properti semarang]&lt;br /&gt;
&lt;br /&gt;
= Transformation 1 =&lt;br /&gt;
&lt;br /&gt;
A well behaved weblog.&lt;br /&gt;
&lt;br /&gt;
Original:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;wrap&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div id=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;div class=&amp;quot;entry&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h3 id=&amp;quot;post-60&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;a href=&amp;quot;http://www.microformats.org/blog/...&amp;quot; rel=&amp;quot;bookmark&amp;quot; title=&amp;quot;...&amp;quot;&amp;gt;Wiki Attack&amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;We had a bit of trouble with ...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;We&amp;amp;#8217;ve restored the wiki and ...&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;If anyone is working to combat said spammers ...&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;h4 class=&amp;quot;tags&amp;quot;&amp;gt;Technorati Tags:&amp;lt;/h4&amp;gt;&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;tags&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://technorati.com/tag/mediawiki&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;mediawiki&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://technorati.com/tag/microformats&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;microformats&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;http://technorati.com/tag/spam&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;spam&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;post-info&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&lt;br /&gt;
      &amp;lt;a href=&amp;quot;http://www.microformats.org/blog/...&amp;quot; rel=&amp;quot;bookmark&amp;quot; title=&amp;quot;...&amp;quot;&amp;gt;October 10th, 2005&amp;lt;/a&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&lt;br /&gt;
      &amp;lt;address class=&amp;quot;vcard&amp;quot;&amp;gt;&amp;lt;a class=&amp;quot;url fn&amp;quot; href=&amp;quot;http://theryanking.com&amp;quot;&amp;gt;Ryan King&amp;lt;/a&amp;gt;&amp;lt;/address&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&lt;br /&gt;
      &amp;lt;a href=&amp;quot;http://www.microformats.org/blog/...&amp;quot;&amp;gt;4 Comments&amp;lt;/a&amp;gt;&lt;br /&gt;
     &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   &amp;lt;div class=&amp;quot;entry&amp;quot;&amp;gt;&lt;br /&gt;
   ....&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformed to hAtom compliant:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div id=&amp;quot;wrap&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;div &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;hfeed&amp;quot;&amp;lt;/span&amp;gt; id=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;amp;lt;div class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;hentry&amp;lt;/span&amp;gt; entry&amp;quot; &amp;lt;span class=&amp;quot;change&amp;quot;&amp;gt;id&amp;lt;/span&amp;gt;=&amp;quot;post-60&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;h3 class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;entry-title&amp;lt;/span&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.microformats.org/blog/...&amp;quot; rel=&amp;quot;bookmark&amp;quot; title=&amp;quot;...&amp;quot;&amp;gt;Wiki Attack&amp;amp;lt;/a&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/h3&amp;gt;&lt;br /&gt;
     &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;div class=&amp;quot;entry-content&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;amp;lt;p&amp;gt;We had a bit of trouble with ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;amp;lt;p&amp;gt;We&amp;amp;#8217;ve restored the wiki and ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;amp;lt;p&amp;gt;If anyone is working to combat said spammers ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;amp;lt;h4 class=&amp;quot;tags&amp;quot;&amp;gt;Technorati Tags:&amp;amp;lt;/h4&amp;gt;&lt;br /&gt;
     &amp;amp;lt;ul class=&amp;quot;tags&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;amp;lt;li&amp;gt;&amp;amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;technorati.com/tag/mediawiki&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;mediawiki&amp;amp;lt;/a&amp;gt;&amp;amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;amp;lt;li&amp;gt;&amp;amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;technorati.com/tag/microformats&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;microformats&amp;amp;lt;/a&amp;gt;&amp;amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;amp;lt;li&amp;gt;&amp;amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;technorati.com/tag/spam&amp;quot; rel=&amp;quot;tag&amp;quot;&amp;gt;spam&amp;amp;lt;/a&amp;gt;&amp;amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;amp;lt;ul class=&amp;quot;post-info&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;amp;lt;li&amp;gt;&lt;br /&gt;
       &amp;amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.microformats.org/blog/...&amp;quot; rel=&amp;quot;bookmark&amp;quot; &lt;br /&gt;
         title=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;2005-10-10T14:07:00-07:00&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;October 10th, 2005&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;/a&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;amp;lt;li&amp;gt;&lt;br /&gt;
       &amp;amp;lt;address class=&amp;quot;vcard &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;author&amp;lt;/span&amp;gt;&amp;quot;&amp;gt;&amp;amp;lt;a class=&amp;quot;url fn&amp;quot; href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;theryanking.com&amp;quot;&amp;gt;Ryan King&amp;amp;lt;/a&amp;gt;&amp;amp;lt;/address&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;amp;lt;li&amp;gt;&lt;br /&gt;
       &amp;amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.microformats.org/blog/...&amp;quot;&amp;gt;4 Comments&amp;amp;lt;/a&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/li&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;amp;lt;div class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;hentry&amp;lt;/span&amp;gt; entry&amp;quot; &amp;lt;span class=&amp;quot;change&amp;quot;&amp;gt;id&amp;lt;/span&amp;gt;=&amp;quot;post-59&amp;quot;&amp;gt;&lt;br /&gt;
    ....&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
   &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;hfeed&amp;quot;&amp;lt;/code&amp;gt; to Feed&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;hentry&amp;quot;&amp;lt;/code&amp;gt; to Entry&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;entry-title&amp;quot;&amp;lt;/code&amp;gt; to Entry Title&lt;br /&gt;
* Moved &amp;lt;code&amp;gt;id=&amp;quot;###&amp;quot;&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;&amp;amp;lt;h3&amp;gt;&amp;lt;/code&amp;gt; to Entry&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;div class=&amp;quot;entry-content&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;/code&amp;gt; around the Entry Content&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;YYYY-MM-DDThh:mm:ss+ZZ:ZZ&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/code&amp;gt; around the Entry Datetime&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;author&amp;quot;&amp;lt;/code&amp;gt; to &amp;amp;lt;address&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also note:&lt;br /&gt;
* We did not need to add a &amp;lt;code&amp;gt;&amp;amp;lt;address&amp;gt;&amp;lt;/code&amp;gt; element&lt;br /&gt;
* We did not need to add a &amp;lt;code&amp;gt;&amp;amp;lt;h#&amp;gt;&amp;lt;/code&amp;gt; element&lt;br /&gt;
* We did not need to add a &amp;lt;code&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/code&amp;gt; to Entry Permalinks&lt;br /&gt;
&lt;br /&gt;
= Transformation 2 =&lt;br /&gt;
&lt;br /&gt;
A not-so well behaved weblog (an older blogspot weblog)&lt;br /&gt;
&lt;br /&gt;
Original:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;body bgcolor=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div class=&amp;quot;posts&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a name=&amp;quot;112993192128302715&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;strong&amp;gt;Nelson's final prayer&amp;lt;/strong&amp;gt; &lt;br /&gt;
  written on the night before Trafalgar:&amp;lt;blockquote&amp;gt;May the Great God, ... heart.&lt;br /&gt;
  &amp;lt;div style=&amp;quot;clear:both; padding-bottom: 0.25em;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;byline&amp;quot;&amp;gt;&lt;br /&gt;
   posted by Natalie at &lt;br /&gt;
   &amp;lt;a href=&amp;quot;2005_10_16_nataliesolent_archive.html#112993192128302715&amp;quot;&amp;gt;9:49 PM&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div class=&amp;quot;posts&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a name=&amp;quot;112993022840118939&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;strong&amp;gt;I really, truly &amp;lt;/strong&amp;gt;didn't go ... view.&lt;br /&gt;
  &amp;lt;div style=&amp;quot;clear:both; padding-bottom: 0.25em;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;byline&amp;quot;&amp;gt;&lt;br /&gt;
   posted by Natalie at &lt;br /&gt;
   &amp;lt;a href=&amp;quot;2005_10_16_nataliesolent_archive.html#112993022840118939&amp;quot;&amp;gt;9:28 PM&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformed to hAtom compliant:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body bgcolor=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
  &amp;amp;lt;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;div class=&amp;quot;hfeed&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;hentry&amp;lt;/span&amp;gt; posts&amp;quot; &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;id=&amp;quot;112993192128302715&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;&lt;br /&gt;
    &amp;amp;lt;strong &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-title entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;&lt;br /&gt;
     Nelson's final prayer&lt;br /&gt;
    &amp;amp;lt;/strong&amp;gt; &lt;br /&gt;
    &amp;amp;lt;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;span class=&amp;quot;entry-content&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     written on the night before Trafalgar:&amp;amp;lt;blockquote&amp;gt;May the Great God, ... heart.&lt;br /&gt;
    &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;amp;lt;div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;span class=&amp;quot;byline&amp;quot;&amp;gt;posted by &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;span class=&amp;quot;author vcard&amp;quot;&amp;gt;&amp;amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Natalie&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; at &lt;br /&gt;
      &amp;amp;lt;a &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/span&amp;gt; href=&amp;quot;2005_10_16_nataliesolent_archive.html#112993192128302715&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;2005-10-24t09:49:00-00:00&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;9:49 PM&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;/a&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;hentry&amp;lt;/span&amp;gt; posts&amp;quot; &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;id=&amp;quot;112993022840118939&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;&lt;br /&gt;
    &amp;amp;lt;strong &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;heading content&amp;lt;/span&amp;gt;&amp;gt;&amp;quot;I really, truly &amp;amp;lt;/strong&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;span class=&amp;quot;entry-content&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
     didn't go ... view.&lt;br /&gt;
    &amp;amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;amp;lt;div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;span class=&amp;quot;byline&amp;quot;&amp;gt;&lt;br /&gt;
      posted by &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;span class=&amp;quot;author vcard&amp;quot;&amp;gt;&amp;amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Natalie&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/span&amp;gt;&amp;amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; at &lt;br /&gt;
      &amp;amp;lt;a &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/span&amp;gt; href=&amp;quot;2005_10_16_nataliesolent_archive.html#112993022840118939&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;2005-10-24t09:49:00-00:00&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;9:28 pm&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;/a&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;hfeed&amp;quot;&amp;lt;/code&amp;gt; to Feed&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;hentry&amp;quot;&amp;lt;/code&amp;gt; to each Entry&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;entry-title&amp;quot;&amp;lt;/code&amp;gt; to each Entry Title&lt;br /&gt;
* Moved &amp;lt;code&amp;gt;id=&amp;quot;###&amp;quot;&amp;lt;/code&amp;gt; up to the Entry (and deleted the empty anchor block)&lt;br /&gt;
* Added &amp;lt;code&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/code&amp;gt; to the Entry Permalinks&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;entry-content&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;/code&amp;gt; around the Entry Title (!)&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;entry content&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;/code&amp;gt; around the Entry Content&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;YYYY-MM-DDThh:mm:ss+ZZZZ&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/code&amp;gt; around the Entry Datetime&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;author vcard&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;fn&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt; to the poster's name&lt;br /&gt;
&lt;br /&gt;
Also note:&lt;br /&gt;
* the ID/fragments are not XHTML -- this is a big problem.&lt;br /&gt;
* there are multiple content blocks, because Natalie Solent embeds the title in the content&lt;br /&gt;
* cleaned up lots of crap HTML presentation stuff, with the assumption it would be fixed in the stylesheet&lt;br /&gt;
* this is one of the uglier transformations you're likely to see&lt;br /&gt;
&lt;br /&gt;
= Transformation 3 =&lt;br /&gt;
&lt;br /&gt;
A media page (from [http://www.cbc.ca/story/world/national/2005/11/22/birdlfu051122.html CBC Newsworld]).&lt;br /&gt;
&lt;br /&gt;
Original:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;news&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;story&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;h1&amp;gt;China confirms new bird flu outbreaks&amp;lt;/h1&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;byline&amp;quot;&amp;gt;Last Updated Tue, 22 Nov 2005 23:26:18 EST&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;text&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;/news/credit.html&amp;quot;&amp;gt;CBC News&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;&lt;br /&gt;
   China has confirmed three new outbreaks of bird flu, ...&lt;br /&gt;
   &amp;lt;p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
     &amp;lt;li&amp;gt;&amp;lt;font size=&amp;quot;1&amp;quot;&amp;gt;INDEPTH: &amp;lt;/font&amp;gt;&amp;lt;font size=&amp;quot;2&amp;quot;&amp;gt; &lt;br /&gt;
     &amp;lt;a href=&amp;quot;http://www.cbc.ca/news/background/avianflu/&amp;quot;&amp;gt;Avian Flu&amp;lt;/a&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
   &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;table align=&amp;quot;right&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;4&amp;quot; hspace=&amp;quot;4&amp;quot; width=&amp;quot;220&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;img src=&amp;quot;http://www.cbc.ca/gfx/pix/birdflu_china_cp_7707271.jpg&amp;quot; width=&amp;quot;220&amp;quot; height=&amp;quot;223&amp;quot; hspace=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;caption&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;font size=&amp;quot;1&amp;quot; face=&amp;quot;verdana,arial&amp;quot;&amp;gt;&amp;lt;i&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;/table&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;State media says the new outbreaks are in...&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;The news comes a day after China announced the ...&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;In China's eastern Anhui province, authorities have ...&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;The province says the measure will prevent domestic ...&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Vietnamese health officials have confirmed that a  ...&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Doctors from the health department in the northern  ...&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Bird flu has killed 42 people in Vietnam since December  ...&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;The World Health Organization fears the H5N1 strain of  ...&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;p&amp;gt;&amp;lt;font face=&amp;quot;Verdana,Arial&amp;quot; size=&amp;quot;1&amp;quot;&amp;gt;with files from the Australian Broadcasting Corporation&amp;lt;/font&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformed to hAtom compliant:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;div class=&amp;quot;news&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;hfeed hentry&amp;lt;/span&amp;gt; story&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;h1 &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-title&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;China confirms new bird flu outbreaks&amp;amp;lt;/h1&amp;gt;&lt;br /&gt;
   &amp;amp;lt;span class=&amp;quot;byline&amp;quot;&amp;gt;Last Updated&lt;br /&gt;
   &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;2005-11-23T04:26:18Z&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Tue, 22 Nov 2005 23:26:18 EST&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;address class=&amp;quot;vcard author&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;span class=&amp;quot;text&amp;quot;&amp;gt;&amp;amp;lt;a &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;url&amp;quot;&amp;lt;/span&amp;gt; href=&amp;quot;/news/credit.html&amp;quot;&amp;gt;CBC News&amp;amp;lt;/a&amp;gt;&amp;amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/address&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;amp;lt;div class=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;amp;gt;&lt;br /&gt;
    China has confirmed three new outbreaks of bird flu, ...&lt;br /&gt;
    &amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p&amp;gt;&lt;br /&gt;
     &amp;amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;amp;lt;li&amp;gt;&amp;amp;lt;font size=&amp;quot;1&amp;quot;&amp;gt;INDEPTH: &amp;amp;lt;/font&amp;gt;&amp;amp;lt;font size=&amp;quot;2&amp;quot;&amp;gt; &lt;br /&gt;
      &amp;amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.cbc.ca/news/background/avianflu/&amp;quot;&amp;gt;Avian Flu&amp;amp;lt;/a&amp;gt;&amp;amp;lt;/font&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;table align=&amp;quot;right&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;4&amp;quot; hspace=&amp;quot;4&amp;quot; width=&amp;quot;220&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;tr&amp;gt;&lt;br /&gt;
     &amp;amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;img src=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.cbc.ca/gfx/pix/birdflu_china_cp_7707271.jpg&amp;quot; width=&amp;quot;220&amp;quot; height=&amp;quot;223&amp;quot; hspace=&amp;quot;3&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
     &amp;amp;lt;tr&amp;gt;&lt;br /&gt;
     &amp;amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div class=&amp;quot;caption&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;font size=&amp;quot;1&amp;quot; face=&amp;quot;verdana,arial&amp;quot;&amp;gt;&amp;amp;lt;i&amp;gt;&amp;amp;lt;/i&amp;gt;&amp;amp;lt;/font&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/table&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;State media says the new outbreaks are in...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;The news comes a day after China announced the ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;In China's eastern Anhui province, authorities have ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;The province says the measure will prevent domestic ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;Vietnamese health officials have confirmed that a  ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;Doctors from the health department in the northern  ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;Bird flu has killed 42 people in Vietnam since December  ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;The World Health Organization fears the H5N1 strain of  ...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;amp;lt;p&amp;gt;&amp;amp;lt;font face=&amp;quot;Verdana,Arial&amp;quot; size=&amp;quot;1&amp;quot;&amp;gt;with files from the Australian Broadcasting Corporation&amp;amp;lt;/font&amp;gt;&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
 &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;div class=&amp;quot;hfeed hentry&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; around the single entry on the page&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;div class=&amp;quot;entry-title&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; to the Entry Title&lt;br /&gt;
* Added the class &amp;lt;code&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/code&amp;gt; to every paragraph, eg &amp;lt;code&amp;gt;&amp;amp;lt;p class=&amp;quot;entry-content&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/p&amp;gt;&amp;lt;/code&amp;gt;  -- this looks pathological but it may be the way this would need be produced from a template. The latter part of the document could be enclosed in a single &amp;quot;entry-content&amp;quot; div but note that we did this so the &amp;quot;INDEPTH&amp;quot; part would not be marked as content,&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;YYYYMMDDThh:mm:ss+ZZZZ&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/code&amp;gt; around the Entry Datetime&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;address class=&amp;quot;author vcard&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;fn org&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; to the CBC Newsroom&lt;br /&gt;
&lt;br /&gt;
Also note:&lt;br /&gt;
* We made the document more XHTML compliant&lt;br /&gt;
* There is no &amp;lt;code&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/code&amp;gt; so it is assumed to be the URI of the page&lt;br /&gt;
&lt;br /&gt;
= Transformation 4 =&lt;br /&gt;
&lt;br /&gt;
A bulletin board ([http://forums.punbb.org/viewtopic.php?id=9135 PunBB])&lt;br /&gt;
&lt;br /&gt;
Original:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;punwrap&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div id=&amp;quot;punviewtopic&amp;quot; class=&amp;quot;pun&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div id=&amp;quot;brdheader&amp;quot; class=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
    ... header stuff ...&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div id=&amp;quot;announce&amp;quot; class=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
    ... announcement stuff ...&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div class=&amp;quot;linkst&amp;quot;&amp;gt;&lt;br /&gt;
    ... controls for the blog&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div id=&amp;quot;p54390&amp;quot; class=&amp;quot;blockpost rowodd firstpost&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;&lt;br /&gt;
     &amp;lt;span&amp;gt;&amp;lt;span class=&amp;quot;conr&amp;quot;&amp;gt;#1&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;a href=&amp;quot;viewtopic.php?pid=54390#p54390&amp;quot;&amp;gt;2005-10-16 10:36:24&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div class=&amp;quot;inbox&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;postleft&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;dl&amp;gt;&lt;br /&gt;
        &amp;lt;dt&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;a href=&amp;quot;profile.php?id=2&amp;quot;&amp;gt;Rickard&amp;lt;/a&amp;gt;&amp;lt;/strong&amp;gt;&amp;lt;/dt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;dd class=&amp;quot;usertitle&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;PunBB Developer&amp;lt;/strong&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;lt;dd class=&amp;quot;postavatar&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;img/avatars/2.png&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; alt=&amp;quot;&amp;quot; /&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt;From: 127.0.0.1&amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt;Registered: 2001-11-02&amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt;Posts: 7806&amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;lt;dd class=&amp;quot;usercontacts&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;http://www.punbb.org/&amp;quot;&amp;gt;Website&amp;lt;/a&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;/dl&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;postright&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;PunBB 1.2.9&amp;lt;/h3&amp;gt;&lt;br /&gt;
       &amp;lt;div class=&amp;quot;postmsg&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Just a quick note this time....&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;lt;div class=&amp;quot;postsignature&amp;quot;&amp;gt;&amp;lt;hr /&amp;gt;&amp;amp;quot;Programming is like sex: ...&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;postfootleft&amp;quot;&amp;gt;&amp;lt;p&amp;gt;Offline&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;postfootright&amp;quot;&amp;gt;&amp;lt;div&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div id=&amp;quot;p54392&amp;quot; class=&amp;quot;blockpost roweven&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;&amp;lt;span&amp;gt;&amp;lt;span class=&amp;quot;conr&amp;quot;&amp;gt;#2&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;a href=&amp;quot;viewtopic.php?pid=54392#p54392&amp;quot;&amp;gt;2005-10-16 10:54:41&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div class=&amp;quot;inbox&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;postleft&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;dl&amp;gt;&lt;br /&gt;
        &amp;lt;dt&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;a href=&amp;quot;profile.php?id=5298&amp;quot;&amp;gt;IdleFire&amp;lt;/a&amp;gt;&amp;lt;/strong&amp;gt;&amp;lt;/dt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;dd class=&amp;quot;usertitle&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Member&amp;lt;/strong&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;lt;dd class=&amp;quot;postavatar&amp;quot;&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt;Registered: 2005-10-14&amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;lt;dd&amp;gt;Posts: 27&amp;lt;/dd&amp;gt;&lt;br /&gt;
       &amp;lt;/dl&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;postright&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       &amp;lt;h3&amp;gt; Re: PunBB 1.2.9&amp;lt;/h3&amp;gt;&lt;br /&gt;
       &amp;lt;div class=&amp;quot;postmsg&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;...&amp;lt;/p&amp;gt;&lt;br /&gt;
       &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;postfootleft&amp;quot;&amp;gt;&amp;lt;p&amp;gt;Offline&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;div class=&amp;quot;postfootright&amp;quot;&amp;gt;&amp;lt;div&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   ... more entries ...&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;div id=&amp;quot;brdfooter&amp;quot; class=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
    ... footer stuff ...&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformed to hAtom compliant:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;amp;lt;div id=&amp;quot;punwrap&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;div id=&amp;quot;punviewtopic&amp;quot; class=&amp;quot;pun&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;amp;lt;div id=&amp;quot;brdheader&amp;quot; class=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
     ... header stuff ...&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;amp;lt;div id=&amp;quot;announce&amp;quot; class=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
     ... announcement stuff ...&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;amp;lt;div class=&amp;quot;linkst&amp;quot;&amp;gt;&lt;br /&gt;
     ... controls for the blog&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;div class=&amp;quot;hfeed&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;amp;lt;div id=&amp;quot;p54390&amp;quot; class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;hentry&amp;lt;/span&amp;gt; blockpost rowodd firstpost&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;h2&amp;gt;&lt;br /&gt;
      &amp;amp;lt;span&amp;gt;&amp;amp;lt;span class=&amp;quot;conr&amp;quot;&amp;gt;#1&amp;amp;nbsp;&amp;amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;amp;lt;a &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/span&amp;gt; href=&amp;quot;viewtopic.php?pid=54390#p54390&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;2005-10-16T10:36:24-0500&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;2005-10-16 10:36:24&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/a&amp;gt;&amp;amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/h2&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;amp;lt;div class=&amp;quot;inbox&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;postleft&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;amp;lt;dl&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dt&amp;gt;&amp;amp;lt;strong&amp;gt;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;address class=&amp;quot;author vcard&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;a &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;url fn&amp;quot;&amp;lt;/span&amp;gt;href=&amp;quot;profile.php?id=2&amp;quot;&amp;gt;Rickard&amp;amp;lt;/a&amp;gt;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/address&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;/strong&amp;gt;&amp;amp;lt;/dt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;amp;lt;dd class=&amp;quot;usertitle&amp;quot;&amp;gt;&amp;amp;lt;strong&amp;gt;PunBB Developer&amp;amp;lt;/strong&amp;gt;&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dd class=&amp;quot;postavatar&amp;quot;&amp;gt;&amp;amp;lt;img src=&amp;quot;img/avatars/2.png&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot; alt=&amp;quot;&amp;quot; /&amp;gt;&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dd&amp;gt;From: 127.0.0.1&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dd&amp;gt;Registered: 2001-11-02&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dd&amp;gt;Posts: 7806&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dd class=&amp;quot;usercontacts&amp;quot;&amp;gt;&amp;amp;lt;a href=&amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.punbb.org/&amp;quot;&amp;gt;Website&amp;amp;lt;/a&amp;gt;&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;amp;lt;/dl&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;postright&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;amp;lt;h3 class=&amp;quot;entry-title&amp;quot;&amp;gt;PunBB 1.2.9&amp;amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;amp;lt;div class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;entry-content&amp;lt;/span&amp;gt; postmsg&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;amp;lt;p&amp;gt;Just a quick note this time....&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;amp;lt;div class=&amp;quot;postsignature&amp;quot;&amp;gt;&amp;amp;lt;hr /&amp;gt;&amp;amp;quot;Programming is like sex: ...&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;postfootleft&amp;quot;&amp;gt;&amp;amp;lt;p&amp;gt;Offline&amp;amp;lt;/p&amp;gt;&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;postfootright&amp;quot;&amp;gt;&amp;amp;lt;div&amp;gt;&amp;amp;nbsp;&amp;amp;lt;/div&amp;gt;&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;amp;lt;div id=&amp;quot;p54392&amp;quot; class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;hentry&amp;lt;/span&amp;gt; blockpost roweven&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;h2&amp;gt;&lt;br /&gt;
      &amp;amp;lt;span&amp;gt;&amp;amp;lt;span class=&amp;quot;conr&amp;quot;&amp;gt;#2&amp;amp;nbsp;&amp;amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;amp;lt;a &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/span&amp;gt; href=&amp;quot;viewtopic.php?pid=54392#p54392&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;2005-10-16T10:54:41-0500&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;2005-10-16 10:54:41&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/a&amp;gt;&amp;amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/h2&amp;gt;&lt;br /&gt;
     &amp;amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;amp;lt;div class=&amp;quot;inbox&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;postleft&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;amp;lt;dl&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dt&amp;gt;&amp;amp;lt;strong&amp;gt;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;address class=&amp;quot;author vcard&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;a &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;url fn&amp;quot;&amp;lt;/span&amp;gt; href=&amp;quot;profile.php?id=5298&amp;quot;&amp;gt;IdleFire&amp;amp;lt;/a&amp;gt;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/address&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;/strong&amp;gt;&amp;amp;lt;/dt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
         &amp;amp;lt;dd class=&amp;quot;usertitle&amp;quot;&amp;gt;&amp;amp;lt;strong&amp;gt;Member&amp;amp;lt;/strong&amp;gt;&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dd class=&amp;quot;postavatar&amp;quot;&amp;gt;&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dd&amp;gt;Registered: 2005-10-14&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
         &amp;amp;lt;dd&amp;gt;Posts: 27&amp;amp;lt;/dd&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/dl&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;postright&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;amp;lt;h3 class=&amp;quot;entry-title&amp;quot;&amp;gt; Re: PunBB 1.2.9&amp;amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;amp;lt;div class=&amp;quot;&amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;entry-content&amp;lt;/span&amp;gt; postmsg&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;amp;lt;p&amp;gt;...&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;clearer&amp;quot;&amp;gt;&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;postfootleft&amp;quot;&amp;gt;&amp;amp;lt;p&amp;gt;Offline&amp;amp;lt;/p&amp;gt;&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
       &amp;amp;lt;div class=&amp;quot;postfootright&amp;quot;&amp;gt;&amp;amp;lt;div&amp;gt;&amp;amp;nbsp;&amp;amp;lt;/div&amp;gt;&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    ... more entries ...&lt;br /&gt;
    &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;amp;lt;div id=&amp;quot;brdfooter&amp;quot; class=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
     ... footer stuff ...&lt;br /&gt;
    &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;div class=&amp;quot;hfeed&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; around the entries (as opposed to an existing &amp;lt;code&amp;gt;&amp;amp;lt;div&amp;lt;/code&amp;gt; that enclosed more than entries.&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;hentry&amp;quot;&amp;lt;/code&amp;gt; to each Entry&lt;br /&gt;
* Added &amp;lt;code&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/code&amp;gt; to the Entry Permalinks&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;entry-title&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;/code&amp;gt; around the Entry Title&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;span class=&amp;quot;entry-content&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/div&amp;gt;&amp;lt;/code&amp;gt; around the Entry Content&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;YYYY-MM-DDThh:mm:ss+ZZZZ&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/code&amp;gt; around the Entry Datetime&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;address class=&amp;quot;author vcard&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;class=&amp;quot;fn url&amp;quot;&amp;lt;/code&amp;gt; to the poster's name&lt;br /&gt;
&lt;br /&gt;
Also note:&lt;br /&gt;
* We did not need to add &amp;lt;code&amp;gt;id=&amp;quot;###&amp;quot;&amp;lt;/code&amp;gt; to the Entry&lt;br /&gt;
&lt;br /&gt;
= Transformation 5 =&lt;br /&gt;
&lt;br /&gt;
Transforming RSS to hatom using MagpieRSS. [http://factoryjoe.com/projects/sixwords/index.txt PHP source available]. Result:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;&amp;amp;lt;html&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;lt;body &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;hfeed&amp;quot;&amp;lt;/span&amp;gt; id=&amp;quot;&amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;173333&amp;lt;/span&amp;gt;&amp;quot;&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;lt;div id=&amp;quot;content&amp;quot; &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;hentry&amp;quot;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;lt;h2 &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-title&amp;quot;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; No. &amp;amp;lt;a href=&amp;quot;http://twitter.com/ssmith/statuses/&amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;173333&amp;lt;/span&amp;gt;&amp;quot; &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;173333&amp;lt;/span&amp;gt;&amp;amp;lt;/a&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;lt;/h2&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;lt;p &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;entry-content&amp;quot;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;Sweet potato pie. Sugar coma. Die.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;lt;/p&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;lt;p&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;lt;small&amp;amp;gt;Penned by &amp;amp;lt;span &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;vcard author&amp;quot;&amp;lt;/span&amp;gt;&amp;amp;gt;&amp;amp;lt;a href=&amp;quot;http://twitter.com/ssmith&amp;quot; &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;url fn&amp;quot;&amp;lt;/span&amp;gt;&amp;amp;gt;Sean&amp;amp;lt;/a&amp;amp;gt;&amp;amp;lt;/span&amp;amp;gt; at &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;&amp;amp;lt;abbr title=&amp;quot;Fri, &amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;24&amp;lt;/span&amp;gt; Nov &amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;2006&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;01&amp;lt;/span&amp;gt;:&amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;03&amp;lt;/span&amp;gt;:&amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;11&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;+0000&amp;lt;/span&amp;gt;&amp;quot; class=&amp;quot;updated&amp;quot;&amp;amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;nu0&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;:03am&amp;amp;lt;/abbr&amp;amp;gt;&amp;amp;lt;/small&amp;amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;lt;/p&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;nbsp;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;lt;/body&amp;amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;amp;lt;/html&amp;amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= More Examples =&lt;br /&gt;
&lt;br /&gt;
hAtom for search results, from [[http://randomchaos.com/microformats/base/ Microformats Base]]:&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;li &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;hentry&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;&amp;amp;lt;a &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/span&amp;gt; href=&amp;quot;http://tantek.com/presentations/2006/03/what-are-microformats/&amp;quot; &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;class=&amp;quot;headline&amp;quot;&amp;lt;/span&amp;gt;&amp;gt;http://tantek.com/presentations/2006/03/what-are-microformats/&amp;amp;lt;/a&amp;gt; &amp;lt;span class=&amp;quot;added&amp;quot;&amp;gt;updated &amp;amp;lt;abbr class=&amp;quot;published&amp;quot; title=&amp;quot;2006-07-10T14:05:54-04:00&amp;quot;&amp;gt;2006-07-10 14:05:54&amp;amp;lt;/abbr&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
* Added &amp;lt;code&amp;gt;class=&amp;quot;hentry&amp;quot;&amp;lt;/code&amp;gt; to each result&lt;br /&gt;
* Added &amp;lt;code&amp;gt;rel=&amp;quot;bookmark&amp;quot;&amp;lt;/code&amp;gt; to each result link&lt;br /&gt;
* Added &amp;lt;code&amp;gt;&amp;amp;lt;abbr class=&amp;quot;updated&amp;quot; title=&amp;quot;YYYY-MM-DDThh:mm:ss+ZZZZ&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;...&amp;lt;code&amp;gt;&amp;amp;lt;/abbr&amp;gt;&amp;lt;/code&amp;gt; for date of index update&lt;/div&gt;</summary>
		<author><name>Domtheo</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=rest/ahah&amp;diff=59954</id>
		<title>rest/ahah</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=rest/ahah&amp;diff=59954"/>
		<updated>2013-08-20T03:15:59Z</updated>

		<summary type="html">&lt;p&gt;Domtheo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AHAH: Asynchronous HTML and HTTP =&lt;br /&gt;
&lt;br /&gt;
AHAH is a very simple technique for dynamically updating web pages using [http://en.wikipedia.org/wiki/JavaScript JavaScript]. It involves using [http://en.wikipedia.org/wiki/XMLHTTP XMLHTTPRequest] to retrieve [http://en.wikipedia.org/wiki/HTML (X)HTML] fragments which are then inserted directly into the web page, whence they can be styled using [http://en.wikipedia.org/wiki/Cascading_Style_Sheets CSS].&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
* [http://subconscious-therapy.com/hipnoterapi-surabaya Hipnoterapi surabaya]&lt;br /&gt;
* [http://www.tiraimodern.com/product/vertical-blind Vertical blind]&lt;br /&gt;
* [http://www.detikauto.com Variasi mobil]&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
* Has anyone considered working with browser vendors to have them support client-side includes? This way, markup like &amp;amp;lt;div src=&amp;quot;hello-world.txt&amp;quot; /&amp;amp;gt; would just work. This avoids the need for client side script and ensures the browser can correctly manage connections, caching, authentication, etc. For backwards compatibility, you could create a little javascript utility to scan for all occurrences of tags like this, queue up the requests and let the content flow in after the page was loaded. I have a little csi.js utility that does this and it's pretty handy.  || Yes, Div Includes is a good concept (fraught with all the usual security issues), but the real power of includes is when they are used dynamically in response to user interaction.  For purely static pages it is much more efficient to have the server create them using something like shtml or php.  The ability to create/update a Div include via JS is where this proposed technique would be a fantastic improvement on the mess that we have now. &lt;br /&gt;
  &lt;br /&gt;
* Okay, maybe this is a dumb question, but I don't understand why this is called AHAH instead of AJAH.  AHAH still uses the same XMLHttpRequest JavaScript functionality as AJAX, so why drop the J?  AJAX uses the same HTTP functionality as AHAH, so why add the H?  Have I misunderstood what is actually happening? (You are right of course, but Ahah! == Eureka!!! and AJah = ?)&lt;br /&gt;
&lt;br /&gt;
== Relation to AJAX ==&lt;br /&gt;
&lt;br /&gt;
AHAH is intended to be a much simpler way to do [http://en.wikipedia.org/wiki/Web_development web development] than [http://en.wikipedia.org/wiki/Ajax_%28programming%29 AJAX]: &amp;quot;Asynchronous JavaScript and XML.&amp;quot;  Strictly speaking, AHAH can be considered a subset of AJAX, since (X)HTML is just a special kind of XML.  However, it is a subset with some very specific and useful properties:&lt;br /&gt;
# The lack of custom XML schemas dramatically reduces design time&lt;br /&gt;
# AHAH can trivially reuse existing HTML pages, avoiding the need for a custom web service&lt;br /&gt;
# All data transport is done via browser-friendly HTML, easing debugging and testing&lt;br /&gt;
# The HTML is designed to be directly embedded in the page's DOM, eliminating the need for parsing&lt;br /&gt;
# As HTML, designers can format it using CSS, rather than programmers having to do XSLT transforms&lt;br /&gt;
# Processing is all done on the server, so the client-side programming is essentially nil (moving opaque bits)&lt;br /&gt;
&lt;br /&gt;
In fact, for any content that is destined to be viewed by the browser, it is virtually impossible to imagine any advantage to sending it as custom XML rather than structurally-correct HTML (with appropriate CSS-friendly class names, of course).&lt;br /&gt;
&lt;br /&gt;
That said, many applications of AJAX are (at least in theory) targeteable at custom JavaScript code or desktop GUIs rather than mere browsers.  For those cases, the advantages of HTML over custom XML are somewhat less.  However, even here, it may well make sense to encode data using [[xoxo]] -- aka XHTML Property Lists -- which can be losslessly converted back and forth from standard data structures (lists and dictionaries) without the need for custom parsers.&lt;br /&gt;
&lt;br /&gt;
== Source Code ==&lt;br /&gt;
Unlike the various libraries (e.g., [http://en.wikipedia.org/wiki/JSON JSON], [http://mochikit.com/ MochiKit]) important for AJAX, all of AHAH is contained in a single JavaScript file (also available as [http://www.opendarwin.org/~drernie/src/ahah.js ahah.js] and [http://homepage.mac.com/kevinmarks/jah.js jah.js]).  In fact, this is little more than the canonical XMLHttpRequest example, and is simple enough for any modern web designer to embed within their existing web pages.&lt;br /&gt;
&lt;br /&gt;
NOTE: The example ahah.js mentioned here has the unfortunate requirement (if the delay argument is not undefined) that url,target,delay must be global variables (which makes one wonder why they are passed as parameters....).  If you don't want to use globals, and want this to actually work, use something like: setTimeout( 'ahah( &amp;quot;' + url + '&amp;quot;, &amp;quot;' + target + '&amp;quot;, ' + delay + ')', delay );   Fair warning. &lt;br /&gt;
&lt;br /&gt;
=== Send AHAH Request ===&lt;br /&gt;
&lt;br /&gt;
 function ahah(url,target) {&lt;br /&gt;
     document.getElementById(target).innerHTML = 'loading data...';&lt;br /&gt;
     if (window.XMLHttpRequest) {&lt;br /&gt;
         req = new XMLHttpRequest();&lt;br /&gt;
         req.onreadystatechange = function() {ahahDone(target);};&lt;br /&gt;
         req.open(&amp;quot;GET&amp;quot;, url, true);&lt;br /&gt;
         req.send(null);&lt;br /&gt;
     } else if (window.ActiveXObject) {&lt;br /&gt;
         req = new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;);&lt;br /&gt;
         if (req) {&lt;br /&gt;
             req.onreadystatechange = function() {ahahDone(target);};&lt;br /&gt;
             req.open(&amp;quot;GET&amp;quot;, url, true);&lt;br /&gt;
             req.send();&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
Note the workaround needed for IE's ActiveX implementation.  The current version hard-codes GET; there may be value in adding an extra parameter to allow POST, PUT, and DELETE.&lt;br /&gt;
&lt;br /&gt;
=== Receive AHAH Request ===&lt;br /&gt;
&lt;br /&gt;
 function ahahDone(target) {&lt;br /&gt;
    // only if req is &amp;quot;loaded&amp;quot;&lt;br /&gt;
    if (req.readyState == 4) {&lt;br /&gt;
        // only if &amp;quot;OK&amp;quot;&lt;br /&gt;
        if (req.status == 200 || req.status == 304) {&lt;br /&gt;
            results = req.responseText;&lt;br /&gt;
            document.getElementById(target).innerHTML = results;&lt;br /&gt;
        } else {&lt;br /&gt;
            document.getElementById(target).innerHTML=&amp;quot;ahah error:\n&amp;quot; +&lt;br /&gt;
                req.statusText;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Other than error checking, the only real work done is:&lt;br /&gt;
&lt;br /&gt;
 document.getElementById(target).innerHTML = results;&lt;br /&gt;
&lt;br /&gt;
Everything else (e.g., CSS-styling) is merely inherited from the parent webpage.&lt;br /&gt;
&lt;br /&gt;
=== Executing Javascript ===&lt;br /&gt;
&lt;br /&gt;
Since the browser won't execute &amp;lt;script&amp;gt; tags when changing innerHTML, you may want to apply the following function call on document.getElementById(target):&lt;br /&gt;
&lt;br /&gt;
 var bSaf = (navigator.userAgent.indexOf('Safari') != -1);&lt;br /&gt;
 var bOpera = (navigator.userAgent.indexOf('Opera') != -1);&lt;br /&gt;
 var bMoz = (navigator.appName == 'Netscape');&lt;br /&gt;
 function execJS(node) {&lt;br /&gt;
   var st = node.getElementsByTagName('SCRIPT');&lt;br /&gt;
   var strExec;&lt;br /&gt;
   for(var i=0;i&amp;lt;st.length; i++) {     &lt;br /&gt;
     if (bSaf) {&lt;br /&gt;
       strExec = st[i].innerHTML;&lt;br /&gt;
     }&lt;br /&gt;
     else if (bOpera) {&lt;br /&gt;
       strExec = st[i].text;&lt;br /&gt;
     }&lt;br /&gt;
     else if (bMoz) {&lt;br /&gt;
       strExec = st[i].textContent;&lt;br /&gt;
     }&lt;br /&gt;
     else {&lt;br /&gt;
       strExec = st[i].text;&lt;br /&gt;
     }&lt;br /&gt;
     try {&lt;br /&gt;
       eval(strExec.split(&amp;quot;&amp;amp;lt;!--&amp;quot;).join(&amp;quot;&amp;quot;).split(&amp;quot;--&amp;amp;gt;&amp;quot;).join(&amp;quot;&amp;quot;));&lt;br /&gt;
     } catch(e) {&lt;br /&gt;
       alert(e);&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== JavaScript Notes: ====&lt;br /&gt;
* IE always returns tags in UPPER CASE, so you must search for SCRIPT and not script.  Keep your SCRIPT tags in upper case for Firefox compatibility.&lt;br /&gt;
* Do not use // comments, use /* */ instead.  The eval executes all your javascript as though it was on one line, so you must end each statement with a semicolon (;).&lt;br /&gt;
* Any functions declared in your JavaScript will go out of scope once the eval statement completes.  It is possible to keep them in scope by attaching them as a method to a function that was defined at the document level.&lt;br /&gt;
&lt;br /&gt;
== Indexing ==&lt;br /&gt;
&lt;br /&gt;
Another advantage of AHAH is that the dynamic XHTML content can be easily indexed by search engines; this avoids the need to inline all the dynamic content as hidden divs, which would increase page load times.&lt;br /&gt;
&lt;br /&gt;
The current best practice for doing this is to:&lt;br /&gt;
* included &amp;amp;lt;link&amp;gt; tags in &amp;amp;lt;head&amp;gt; of the parent page, to reference the various URLs retrieved by AHAH&lt;br /&gt;
* include &amp;amp;lt;redirects&amp;gt; in the outer HTML of the AHAH page, so that search hits go to an appropriate anchor on the parent  page&lt;br /&gt;
&lt;br /&gt;
It is possible that some crawlers will automatically index the URLs in the JavaScript calls, if recognized as such (e.g., due to the &amp;quot;html&amp;quot; extension, or if it is an absolute URL), though it is not clear how well this would work.&lt;br /&gt;
&lt;br /&gt;
== Meta tags ==&lt;br /&gt;
&lt;br /&gt;
One odd characteristic of &amp;lt;tt&amp;gt;responseText&amp;lt;/tt&amp;gt; is that it appears to preserve 'meta' and 'link' tags (though apparently not 'head' itself).  This would potentially pollute the browser with illegal HTML, though since they're empty tags it shouldn't affect rendering, and any real-world browsers can be counted on to safely ignore it.  One might want to add JavaScript to strip out the extra data, but that would likely be more overhead than it is worth (unless there is sensitive data in there you don't want curious source-viewers to see).&lt;br /&gt;
&lt;br /&gt;
On the flip side, though, the preservation of meta tags allows the sending of additional key-value pairs, a la [http://www.crockford.com/JSON/ JSON].  True, it doesn't support more complex data structures, but in many cases it will suffice, and it avoids the security concerns.  For more complex metadata, it is probably better to use [[xoxo]] (perhaps with JSON conventions).&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;AHAH&amp;quot; as a formal technique appears to have been introduced by Kevin Marks on May 12, 2005 under the name [http://epeus.blogspot.com/2005_05_01_epeus_archive.html#111588374981985824 JAH]: &amp;quot;Just Asynchronous HTML&amp;quot;, where it was also used in a [http://homepage.mac.com/kevinmarks/staticjah.html simple example].  The term &amp;quot;AHAH&amp;quot; was proposed by Ernest Prabhakar during the 2005 [http://www.web2con.com/ Web 2.0] conference, and later adopted as part of the REST-Enabled XHTML ([http://www.opendarwin.org/~drernie/C395201355/E20051019175947/index.html REX]) microformat for web services.&lt;br /&gt;
&lt;br /&gt;
David Hansson had independently discovered the exact same concept, and in fact had already submitted an abstract about it for O'Reilly's 2006 [http://conferences.oreillynet.com/etech/ E-Tech] conference when he encountered the work done by Marks and Prabhakar.  He had not however named the technique, and quickly agreed to adopt the AHAH moniker.  The same concept has no doubt been independently discovered by others, but these three appear to be the first to make a sustained attempt to promote it as a formal technique.&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
* Sample [http://www.opendarwin.org/~drernie/src/ahah.js JavaScript code] available from Ernie Prabhakar, extending work by Kevin Marks.&lt;br /&gt;
* There is some talk of directly supporting AHAH in [http://www.rubyonrails.com/ Ruby on Rails] using [http://wiki.rubyonrails.com/rails/pages/UnderstandingPartials partials].&lt;br /&gt;
* [http://blog.davidjanes.com/mtarchives/2006_01.html#003498 David Janes] has implemented a [http://www.crockford.com/JSON/ JSON]-powered variant called [http://www.blogmatrix.com/tools/jahah/ JAHAH].&lt;br /&gt;
* [http://www.gizax.it/ahahsection/ Daniele Florio] has performed AHAH original function&lt;br /&gt;
* [http://csharpedge.blogspot.com/ Troels Wittrup] published an article about his AHAH/Hijax framework &amp;quot;OutPost&amp;quot; on October 6, 2005 at [http://www.codeproject.com/Ajax/Outpost.asp CodeProject].&lt;br /&gt;
* [http://groups.google.com/group/XMLHttpRequest/browse_thread/thread/3deab0ff4778fdf7/a8f83be73f135ed5 sax'ntouebbe] has modified the code to support multiple simultaneous outstanding AHAH requests.&lt;/div&gt;</summary>
		<author><name>Domtheo</name></author>
	</entry>
</feed>