This is an unofficial validator¹/conformance checker of the hCard microformat.
Po polsku
En français
(translations welcome!)
Referer
<a href="http://hcard.geekhood.net/referrer/">Validate hCards</a>
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.
This document contains errors.
There must be at least one element with class="vcard"
.
<!DOCTYPE html> <html lang="en-us" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="SNPARKING" /> <!-- Yandex.Metrika counter --> <script type="text/javascript" > (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(97166200, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true }); </script> <noscript><div><img src="https://mc.yandex.ru/watch/97166200" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> </head> <body> <script type="text/javascript"> var _paq = _paq || []; </script> <script> //var timerId = setInterval(function() { //if (_paq !== null && typeof _paq === 'object' && _paq.length === undefined) { //clearInterval(timerId); window.location = "http://ticketshop.ru/?parking_id=421787"; //return false; // } //}, 50); </script> </body> </html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-us" class="no-js"> <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta name="author" content="SNPARKING"/> <!-- Yandex.Metrika counter --> <script type="text/javascript"> (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(97166200, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true }); </script> <noscript> <div> <img src="https://mc.yandex.ru/watch/97166200" style="position:absolute; left:-9999px;" alt=""/> </div> </noscript> <!-- /Yandex.Metrika counter --> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> <!-- meta inserted by hCard Validator --> </head> <body> <script type="text/javascript"> var _paq = _paq || []; </script><script> //var timerId = setInterval(function() { //if (_paq !== null && typeof _paq === 'object' && _paq.length === undefined) { //clearInterval(timerId); window.location = "http://ticketshop.ru/?parking_id=421787"; //return false; // } //}, 50); </script></body> </html>
Written by Kornel Lesiński . 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.