{ "info": { "author": "Sebastian Kreft", "author_email": "skreft@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: Unix", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development" ], "description": "HTML Linter\n===========\n\n.. image:: https://badge.fury.io/py/html-linter.svg\n :target: http://badge.fury.io/py/html-linter\n\n.. image:: https://api.travis-ci.org/sk-/html-linter.svg?branch=master\n :target: https://travis-ci.org/sk-/html-linter\n\n.. image:: https://coveralls.io/repos/sk-/html-linter/badge.svg?branch=master\n :target: https://coveralls.io/r/sk-/html-linter?branch=master\n\n\nHTML Linter is an HTML5 linter that follows the style guide defined by Google.\n\nMotivation\n----------\n\nHandling HTML5 files generated by lots of different of people is a difficult\ntask, because the standard is evolving quite fast and also because browsers are\nquite open to accept any malformed/invalid/incomplete input.\n\nThat's why we decided to have an automated tool to check our coding standard.\n\nWe start with the\n`Google standard `_\nand we enhance it with some extra rules defined by the project\n`html-minifier `_. You can read his\ndetailed `article `_.\n\nThe list of extra rules we added are:\n\n* Boolean attributes should not have an explicit value.\n* Do not use the name attribute in a tags.\n* Do not use the language attribute in script tags.\n* Do not use the charset attribute in script tags when there is no source.\n* Javascript:void(0) links are evil.\n* onclick='javascript: ...' is not required. This will raise also a Concerns Separation error.\n* meta http-equiv: use only standard properties + X-UA-compatible\n* No extra white-spaces between attributes or before the opening or closing tag.\n\nWhat is missing?\n----------------\n\nCheck if the file has BOM.\n\nThe ability to validate the HTML using the tool\n`HTML5 tidy `_ and to integrate some\nschema.org or microdata validator.\n\nHowever, we do not have any short terms plans to handle the latter, due to a\ncouple of reasons:\n\n* Tidy can be easily integrated using the tool `git-lint `_\n* Any other validator can also be integrated with `git-lint `_\n* Adding any extra validator would pull many more dependencies and change the scope.\n\nLimitations\n-----------\n\nhtml_linter used the project\n`template-remover `_ to remove the\nPHP and Jinja markup from the files and this project works has some limitations.\n\n\nOne example that won't work is the following::\n\n \" ?>\n\nThe reason it does not work is because when the method sees the first '?>'\n(the one inside the string), it thinks it's a closing tag.\n\n\nExample use\n-----------\n\nBelow are example of how template_remover.py is used::\n\n $ html_lint.py filename.html\n\n\nInstallation\n------------\n\nYou can install, upgrade or uninstall html-linter with these commands::\n\n $ pip install html-linter\n $ pip install --upgrade html-linter\n $ pip uninstall html-linter\n\nPython Versions\n---------------\n\nPython 2.7, 3.3, 3.4, 3.5 and 3.6 are supported.\n\nDevelopment\n-----------\n\nHelp for this project is more than welcomed, so feel free to create an issue or\nto send a pull request via http://github.com/deezer/html-linter.\n\nTests are run using nose, either with::\n\n $ python -R setup.py nosetests\n $ nosetests\n\nUse the tool `git-lint `_ before any commit, so\nerrors and style problems are caught early.\n\nTODOS and Possible Features\n---------------------------\n\n* Make the output less verbose.\n* Integrate with HTML5 tidy.\n* Integrate with a schema.org/microdata validator.\n\nContributors\n------------\n\n* `Dustin Ingram `_\n\n\nChangelog\n=========\n\nv0.4 (2017-03-30)\n-----------------\n\n* Support for a ``--printfilename`` option (`#8 `_)\n* Support for Python 3.6 (`#12 `_)\n\nv0.3 (2016-01-24)\n-----------------\n\n* Support for multiple files (by `@di `_)\n\nv0.2 (2015-12-13)\n-----------------\n\n* Support for Python 3.5\n\nv0.1 (2014-05-07)\n-----------------\n\n* Initial commit.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/sk-/html-linter", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "html-linter", "package_url": "https://pypi.org/project/html-linter/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/html-linter/", "project_urls": { "Homepage": "http://github.com/sk-/html-linter" }, "release_url": "https://pypi.org/project/html-linter/0.4.0/", "requires_dist": [ "docopt (>=0.6.1)", "template-remover" ], "requires_python": "", "summary": "Lints an HTML5 file using Google's style guide", "version": "0.4.0" }, "last_serial": 2744389, "releases": { "0.1.3": [ { "comment_text": "", "digests": { "md5": "eed4e06703a0452f640ae4a7865a4ff9", "sha256": "f4120ccb4d4c1a5e7ba3502516f1ad219ed1607ee9c3e4c332ab7a637a499924" }, "downloads": -1, "filename": "html-linter-0.1.3.tar.gz", "has_sig": false, "md5_digest": "eed4e06703a0452f640ae4a7865a4ff9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19173, "upload_time": "2014-05-07T15:56:33", "url": "https://files.pythonhosted.org/packages/79/27/9fdbfda838492d1dc8b3402bf4a93f1a6f44511cbcc4aef1efd1cca6965a/html-linter-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "ae5e22b9e2e932e17ffe28ffc1793644", "sha256": "bfd951c2cf329cb4fb4eb36c2efc13887312096768a4c4ab5f2fd2ece53ef95e" }, "downloads": -1, "filename": "html-linter-0.1.4.tar.gz", "has_sig": false, "md5_digest": "ae5e22b9e2e932e17ffe28ffc1793644", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19278, "upload_time": "2014-05-08T08:08:28", "url": "https://files.pythonhosted.org/packages/f2/62/e382991ac1a9880d1f6d7419a352bb4b4da4a1d6726d984af4e6a7f744cd/html-linter-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "26449838868eed81b0f82e91aed3c8db", "sha256": "b5df0582feead3a7868602489a4cb43990bc96a3b642528ed82ed6d3e6aa9edc" }, "downloads": -1, "filename": "html-linter-0.1.5.tar.gz", "has_sig": false, "md5_digest": "26449838868eed81b0f82e91aed3c8db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19350, "upload_time": "2014-05-08T08:30:47", "url": "https://files.pythonhosted.org/packages/5a/c1/e57e23d6b880faa6daa69dfe5178f01b26d6cf97332ad115007d762988ae/html-linter-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "0a34317b08401f02c7706673fbf9c17a", "sha256": "b19d9e0d03ab264a26540a2fc956d9d3b6ef5996ab64ff8765c25c9bf6d49a2f" }, "downloads": -1, "filename": "html-linter-0.1.6.tar.gz", "has_sig": false, "md5_digest": "0a34317b08401f02c7706673fbf9c17a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19722, "upload_time": "2014-05-13T10:13:09", "url": "https://files.pythonhosted.org/packages/c2/e3/3b00c0c8261b97808f56553886a6b3fa0f9e18426c2e732ecb37d84c53e1/html-linter-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "edc3189e43fb9925fd271c15fab08561", "sha256": "47fa0d0734ee4db790253dca95e1adee4a5954d7a467a9a181346552dc0ede42" }, "downloads": -1, "filename": "html-linter-0.1.7.tar.gz", "has_sig": false, "md5_digest": "edc3189e43fb9925fd271c15fab08561", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19913, "upload_time": "2014-09-07T22:22:19", "url": "https://files.pythonhosted.org/packages/45/e1/6d26e9df4670e94601902789dd5e4662ff6c4b9c110256a97803624ff91b/html-linter-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "43fb1bef062e1b2327d238d6712d5d59", "sha256": "390ec75799015ba3b8cc770939dd4abc23552a5046a1548963d3f2e35e8e77f3" }, "downloads": -1, "filename": "html-linter-0.1.8.tar.gz", "has_sig": false, "md5_digest": "43fb1bef062e1b2327d238d6712d5d59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18256, "upload_time": "2014-09-28T18:03:01", "url": "https://files.pythonhosted.org/packages/c8/2f/305f76a329fc0f78ed296f62c8e01d97a66a810175058ecc773ab23e86e0/html-linter-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "49a090d6a4b0969e5e0df255d68ccebe", "sha256": "0f75f6b1570e4944b62bff38058f52b24d9bbfb129fa51de6fffef8fcf01edc9" }, "downloads": -1, "filename": "html-linter-0.1.9.tar.gz", "has_sig": false, "md5_digest": "49a090d6a4b0969e5e0df255d68ccebe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20136, "upload_time": "2014-09-29T08:19:13", "url": "https://files.pythonhosted.org/packages/88/01/5e85bab3091c807f569681762e02d0bfba1742a6e53e66dfcc470530dd6d/html-linter-0.1.9.tar.gz" } ], "0.2.0": [], "0.3.0": [ { "comment_text": "", "digests": { "md5": "a7eef85f665706a24e25233008ad8671", "sha256": "1fedb2b0c3575023dcd7bf1c05a6ceeb650a7ea36d11411eb871b38fd92a0ed0" }, "downloads": -1, "filename": "html-linter-0.3.0.tar.gz", "has_sig": false, "md5_digest": "a7eef85f665706a24e25233008ad8671", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19352, "upload_time": "2016-01-24T07:31:58", "url": "https://files.pythonhosted.org/packages/6f/4d/b386333e4b2ea0ac3b6ecc3ae3f5607773608ae95b4f31cc99824410e408/html-linter-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "d25aeddc4dfde714aef38b34f4dfa577", "sha256": "342dad677f2fc810a2562fde0959046ed0d8fa1387bd9e085869e908c1941191" }, "downloads": -1, "filename": "html-linter-0.4.0.tar.gz", "has_sig": false, "md5_digest": "d25aeddc4dfde714aef38b34f4dfa577", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19373, "upload_time": "2017-03-30T20:33:42", "url": "https://files.pythonhosted.org/packages/0b/45/12b968a45d223bc9a3131022514eacdaeffd591973bb2025330057a7b7c6/html-linter-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d25aeddc4dfde714aef38b34f4dfa577", "sha256": "342dad677f2fc810a2562fde0959046ed0d8fa1387bd9e085869e908c1941191" }, "downloads": -1, "filename": "html-linter-0.4.0.tar.gz", "has_sig": false, "md5_digest": "d25aeddc4dfde714aef38b34f4dfa577", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19373, "upload_time": "2017-03-30T20:33:42", "url": "https://files.pythonhosted.org/packages/0b/45/12b968a45d223bc9a3131022514eacdaeffd591973bb2025330057a7b7c6/html-linter-0.4.0.tar.gz" } ] }