{"id":22255,"date":"2014-07-24T10:21:30","date_gmt":"2014-07-24T08:21:30","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=22255"},"modified":"2014-07-24T10:21:30","modified_gmt":"2014-07-24T08:21:30","slug":"validating-website-html-css-and-links-from-the-command-line","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/24\/validating-website-html-css-and-links-from-the-command-line\/","title":{"rendered":"Validating website HTML, CSS, and links from the command line"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>When working on a long running projects, it&#8217;s easy to lose track of HTML and CSS standard compliance. \u00a0Also, link rot is a common occurrence. \u00a0Gladly, there are command line tools that can be executed on a regular basis (think weekly or monthly cron jobs), that would check the site and report any issues with it. \u00a0Here is one of the ways.<\/p>\n<p>Installation on Fedora:<\/p>\n<pre class=\"brush: bash; light: true; title: ; notranslate\" title=\"\">\r\nyum install linkchecker\r\nyum install python-tidy\r\nyum install python-cssutils\r\n<\/pre>\n<p>Example command line:<\/p>\n<pre class=\"brush: bash; light: true; title: ; notranslate\" title=\"\">\r\nlinkchecker -t20 --check-html --check-css https:\/\/mamchenkov.net\r\n<\/pre>\n<p>Obviously, check the manual of linkchecker for more options.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>When working on a long running projects, it&#8217;s easy to lose track of HTML and CSS standard compliance. \u00a0Also, link rot is a common occurrence. \u00a0Gladly, there are command line tools that can be executed on a regular basis (think weekly or monthly cron jobs), that would check the site and report any issues with &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/24\/validating-website-html-css-and-links-from-the-command-line\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Validating website HTML, CSS, and links from the command line<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,18,133,62,1334],"tags":[1960,1517,1190,1365,1330],"keyring_services":[],"class_list":["post-22255","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-sysadmin","category-technology","category-web-work","tag-command-line","tag-css","tag-html","tag-standard-compliance","tag-web-development"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":28983,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/11\/19\/percollate-a-command-line-tool-to-turn-web-pages-into-beautifully-formatted-pdfs\/","url_meta":{"origin":22255,"position":0},"title":"percollate &#8211; a command-line tool to turn web pages into beautifully formatted PDFs","author":"Leonid Mamchenkov","date":"November 19, 2018","format":false,"excerpt":"percollate is a command-line tool to convert web pages into PDF files.\u00a0 It supports single-page and multi-page files, can fetch the HTML documents from the web, understands accelerated mobile pages (see AMP), and even allows some control of the output with CSS snippets.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/11\/percollate-500x357.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":12285,"url":"https:\/\/mamchenkov.net\/wordpress\/2010\/03\/21\/blueprint-css-framework-does-it-work-or-not\/","url_meta":{"origin":22255,"position":1},"title":"Blueprint CSS framework : does it work?  Or not?","author":"Leonid Mamchenkov","date":"March 21, 2010","format":false,"excerpt":"Chris has an interesting example of Blueprint CSS framework not working. The code looks like it should work, but it doesn't. And since it was me who recommended Blueprint CSS to him, I felt like I had to understand what's going on. Or at least find a working solution. First,\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":12626,"url":"https:\/\/mamchenkov.net\/wordpress\/2010\/06\/22\/google-services-via-command-line\/","url_meta":{"origin":22255,"position":2},"title":"Google services via command line","author":"Leonid Mamchenkov","date":"June 22, 2010","format":false,"excerpt":"I don't know how I missed the announcement and why there is no noise around this release, but here it goes. \u00a0GoogleCL is a tool that you use from the command line to access Google web services. \u00a0I just installed it on my Fedora 13 laptop and its awesome! Here\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":42617,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/05\/14\/cssfx-beautifully-simple-click-to-copy-css-effects\/","url_meta":{"origin":22255,"position":3},"title":"CSSFX &#8211; beautifully simple click-to-copy CSS effects","author":"Leonid Mamchenkov","date":"May 14, 2019","format":false,"excerpt":"CSSFX is a collection of CSS effects with previews and very simple implementation instructions. Just click on the effect demo that you like, and a popup with HTML and CSS code snippets will appear, ready to be used on your site. There's also a GitHub repository, if you prefer it\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/05\/cssfx.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/05\/cssfx.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/05\/cssfx.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/05\/cssfx.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/05\/cssfx.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":21876,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/pho-devstack-1-0-automated-workflow-for-front-end-developers-in-one-tasty-bowl-of-code\/","url_meta":{"origin":22255,"position":4},"title":"PH\u1ede DEVSTACK 1.0 &#8211; automated workflow for front-end developers in one tasty bowl of code","author":"Leonid Mamchenkov","date":"May 29, 2014","format":"link","excerpt":"PH\u1ede DEVSTACK 1.0 - automated workflow for front-end developers in one tasty bowl of code. Features: Yeoman generator Livereload (without refresh for CSS) LESS stylesheets compilation HTML, JavaScript and CSS minification Advanced image handling (base64 inlining, image optimization, sprite generation) Browserify JavaScript modules Linting JavaScript Running unit and end to\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28660,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/07\/08\/the-div-that-looks-different-in-every-browser\/","url_meta":{"origin":22255,"position":5},"title":"The div that looks different in every browser","author":"Leonid Mamchenkov","date":"July 8, 2018","format":false,"excerpt":"Martijn Cuppens tweets the link to this code snippet and a screenshot of how the code renders in different browsers.\u00a0 Yup.\u00a0 Each browser produces a different result.\u00a0 The Twitter thread has more examples. This is yet another example of how CSS and cross-browser compatibility can drive a web developer insane.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/07\/div-500x333.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/22255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=22255"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/22255\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=22255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=22255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=22255"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=22255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}