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.
Failed to load XML. Re-parse as HTML.
<meta>
(started in line 6), but found “</head>” insteadLine 275, column 8
Line 278, column 19
Line 278, column 19
Invalid syntax of attributes may have caused this.
Line 278, column 19
<body>
(started in line 277), but found “</script>” insteadLine 278, column 252
Every &
must be escaped as &
.
Line 298, column 36
Every &
must be escaped as &
.
Line 298, column 50
;
”You must add “;
” at the end of entity name. If it wasn't supposed to be an entity, escape &
as &
.
Line 310, column 55
<head>
(started in line 4), but found “</body>” insteadLine 566, column 8
2 duplicate XML
errors not shown.
<!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" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>interbus.cz</title> <style media="screen"> #sale_link, #sale_link_bold, #sale_link_below { color: rgb(0,0,0); text-align: right; font: 14px arial, sans-serif; height: 20px; padding: 10px 0 5px 0; width: 900px; margin: 0 auto; z-index: 20; } #sale_link a, #sale_link_below a { text-decoration: underline; color: rgb(0,0,0); font-size: 14px; } #sale_link_bold a { font-weight: bold; text-decoration: underline; color: rgb(0,0,0); font-size: 14px; } #sale_link a:hover, #sale_link_bold a:hover, #sale_link_below a:hover { color: rgb(100,100,100); } #sale_link_below { text-align: center; } #sale_banner_gray { background: url('//d38psrni17bvxu.cloudfront.net/themes/sale/sale_simple.png') repeat-x; } #sale_banner_orange { background: url('//d38psrni17bvxu.cloudfront.net/themes/sale/orange.png') repeat-x; } #sale_banner_gray, #sale_banner_orange { border-bottom: 1px solid rgb(200,200,200); color: rgb(200,200,200); text-align: center; font: 16px arial, sans-serif; font-weight: bold; padding: 8px 0 0 0; height: 28px; } #sale_banner_gray a.firstlink, #sale_banner_orange a.firstlink { text-decoration: none; display: block; } #sale_banner_gray a, #sale_banner_orange a { color: rgb(255,255,255); } #sale_banner_orange_wide { background-position: bottom; background-color: #E57921; padding: 18px 0; text-align: center; font-family: sans-serif; font-size: 14px; } #sale_banner_orange_wide a { color: #fff; text-decoration: none; font-weight: bold; } #sale_discreet { background: url('//d38psrni17bvxu.cloudfront.net/themes/sale/sale_simple.png') repeat-x; border-bottom: 1px solid rgb(200,200,200); color: rgb(200,200,200); text-align: right; font: 14px arial, sans-serif; height: 28px; padding: 10px 20px 0 0; } #sale_discreet a { text-decoration: none; color: rgb(240,240,240); font-size: 14px; } #sale_prominent { height: 68px; } #sale_prominent #grey { background: rgb(145,140,137); color: rgb(255,255,255); text-align: right; font: 14px arial, sans-serif; height: 62px; padding: 7px 15px 0 50px; border-bottom: 1px solid rgb(90,90,90); float: right; } #sale_prominent #grey img { float: left; margin: -7px 0 0 -100px; } #sale_prominent #sale_top { font-size: 20px; } #sale_prominent #sale_bottom a { text-decoration: none; color: blue; font-size: 14px; } #sale_diagonal_orange { height:50px; line-height:25px; text-transform:uppercase; font-family:'Port Lligat Slab',sans-serif; font-weight:lighter; text-align:center; z-index: 20; } #sale_diagonal_orange a { display:block; height:100%; color:#000; text-decoration:none; background: #f25b00; background: -moz-linear-gradient(left, #f25b00 0%, #f49300 47%, #f25b00 100%); background: -webkit-gradient(linear, left top, right top, color-stop(0%,#f25b00), color-stop(47%,#f49300), color-stop(100%,#f25b00)); background: -webkit-linear-gradient(left, #f25b00 0%,#f49300 47%,#f25b00 100%); background: -o-linear-gradient(left, #f25b00 0%,#f49300 47%,#f25b00 100%); background: -ms-linear-gradient(left, #f25b00 0%,#f49300 47%,#f25b00 100%); background: linear-gradient(to right, #f25b00 0%,#f49300 47%,#f25b00 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f25b00', endColorstr='#f25b00',GradientType=1 ); } #sale_diagonal_orange a:hover { text-decoration:underline; } #sale_diagonal_orange span { display:inline-block; margin:0 3px; } #break { display:none; } @media only screen and (min-width : 480px) { #sale_diagonal_orange { width: 400px; height:70px; position:fixed; right:-120px; top:42px; line-height:20px; z-index: 20; } #sale_diagonal_orange a { -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -o-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); color: #fff; } #sale_diagonal_orange span:first-child { padding-top: 5px; } #break { display: block; } } </style> <style media="screen"> .asset_star0 { background: url('//d38psrni17bvxu.cloudfront.net/themes/assets/star0.gif') no-repeat center; width: 13px; height: 12px; display: inline-block; } .asset_star1 { background: url('//d38psrni17bvxu.cloudfront.net/themes/assets/star1.gif') no-repeat center; width: 13px; height: 12px; display: inline-block; } .asset_starH { background: url('//d38psrni17bvxu.cloudfront.net/themes/assets/starH.gif') no-repeat center; width: 13px; height: 12px; display: inline-block; } .sitelink { padding-right: 16px; } .sellerRatings a:link, .sellerRatings a:visited, .sellerRatings a:hover, .sellerRatings a:active { text-decoration: none; cursor: text; } .sellerRatings { margin:0 0 3px 20px; } .sitelinkHolder { margin:-15px 0 15px 35px; } #ajaxloaderHolder { display: block; width: 24px; height: 24px; background: #fff; padding: 8px 0 0 8px; margin:10px auto; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; }</style> <style media="screen"> /* skzcss - for tests */ body { margin: 0; padding: 0; height: 100%; overflow: hidden; } iframe { margin: 0; padding: 0; border: none; width: 100%; height: 100%; } #content { position: absolute; left: 0; right: 0; bottom: 0; top: 0; } #imprint { position: relative; bottom: 0; text-align: center; padding-top: 5px; height: 25px; } </style> <meta name="description" content="This domain may be for sale!" /> </head> <body> <script async src="https://euob.youseasky.com/sxp/i/224f85302aa2b6ec30aac9a85da2cbf9.js" data-ch="AdsDeli - domain - landingpage" data-uvid="f2dbd2291c6294d309b6f618ae3688bd3ea5ae42" class="ct_clicktrue_80705" data-jsonp="onCheqResponse"></script> <noscript> <iframe src="https://obseu.youseasky.com/ns/224f85302aa2b6ec30aac9a85da2cbf9.html?ch=AdsDeli%20-%20domain%20-%20landingpage" width="0" height="0" style="display:none"></iframe> </noscript> <script type="application/javascript"> let scriptPath=''; window.chronosFailed = function () { console.log('Callback complete.'); }; window.chronosSuccess = function (data) { document.getElementById('content').remove(); Array.from(document.getElementsByTagName('iframe')).forEach((iframe) => iframe.remove()); }; </script> <script type="text/javascript"> var ls = function(xhr, token) { xhr.onreadystatechange = function () { if (xhr.readyState === XMLHttpRequest.DONE) { if (xhr.status >= 200 && xhr.status <= 400) { if (xhr.responseText.trim() === '') { return; } console.log(JSON.parse(xhr.responseText)) } else { console.log('There was a problem with the request.'); } } } xhr.open('GET', '/munin/a/l' + 's?t=68ede474&token=' + encodeURI(token), true); xhr.send(); }; ls(new XMLHttpRequest(), 'f2dbd2291c6294d309b6f618ae3688bd3ea5ae42'); if (typeof window.chronosFailed === 'function') { window.chronosFailed(); } </script> <div> <style> .sale_banner_gray { background:#706b67; background: -moz-linear-gradient(top, #817c78 0%, #5d5854 100%); background: -webkit-linear-gradient(top, #817c78 0%,#5d5854 100%); background: linear-gradient(to bottom, #817c78 0%,#5d5854 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#817c78', endColorstr='#5d5854',GradientType=0 ); border-top: 1px solid #eee; border-bottom: 1px solid #eee; color: #c8c8c8; text-align: center; font: bold 16px/36px sans-serif; height: 36px; } .sale_banner_gray a { display: block; color:#fff; text-decoration: none; } </style> <div class="sale_banner_gray" style="border-top:none"> <a href="https://www.mydomaincontact.com/?domain_name=interbus.cz" target="_blank"> Kontaktovat majitele domeny | Contact the owner of this domain </a> </div> </div> <div id="content"> <iframe id="iframe" frameBorder="0" src="https://yfdnza.com/?dn=interbus.cz&pid=9PO755G95"></iframe> </div> <script> (function () { document.getElementById('content').style.top = document.getElementById('content').previousElementSibling.clientHeight + 'px'; })(); </script> <style media="screen"> .asset_star0 { background: url('//d38psrni17bvxu.cloudfront.net/themes/assets/star0.gif') no-repeat center; width: 13px; height: 12px; display: inline-block; } .asset_star1 { background: url('//d38psrni17bvxu.cloudfront.net/themes/assets/star1.gif') no-repeat center; width: 13px; height: 12px; display: inline-block; } .asset_starH { background: url('//d38psrni17bvxu.cloudfront.net/themes/assets/starH.gif') no-repeat center; width: 13px; height: 12px; display: inline-block; } .sitelink { padding-right: 16px; } .sellerRatings a:link, .sellerRatings a:visited, .sellerRatings a:hover, .sellerRatings a:active { text-decoration: none; cursor: text; } .sellerRatings { margin:0 0 3px 20px; } .sitelinkHolder { margin:-15px 0 15px 35px; } #ajaxloaderHolder { display: block; width: 24px; height: 24px; background: #fff; padding: 8px 0 0 8px; margin:10px auto; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; }</style><style media="screen"> * { margin:0;padding:0 } body { background:#101c36; font-family: sans-serif; text-align: center; font-size:1rem; } .header { padding:1rem 1rem 0; overflow:hidden; } h1 { color:#848484; font-size:1.5rem; } .header-text-color:visited, .header-text-color:link, .header-text-color { color:#848484; } .comp-is-parked { margin: 4px 0 2px; } .comp-sponsored { text-align: left; margin: 0 0 -1.8rem 4px; } .wrapper1 { margin:1rem; } .wrapper2 { background:url('//d38psrni17bvxu.cloudfront.net/themes/cleanPeppermintBlackConsent_657d9013/img/bottom.png') no-repeat center bottom; padding-bottom:140px; } .wrapper3 { background:#fff; max-width:300px; margin:0 auto 1rem; padding-top:1px; padding-bottom:1px; } .onDesktop { display:none; } .tcHolder { padding-top: 2rem; } .adsHolder { margin: 1rem 0; padding-top: 2rem; overflow:hidden; } .footer { color:#626574; padding:2rem 1rem; font-size:.8rem; margin:0 auto; max-width:440px; } .footer a:link, .footer a:visited { color:#626574; } .sale_link_bold a, .sale_link, .sale_link a { color:#626574 !important; } .searchHolder { padding:1px 0 1px 1px; margin:1rem auto; width: 95%; max-width: 500px; } .fallback-term-holder { display: inline-grid; grid-template-columns: 1fr; width: 100%; padding-top: 50px; } .fallback-term-link { grid-column: 1 / span 1; align-self: center; padding: 50px 13px 50px 13px; border-radius: 25px; border: 5px solid #ffffff; margin-bottom: 20px; background-color: rgb(16, 28, 54); text-decoration-line: none; font-size: 18px; font-weight: 700; color: #ffffff; text-align: left; } .fallback-term-link:hover { background-color: #242b42; text-decoration-line: underline; text-decoration-color: currentColor; text-decoration-thickness: auto; } @media screen and (min-width:600px) { .comp-is-parked, .comp-sponsored { color: #848484; } .comp-sponsored { margin-left: 0; } .wrapper1 { max-width:1500px; margin-left:auto; margin-right:auto; } .wrapper2 { background:url('//d38psrni17bvxu.cloudfront.net/themes/cleanPeppermintBlackConsent_657d9013/img/arrows.png') no-repeat center top; padding-bottom:0; min-height:600px; } .wrapper3 { max-width:530px; background:none; } } </style> <div class="wrapper1" id="keywords-template" style="display:none;"> <div class="wrapper2"> <div class="wrapper3"> <div id="fallbackTerms" class="fallback-term-holder"></div> </div> </div> </div> </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.