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

This document contains errors.

File source

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="sv">
<head>
<title>Thorbjörn 'Puggan' Backlund - Info</title>
<meta http-equiv='Content-Type' content='text/html;charset=utf-8' />
<meta name='Description' content='Thorbjörn Puggan Backlund - Info' />
<style type="text/css">
* {background-color: #FFC; color: #006;}
A {color: #006;}
A IMG {border: none;}
H3 {clear: both; padding-top: 20px;}
P {clear: both; margin: 0px;}
P SPAN.c1 {display: block; float: left; width: 120px; font-weight: bold;}
P.odd, P.odd SPAN {background-color: #FFE;}
P.even, P.even SPAN {background-color: #FFA;}
P.tweet {border: solid 1px black; margin: 5px; padding: 3px;}
P.tweet SPAN {font-size: small; display: inline; float: none; width: auto; font-weight: normal;}
.type {display: none}
</style>
<script type="application/ld+json">
{
	"@context" : "http://schema.org",
	"@type" : "WebSite",
	"name" : "Puggan",
	"url" : "https://puggan.se"
}
</script>
<script type="application/ld+json">
{
	"@context": "http://schema.org",
	"@type": "Person",
	"additionalName": "Puggan",
	"address": {
		"@type": "PostalAddress",
		"addressCountry": "Sweden",
		"addressLocality": "Göteborg",
      "postalCode": "41745",
		"streetAddress": "Norumshöjd 60 LGH 1201"
   },
	"birthDate": "1984-06-01",
   "email": "mailto:puggan@puggan.se",
	"familyName": "Backlund",
	"gender": "male",
	"givenName": "Thorbjörn",
   "image": "puggan3.jpg",
   "jobTitle": "PHP Developer",
	"memberOf": {
		"name": "Tuve Scoutkår",
		"url": "http://tuve.scout.se"
	 },
	"nationality": "Sweden",
	"taxID": "SE198406014897",
   "telephone": "+46736414351",
	"worksFor": {
		"name": "Testseek",
		"url": "http://www.testseel.com/"
	},
   "url": "https://puggan.se/"
}
</script>
</head>
<body class='vcard'>
<h1 class='fn nickname'>Puggan</h1>
<h2 class='n'><span class='given-name'>Thorbjörn</span> <span class='family-name'>Backlund</span></h2>
  <p>
    <img alt="[Kort från 2011-09-26]" title="Kort från 2011-09-26" src="puggan3.jpg" class='photo' />
    <img alt="[Kortet från mitt ID]" title="Kortet från mitt ID" src="TB1.jpeg" class='photo' />
    <img alt="[Jag när jag var liten]" title="Jag när jag var liten" src="TB2.jpeg" class='photo' />
  </p>
  <p class='odd' ><span class='c1'>Namn:</span>Thorbjörn Backlund</p>
  <p class='even'><span class='c1'>Nick:</span>Puggan</p>
  <p class='odd'><span class='c1'>Personnr:</span><span class='uid'>(19)84-06-01-4897</span> (33 år och 50 dagar)</p>
  <p class='even'><span class='c1'>Address:</span><span class='adr'><span class='street-address'>Norumshöjd 60, LGH 1201</span>, <span class='postal-code'>417 45</span> <span class='locality'>Göteborg</span>, <span class='country-name'>Sverige</span><span class='type'>home</span></span></p>

<h3>Kontaktuppgifter</h3>
  <p class='odd' ><span class='c1'>Mobil:</span><span class='tel'><span class='value'>0736-41 43 51</span><span class='type'>cell</span></span></p>
  <p class='even'><span class='c1'>Hemtelefon:</span><span class='tel'><span class='value'>031-3 000 789</span><span class='type'>home</span></span></p>
  <p class='odd' ><span class='c1'>Skype:</span>puggan.mobil (går till mobilen), puggan (offline)</p>
  <p class='even'><span class='c1'>Jabber:</span>14pbzEYa6QudyWaMZACt­aDjoK51mbeNgyC@jabber.se</p>
  <p class='odd' ><span class='c1'>GTalk:</span>puggan (går till mobilen)</p>
  <p class='even'><span class='c1'>IRC:</span>puggan@QNet &amp; puggan@mibbit</p>
  <p class='odd' ><span class='c1'>Facebook:</span>Puggan Se (/puggan.se)</p>
  <p class='even' ><span class='c1'>Twitter:</span>@puggan</p>
  <p class='odd'><span class='c1'>ICQ:</span>152998954</p>
<h3>Bitcoins</h3>
 <p class='odd' ><span class='c1'>Bitcoins (1)</span><a href='https://blockchain.info/address/1PuGGaN1Lj26nQayvZi4szH6V­Lt8sb1LcU'>1PuGGaN1Lj26nQayvZi4szH6VLt8sb1LcU</a></p>
 <p class='even'><span class='c1'>Bitcoins (2)</span><a href='https://blockchain.info/address/14pbzEYa6QudyWaMZACtaDjoK­51mbeNgyC'>14pbzEYa6QudyWaMZACtaDjoK51mbeNgyC</a></p>
<h3>Jobb &amp; Skola</h3>
  <p class='odd' ><span class='c1'>Yrke:</span>Programmerare (huvudsakligen PHP)</p>
  <p class='even'><span class='c1'>Företag:</span><span class='org'>Testseek</span></p>
  <p class='odd' ><span class='c1'>Högskola:</span>Automation, Chalmers, Göteborg, Ej klar, 2003</p>
  <p class='even'><span class='c1'>Gymnasium:</span>EL-Data, Trio-gymnasiet, Kungälv, 2000-2003</p>
<h3>Övrigt</h3>
  <p class='odd' ><span class='c1'>OS:</span>Gentoo</p>
  <p class='even'><span class='c1'>Desktop:</span>KDE</p>
  <p class='odd' ><span class='c1'>Internet:</span>100/100 Mbit/s</p>
  <p class='even'><span class='c1'>Mobil:</span>Philips w6610</p>

<h4>Publika Nyklar</h4>
<ul>
<li><a href='https://puggan.se/public_keys/puggan_spiro_BB56E92EC0C8344E.asc'>Epost för Jobbet (Spiro) [C0C8344E]</a></li>
<li><a href='https://puggan.se/public_keys/puggan_testseek_4F6CF45D.asc'>Epost för Jobbet (Testseek) [4F6CF45D]</a></li>
<li><a href='https://puggan.se/public_keys/puggan_CC197020.asc'>Epost för övrigt [CC197020]</a></li>
</ul>

<h4>Contribution to Open-Source Projects</h4>
<ul>
	<li>S-smtp: <a href="https://github.com/badoo/ssmtp/commits?author=puggan">Commit 68c34ec</a></li>
	<li>Laravel-Framework: <a href="https://github.com/laravel/framework/pull/18086">PR 18086</a> [php]</li>
	<li>PHP-Storm-Stubs: <a href="https://github.com/JetBrains/phpstorm-stubs/commits?author=puggan">Commit 52c50a9</a> [php]</li>
	<li>Nano-highlight: <a href="https://github.com/serialhex/nano-highlight/commits?author=puggan">Commit 1b13a43</a> [regexp, nanorc]</li>
	<li>OpenCPN: <a href="https://github.com/OpenCPN/OpenCPN/commits?author=puggan">Commit 1cc286e</a> [C++]</li>
	<li>cli-2-phone: <a href="https://github.com/sklnd/cli2phone/commits?author=puggan">Commits 0d05de0 & 6213b6b</a> [Python]</li>
	<li>Skojt: <a href="https://github.com/martin-green/skojjt/commits?author=puggan">Commit 1a8da2a and more</a> [(Python), HTML]</li>
</ul>

<h4>Standarder mm</h4>
<ul>
	<li>
		You can download my contact information as a <a href='puggan.vcf'>vcard</a>
	</li>
   <li>
		<a href='http://hcard.geekhood.net/?url=puggan.se'><img src='hcard.png' alt='[hcard valid icon]' /></a>
		This page is a <a href='http://hcard.geekhood.net/?url=puggan.se'>hCard</a>
	</li>
	<li>
		<a href='http://validator.w3.org/check?uri=puggan.se'><img src="valid-xhtml10.png" alt='[XHTML valid icon]' /></a>
		This page is a <a href='http://validator.w3.org/check?uri=puggan.se'>XHTML</a> page
	</li>
	<li>
		<a href='http://jigsaw.w3.org/css-validator/validator?uri=puggan.se'><img src="https://jigsaw.w3.org/css-validator/images/vcss" alt='[CSS valid icon]' /></a>
		This page uses <a href='http://jigsaw.w3.org/css-validator/validator?uri=puggan.se'>CSS</a>
	</li>

</ul>
<div style='display: none;'>Extra hcard data:
	<span class='bday'>1984-06-01</span>
	<a class='url' href='https://puggan.se./'>https://puggan.se./</a>
	<span class='email'>from_hcard_puggan_se@puggan.se</span>
</div>

<hr />
<h4>Flairs</h4>
<div style='float: left;'><a href="http://stackoverflow.com/users/885872/puggan-se"><img src="https://stackoverflow.com/users/flair/885872.png?theme=dark" alt="[stackoverflow-flair]" title="profile for Puggan Se at Stack Overflow, Q&amp;A for professional and enthusiast programmers" /></a></div>
<div style='float: left;'><a href="http://stackexchange.com/users/83800"><img src="https://stackexchange.com/users/flair/83800.png" width="208" height="58" alt="profile for Puggan Se on Stack Exchange, a network of free, community-driven Q&amp;A sites" title="profile for Puggan Se on Stack Exchange, a network of free, community-driven Q&amp;A sites" /></a></div>

<br style='margin: 20px;' />
</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.