hCard microformat Validator (beta, of course)

This is an unofficial validator¹/conformance checker of the hCard microformat.

Po polsku En français
(translations welcome!)

Input

URL

Check entire XHTML or HTML page by entering its HTTP URL.

Fragment

Paste well-formed XHTML fragment or complete document containing hCard.

Upload

Upload HTML or XHTML file to validate it. For this to work your browser must be setting MIME types properly.

Example

If searching for hCards in the wild is tiring, check one of the test-cases:

Browse examples

API & Other

Any page by Referer

<a href="http://hcard.geekhood.net/referrer/">Validate hCards</a>

Bookmarklet

hCard?

RESTful JSON API

Send GET request to http://hcard.geekhood.net/?url=URL to validate&output=json.

Output will be roughly compatible with the Validator.nu JSON API. Likely to change in the future.

Please use this API for validation, not just as an converter/extraction tool.


Send Feedback

You can send feedback via e-mail or the form below.

If you're reporting a bug or have a suggestion, don't forget to include example hCard code.

Result

Congratulations! No errors found.

  1. No issues found.

    GEO latitude
    37.38211
    longitude
    -122.027965
    Formatted name
    Max Rible Kaehn
    Name Given Name
    Max
    Additional Name
    Rible
    Family Name
    Kaehn
    Photo URL
    //www.mithriltabby.com/images/usericon.jpeg
    URL http://www.mithriltabby.com/

File source

<!DOCTYPE html>
<html lang="en-US">
<head><title>mithriltabby - Max Kaehn’s home page</title>
<link rel="stylesheet" type="text/css" href="style.css">
<!-- Specifying UTF-8 in the HTTP headers doesn't persuade IE to use UTF-8. -->
<!--[if IE]>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="ie.css" />
<![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/png" href="images/zonk16x16.png">
<link rel="made" href="http://www.mithriltabby.com/">
<script src="code.js"></script>

<link rel="stylesheet" href="mastodon-timeline.css">
<script src="mastodon-timeline.js"></script>
<link rel="home start contents" href="/">
<link rel="next" href="names.xhtml">
<link rel="meta" type="application/rdf+xml" title="FOAF" href="foaf.rdf">
<link rel="feed" href="http://mithriltabby.dreamwidth.org/data/rss" type="application/rss+xml" title="Dreamwidth">
<link rel="feed" href="http://mithriltabby.tumblr.com/rss" type="application/rss+xml" title="Tumblr">
<link rel="feed" href="http://www.diigo.com/rss/user/mithriltabby" type="application/rss+xml" title="Diigo links">
<link rel="feed" href="https://www.librarything.com/rss/reviews/slothman" type="application/rss+xml" title="LibraryThing reviews">
<link rel="me" href="https://micro.blog/mithriltabby">
<link rel="feed" href="http://www.yelp.com/syndicate/user/FBp-DAU1vtSLg7ipitLUVA/rss.xml" type="application/rss+xml" title="Yelp reviews">
<!-- http://wiki.whatwg.org/wiki/RelExtensions -->
<link rel="pronunciation" href="lexicon.xml">
<meta name="description" content="The home page of Max Kaehn.">
<meta name="keywords" content="Max Rible Kaehn, Max Kaehn, Max Rible">
<meta name="author" content="Max Rible Kaehn">
<meta name="ICBM" content="37.38211, -122.027965">
<meta name="geo.position" content="37.38211;-122.027965">
<meta name="geo.placename" content="Maine Coon Manor, Sunnyvale, CA, US">
<meta name="geo.region" content="US">
<meta name="google-site-verification" content="OwOa7d5PaqW-onn8jNYsXe4e41PmLeqlpROSfwyKc40">
</head>
<body>
<!-- Put a 100px margin on the left to match the img on the right. -->
<div style="float:left; width:100px; height:79px"></div>
<div style="float:right; width:100px; height:100px"><img src="images/mithriltabby.png" style="float:right" width="100" height="100" alt="mithriltabby"></div>
<h1 style="margin-bottom: 0; clear:none;">mithriltabby</h1>
<!-- hCard microformat -->
<div class="vcard">
  <p class="subhead"><i>
    <span class="n fn">
      <span class="given-name">Max</span>
      <span class="additional-name">Rible</span>
      <span class="family-name">Kaehn</span>
    </span>
  </i></p>
  <div class="geo hidden">
    <abbr class="latitude" title="37.38211">37°22’55.60” N</abbr>,
    <abbr class="longitude" title="-122.027965">122°1’40.67” W</abbr>
  </div>
  <!-- Put the short version of my name here in hopes of bringing up the
       rank on searches for “Max Kaehn”. -->
  <p class="hidden">Max Kaehn</p>
  <img class="photo hidden" src="//www.mithriltabby.com/images/usericon.jpeg" alt="hCard photo">

<!-- Hyperlinks to all my various online identities, with XFN notation
indicating that it’s me.  Need to include a hidden span of the actual
names, since XFN won’t figure it out from the title/alt of the images
I’m using.
-->
<p class="center">
<a class="url hidden" href="http://www.mithriltabby.com/">home</a>
<span class="hidden">•</span>
<a href="names.xhtml">names</a>
• <!-- Obfuscated email address in hopes of deterring spambots. -->
<a
class='email me'
href='mailto:%73%6c%6f%74­%68%6d%61%6e%40%6d%69%74%68%72%69%6c%74%61%62%62%79%2e%63%6f%6d'>em<!--
mailto:abuse@hotmail.com
</a>
-->ail</a>
•
<a href="vocation.xhtml">vocation</a>
•
<a rel="me" href="resume.xhtml">résumé</a>
•
<a href="avocation.xhtml">avocations</a>
•
<a href="input.xhtml">input</a>
•
<a href="output.xhtml">output</a>
•
<a href="politics.xhtml">politics</a>
•
<a href="metaphysics.xhtml">metaphysics</a>
</p>
</div> <!-- hCard -->

<p class="center">
<!-- When CSS3 is supported I can just use target-new: tab -->
<!-- Note when using CSS sprites:  if you don't put some sort of text,
even hidden text, inside the sprites, IE 8.0.6001.18702 (at least)
will size them incorrectly.  Hence all the hidden text even when I'm
not using XFN notation.
-->

<a rel="external me" href="http://mithriltabby.dreamwidth.org/"
title="Dreamwidth" class="favicon dreamwidth"><span class="hidden">Dreamwidth</span></a>

<a rel="external me" href="https://wandering.shop/@mithriltabby"
title="Mastodon (Main)" class="favicon mastodon"><span class="hidden">Mastodon (Main)</span></a>

<a rel="external me" href="https://dice.camp/@mithriltabby"
title="Mastodon (Gaming)" class="favicon mastodon"><span class="hidden">Mastodon (Gaming)</span></a>

<a rel="external me" href="https://bsky.app/profile/mithriltabby.bsky.social" title="Bluesky" class="favicon bluesky"><span class="hidden">Bluesky</span></a>

<a rel="external me" href="https://pixelfed.social/mithriltabby" title="Pixelfed" class="favicon pixelfed"><span class="hidden">Pixelfed</span></a>

<a rel="external me" href="https://cohost.org/mithriltabby" title="Cohost" class="favicon cohost"><span class="hidden">Cohost</span></a>

<a rel="external me" href="http://twitter.com/mithriltabby"
title="Twitter" class="favicon twitter"><span class="hidden">Twitter</span></a>

<a rel="external me" href="https://diasp.org/people/4d1bbcc5ec26e25e6f00037f" title="Diaspora" class="favicon diaspora"><span class="hidden">Diaspora</span></a>

<a rel="external me" href="http://mithriltabby.tumblr.com/"
title="Tumblr" class="favicon tumblr"><span class="hidden">tumblr</span></a>

<a rel="external me" href="http://pinterest.com/mithriltabby/" title="Pinterest" class="favicon pinterest"><span class="hidden">Pinterest</span></a>

<a rel="external me" href="http://www.diigo.com/profile/mithriltabby"
title="diigo" class="favicon diigo"><span class="hidden">diigo</span></a>

<a rel="external me" href="https://www.librarything.com/home/slothman"
title="LibraryThing" class="favicon librarything"><span class="hidden">LibraryThing</span></a>

<a rel="external me" href="http://stackexchange.com/users/5623/max-rible-kaehn"
title="Stack Exchange" class="favicon stackexchange"><span class="hidden">Stack Exchange</span></a>

<a rel="external me" href="http://www.linkedin.com/in/slothman"
title="LinkedIn" class="favicon linkedin"><span class="hidden">LinkedIn</span></a>

<a rel="external me" href="http://mithriltabby.yelp.com/"
title="Yelp" class="favicon yelp"><span class="hidden">Yelp</span></a>

<a rel="external me" href="http://www.youtube.com/profile?user=mithriltabby"
title="YouTube" class="favicon youtube"><span class="hidden">YouTube</span></a>

</p>


<div id="lhs" style="float: left; width: 49%;">

<!--<div id="twitter">
<h3><a rel="external" href="http://twitter.com/mithriltabby"><span
class="favicon twitter" title="Twitter"><span class="hidden">Twitter</span></span> latest tweets</a></h3>-->
<!-- Of course, these break the validator... thanks, Twitter! -->
<!--<a class="twitter-timeline" href="https://twitter.com/mithriltabby" data-widget-id="357734106316042240" width="100%" data-tweet-limit="5" data-chrome="noborders transparent noheader nofooter">Tweets by @mithriltabby</a>
<noscript>
<p>You must enable JavaScript to see inlined content.</p>
</noscript>
https://stockroom.wandering.shop/accounts/avatars/000/012/185/original/adb46dbc42c591f8.jpg
</div>-->

<h3><a rel="external" href="https://wandering.shop/@mithriltabby"><span
class="favicon mastodon" title="Mastodon"><span class="hidden">Mastodon</span></span> latest wandering.shop posts</a></h3>

<div class="mt-timeline">
  <div id="mt-body" class="mt-body" role="feed">
    <div class="loading-spinner"></div>
  </div>
</div>


<!-- Diigo have yet to make their API usable. -->
<!--
<div id="bookmarks">
    <h3><a rel="external" href="http://www.diigo.com/rss/user/mithriltabby"
class="sprite feedicon" title="RSS"><span class="hidden">RSS</span></a><a rel="external" href="http://www.diigo.com/user/mithriltabby"><span class="sprite favicon" title="diigo"
style="background-position: -60px 0px; vertical-align: -10%;"><span class="hidden">diigo</span></span>
latest bookmarks</a></h3>
<noscript>
<p>You must enable JavaScript to see inlined content.</p>
</noscript>
</div>
-->
</div>

<div id="rhs" style="float: right; width: 49%;">
<!-- ORB broke the JS I was using for Dreamwidth inlining -->
<!--<div id="dreamwidth">
<h3><a rel="external" href="http://mithriltabby.dreamwidth.org/data/rss" class="rss" title="RSS"><span class="hidden">RSS</span></a><a rel="external" href="http://mithriltabby.dreamwidth.org/" title="Dreamwidth" class="favicon dreamwidth"><span class="hidden">Dreamwidth</span></a>
<a href="http://mithriltabby.dreamwidth.org/"><span class="hidden">Dreamwidth</span> latest blog posts</a></h3>
<noscript>
<p>You must enable JavaScript to see inlined content.</p>
</noscript>
</div>-->

<div id="reviews" class="center">
<h3><a rel="external" href="https://www.librarything.com/rss/reviews/slothman"
class="rss" title="RSS"><span class="hidden">LibraryThing</span></a><a rel="external" href="https://www.librarything.com/profile_reviews.php?view=slothman"><span
class="favicon librarything" title="LibraryThing"><span class="hidden">RSS</span></span>
latest reviewed books</a></h3>
<noscript>
<p>You must enable JavaScript to see inlined content.</p>
</noscript>
</div>
<div id="acquisitions" class="center">
<h3><a rel="external" href="https://www.librarything.com/catalog/slothman&amp;sort=stamp"><span
class="favicon librarything" title="LibraryThing"><span class="hidden">LibraryThing</span></span>
recent acquisitions</a></h3>
<noscript>
<p>You must enable JavaScript to see inlined content.</p>
</noscript>
</div>

</div> <!-- lhs -->

<footer>
  <table class="footer">
    <tr class="middle">
      <td class="nowrap">
        <a rel="noopener" href="//validator.w3.org/check?uri=referer" target="_blank"><img src="/shadowrun/images/html5.svg" width="63" height="64" alt="HTML5 Powered" title="HTML5 Powered"></a>
        <a rel="noopener"  href="//jigsaw.w3.org/css-validator/check/referer/?profile=css3" target="_blank"><img src="/shadowrun/images/css3.svg" width="63" height="64" alt="CSS3 Styling" title="CSS3 Styling"></a>
      </td>
    </tr>
  </table>
</footer>


<!-- Do all the heavy-duty JavaScript work at the bottom, after the
     rest of the page has rendered. -->

<!-- Pull in blog data. -->
<!-- <script src="//mithriltabby.dreamwidth.org/?s2id=3134166"></script> -->

<!-- Inline the Diigo and Dreamwidth content and create the routines
     for LibraryThing to call. -->
<script src="inline.js"></script>

<!-- Call LibraryThing; it will invoke routines in inline.js -->
<!--
<script type="text/javascript"
        src="http://www.librarything.com/api/json_books.php?userid=slothman&amp;key=1­501478823&amp;max=5&amp;booksort=entry_REV&amp;res­ultsets=books&amp;callback=reading">
</script>
-->
<script src="//www.librarything.com/api/json_books.php?userid=slothman&amp;key=1­501478823&amp;limit=reviews&amp;max=10&amp;booksor­t=entry_REV&amp;resultsets=books,bookratings&amp;callback=bookreview">
</script>
<script src="//www.librarything.com/api/json_books.php?userid=slothman&amp;key=1­501478823&amp;max=15&amp;booksort=entry_REV&amp;re­sultsets=books&amp;callback=acquisition">
</script>

<!-- Pull in my Twitter feed. -->
<!--
<script type="text/javascript" src="http://api.twitter.com/1/statuses/user_timeline.json?user_id=48087970&amp;scre­en_name=mithriltabby&amp;count=10&amp;skip_user=true&amp;callback=tweet"></script>
-->
<!--
<script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getE­lementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNod­e.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
-->

</body></html>

Parsed source

<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
  <head>
    <title>mithriltabby - Max Kaehn’s home page</title>
    <link rel="stylesheet" type="text/css" href="style.css"/>
    <!-- Specifying UTF-8 in the HTTP headers doesn't persuade IE to use UTF-8. -->
    <!--[if IE]>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="ie.css" />
<![endif]-->
    <meta name="viewport" content="width=device-width, initial-scale=1"/>
    <link rel="icon" type="image/png" href="images/zonk16x16.png"/>
    <link rel="made" href="http://www.mithriltabby.com/"/>
    <script src="code.js"/>
    <link rel="stylesheet" href="mastodon-timeline.css"/>
    <script src="mastodon-timeline.js"/>
    <link rel="home start contents" href="/"/>
    <link rel="next" href="names.xhtml"/>
    <link rel="meta" type="application/rdf+xml" title="FOAF" href="foaf.rdf"/>
    <link rel="feed" href="http://mithriltabby.dreamwidth.org/data/rss" type="application/rss+xml" title="Dreamwidth"/>
    <link rel="feed" href="http://mithriltabby.tumblr.com/rss" type="application/rss+xml" title="Tumblr"/>
    <link rel="feed" href="http://www.diigo.com/rss/user/mithriltabby" type="application/rss+xml" title="Diigo links"/>
    <link rel="feed" href="https://www.librarything.com/rss/reviews/slothman" type="application/rss+xml" title="LibraryThing reviews"/>
    <link rel="me" href="https://micro.blog/mithriltabby"/>
    <link rel="feed" href="http://www.yelp.com/syndicate/user/FBp-DAU1vtSLg7ipitLUVA/rss.xml" type="application/rss+xml" title="Yelp reviews"/>
    <!-- http://wiki.whatwg.org/wiki/RelExtensions -->
    <link rel="pronunciation" href="lexicon.xml"/>
    <meta name="description" content="The home page of Max Kaehn."/>
    <meta name="keywords" content="Max Rible Kaehn, Max Kaehn, Max Rible"/>
    <meta name="author" content="Max Rible Kaehn"/>
    <meta name="ICBM" content="37.38211, -122.027965"/>
    <meta name="geo.position" content="37.38211;-122.027965"/>
    <meta name="geo.placename" content="Maine Coon Manor, Sunnyvale, CA, US"/>
    <meta name="geo.region" content="US"/>
    <meta name="google-site-verification" content="OwOa7d5PaqW-onn8jNYsXe4e41PmLeqlpROSfwyKc40"/>
  </head>
  <body>
<!-- Put a 100px margin on the left to match the img on the right. -->
<div style="float:left; width:100px; height:79px"/>
<div style="float:right; width:100px; height:100px"><img src="images/mithriltabby.png" style="float:right" width="100" height="100" alt="mithriltabby"/></div>
<h1 style="margin-bottom: 0; clear:none;">mithriltabby</h1>
<!-- hCard microformat -->
<div class="vcard">
  <p class="subhead"><i>
    <span class="n fn">
      <span class="given-name">Max</span>
      <span class="additional-name">Rible</span>
      <span class="family-name">Kaehn</span>
    </span>
  </i></p>
  <div class="geo hidden">
    <abbr class="latitude" title="37.38211">37°22’55.60” N</abbr>,
    <abbr class="longitude" title="-122.027965">122°1’40.67” W</abbr>
  </div>
  <!-- Put the short version of my name here in hopes of bringing up the
       rank on searches for “Max Kaehn”. -->
  <p class="hidden">Max Kaehn</p>
  <img class="photo hidden" src="//www.mithriltabby.com/images/usericon.jpeg" alt="hCard photo"/><!-- Hyperlinks to all my various online identities, with XFN notation
indicating that it’s me.  Need to include a hidden span of the actual
names, since XFN won’t figure it out from the title/alt of the images
I’m using.
--><p class="center">
<a class="url hidden" href="http://www.mithriltabby.com/">home</a>
<span class="hidden">•</span>
<a href="names.xhtml">names</a>
• <!-- Obfuscated email address in hopes of deterring spambots. -->
<a class="email me" href="mailto:%73%6c%6f%74­%68%6d%61%6e%40%6d%69%74%68%72%69%6c%74%61%62%62%79%2e%63%6f%6d">em<!--
mailto:abuse@hotmail.com
</a>
-->ail</a>
•
<a href="vocation.xhtml">vocation</a>
•
<a rel="me" href="resume.xhtml">résumé</a>
•
<a href="avocation.xhtml">avocations</a>
•
<a href="input.xhtml">input</a>
•
<a href="output.xhtml">output</a>
•
<a href="politics.xhtml">politics</a>
•
<a href="metaphysics.xhtml">metaphysics</a>
</p>
</div> <!-- hCard -->

<p class="center">
<!-- When CSS3 is supported I can just use target-new: tab -->
<!-- Note when using CSS sprites:  if you don't put some sort of text,
even hidden text, inside the sprites, IE 8.0.6001.18702 (at least)
will size them incorrectly.  Hence all the hidden text even when I'm
not using XFN notation.
-->

<a rel="external me" href="http://mithriltabby.dreamwidth.org/" title="Dreamwidth" class="favicon dreamwidth"><span class="hidden">Dreamwidth</span></a>

<a rel="external me" href="https://wandering.shop/@mithriltabby" title="Mastodon (Main)" class="favicon mastodon"><span class="hidden">Mastodon (Main)</span></a>

<a rel="external me" href="https://dice.camp/@mithriltabby" title="Mastodon (Gaming)" class="favicon mastodon"><span class="hidden">Mastodon (Gaming)</span></a>

<a rel="external me" href="https://bsky.app/profile/mithriltabby.bsky.social" title="Bluesky" class="favicon bluesky"><span class="hidden">Bluesky</span></a>

<a rel="external me" href="https://pixelfed.social/mithriltabby" title="Pixelfed" class="favicon pixelfed"><span class="hidden">Pixelfed</span></a>

<a rel="external me" href="https://cohost.org/mithriltabby" title="Cohost" class="favicon cohost"><span class="hidden">Cohost</span></a>

<a rel="external me" href="http://twitter.com/mithriltabby" title="Twitter" class="favicon twitter"><span class="hidden">Twitter</span></a>

<a rel="external me" href="https://diasp.org/people/4d1bbcc5ec26e25e6f00037f" title="Diaspora" class="favicon diaspora"><span class="hidden">Diaspora</span></a>

<a rel="external me" href="http://mithriltabby.tumblr.com/" title="Tumblr" class="favicon tumblr"><span class="hidden">tumblr</span></a>

<a rel="external me" href="http://pinterest.com/mithriltabby/" title="Pinterest" class="favicon pinterest"><span class="hidden">Pinterest</span></a>

<a rel="external me" href="http://www.diigo.com/profile/mithriltabby" title="diigo" class="favicon diigo"><span class="hidden">diigo</span></a>

<a rel="external me" href="https://www.librarything.com/home/slothman" title="LibraryThing" class="favicon librarything"><span class="hidden">LibraryThing</span></a>

<a rel="external me" href="http://stackexchange.com/users/5623/max-rible-kaehn" title="Stack Exchange" class="favicon stackexchange"><span class="hidden">Stack Exchange</span></a>

<a rel="external me" href="http://www.linkedin.com/in/slothman" title="LinkedIn" class="favicon linkedin"><span class="hidden">LinkedIn</span></a>

<a rel="external me" href="http://mithriltabby.yelp.com/" title="Yelp" class="favicon yelp"><span class="hidden">Yelp</span></a>

<a rel="external me" href="http://www.youtube.com/profile?user=mithriltabby" title="YouTube" class="favicon youtube"><span class="hidden">YouTube</span></a>

</p>


<div id="lhs" style="float: left; width: 49%;">

<!--<div id="twitter">
<h3><a rel="external" href="http://twitter.com/mithriltabby"><span
class="favicon twitter" title="Twitter"><span class="hidden">Twitter</span></span> latest tweets</a></h3>-->
<!-- Of course, these break the validator... thanks, Twitter! -->
<!--<a class="twitter-timeline" href="https://twitter.com/mithriltabby" data-widget-id="357734106316042240" width="100%" data-tweet-limit="5" data-chrome="noborders transparent noheader nofooter">Tweets by @mithriltabby</a>
<noscript>
<p>You must enable JavaScript to see inlined content.</p>
</noscript>
https://stockroom.wandering.shop/accounts/avatars/000/012/185/original/adb46dbc42c591f8.jpg
</div>-->

<h3><a rel="external" href="https://wandering.shop/@mithriltabby"><span class="favicon mastodon" title="Mastodon"><span class="hidden">Mastodon</span></span> latest wandering.shop posts</a></h3>

<div class="mt-timeline">
  <div id="mt-body" class="mt-body" role="feed">
    <div class="loading-spinner"/>
  </div>
</div>


<!-- Diigo have yet to make their API usable. -->
<!--
<div id="bookmarks">
    <h3><a rel="external" href="http://www.diigo.com/rss/user/mithriltabby"
class="sprite feedicon" title="RSS"><span class="hidden">RSS</span></a><a rel="external" href="http://www.diigo.com/user/mithriltabby"><span class="sprite favicon" title="diigo"
style="background-position: -60px 0px; vertical-align: -10%;"><span class="hidden">diigo</span></span>
latest bookmarks</a></h3>
<noscript>
<p>You must enable JavaScript to see inlined content.</p>
</noscript>
</div>
-->
</div>

<div id="rhs" style="float: right; width: 49%;">
<!-- ORB broke the JS I was using for Dreamwidth inlining -->
<!--<div id="dreamwidth">
<h3><a rel="external" href="http://mithriltabby.dreamwidth.org/data/rss" class="rss" title="RSS"><span class="hidden">RSS</span></a><a rel="external" href="http://mithriltabby.dreamwidth.org/" title="Dreamwidth" class="favicon dreamwidth"><span class="hidden">Dreamwidth</span></a>
<a href="http://mithriltabby.dreamwidth.org/"><span class="hidden">Dreamwidth</span> latest blog posts</a></h3>
<noscript>
<p>You must enable JavaScript to see inlined content.</p>
</noscript>
</div>-->

<div id="reviews" class="center">
<h3><a rel="external" href="https://www.librarything.com/rss/reviews/slothman" class="rss" title="RSS"><span class="hidden">LibraryThing</span></a><a rel="external" href="https://www.librarything.com/profile_reviews.php?view=slothman"><span class="favicon librarything" title="LibraryThing"><span class="hidden">RSS</span></span>
latest reviewed books</a></h3>
<noscript>
<p>You must enable JavaScript to see inlined content.</p>
</noscript>
</div>
<div id="acquisitions" class="center">
<h3><a rel="external" href="https://www.librarything.com/catalog/slothman&amp;sort=stamp"><span class="favicon librarything" title="LibraryThing"><span class="hidden">LibraryThing</span></span>
recent acquisitions</a></h3>
<noscript>
<p>You must enable JavaScript to see inlined content.</p>
</noscript>
</div>

</div> <!-- lhs -->

<footer><table class="footer"><tr class="middle"><td class="nowrap">
        <a rel="noopener" href="//validator.w3.org/check?uri=referer" target="_blank"><img src="/shadowrun/images/html5.svg" width="63" height="64" alt="HTML5 Powered" title="HTML5 Powered"/></a>
        <a rel="noopener" href="//jigsaw.w3.org/css-validator/check/referer/?profile=css3" target="_blank"><img src="/shadowrun/images/css3.svg" width="63" height="64" alt="CSS3 Styling" title="CSS3 Styling"/></a>
      </td>
    </tr></table></footer><!-- Do all the heavy-duty JavaScript work at the bottom, after the
     rest of the page has rendered. --><!-- Pull in blog data. --><!-- <script src="//mithriltabby.dreamwidth.org/?s2id=3134166"></script> --><!-- Inline the Diigo and Dreamwidth content and create the routines
     for LibraryThing to call. --><script src="inline.js"/><!-- Call LibraryThing; it will invoke routines in inline.js --><!--
<script type="text/javascript"
        src="http://www.librarything.com/api/json_books.php?userid=slothman&amp;key=1­501478823&amp;max=5&amp;booksort=entry_REV&amp;res­ultsets=books&amp;callback=reading">
</script>
--><script src="//www.librarything.com/api/json_books.php?userid=slothman&amp;key=1­501478823&amp;limit=reviews&amp;max=10&amp;booksor­t=entry_REV&amp;resultsets=books,bookratings&amp;callback=bookreview">
</script><script src="//www.librarything.com/api/json_books.php?userid=slothman&amp;key=1­501478823&amp;max=15&amp;booksort=entry_REV&amp;re­sultsets=books&amp;callback=acquisition">
</script><!-- Pull in my Twitter feed. --><!--
<script type="text/javascript" src="http://api.twitter.com/1/statuses/user_timeline.json?user_id=48087970&amp;scre­en_name=mithriltabby&amp;count=10&amp;skip_user=true&amp;callback=tweet"></script>
--><!--
<script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getE­lementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNod­e.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
--></body>
</html>

Credits

Written by . Icons are from Tango Icon Library. Test cases include hCard Acid test by Dmitry Baranovskiy, examples from microformats.org and hCard test suite.

Source code is available under the BSD license.


¹ It's not a validator in the XML/SGML sense.