diff --git a/bears/hypertext/HTMLLintBear.py b/bears/hypertext/HTMLLintBear.py
index 7b4f8773ee..17a9422711 100644
--- a/bears/hypertext/HTMLLintBear.py
+++ b/bears/hypertext/HTMLLintBear.py
@@ -28,9 +28,101 @@ class HTMLLintBear:
@staticmethod
def create_arguments(filename, file, config_file,
+ enable_doctype: bool=True,
+ enable_entities: bool=True,
+ enable_trailing_whitespace: bool=True,
+ enable_tabs: bool=True,
+ enable_charset: bool=True,
+ enable_void_element: bool=True,
+ enable_optional_tag: bool=True,
+ enable_type_attribute: bool=True,
+ enable_concerns_separation: bool=True,
+ enable_protocol: bool=True,
+ enable_names: bool=True,
+ enable_capitalization: bool=True,
+ enable_quotation: bool=True,
+ enable_indentation: bool=True,
+ enable_formatting: bool=True,
+ enable_boolean_attribute: bool=True,
+ enable_invalid_attribute: bool=True,
+ enable_void_zero: bool=True,
+ enable_invalid_handler: bool=True,
+ enable_http_equiv: bool=True,
+ enable_extra_whitespace: bool=True,
htmllint_ignore: typed_list(str)=()):
"""
- :param htmllint_ignore: List of checkers to ignore.
+ :param enable_doctype:
+ Enable or disable doctype checker.
+ :param enable_entities:
+ Enable or disable unicode entity checker.
+ :param enable_trailing_whitespace:
+ Enable or disable checker for trailing whitespace.
+ :param enable_tabs:
+ Enable or disable check for tabs.
+ :param enable_charset:
+ Enable or disable utf-8 checking.
+ :param enable_void_element:
+ Enable or disable checker for void tags.
+ :param enable_optional_tag:
+ Enable or disable checker for optional tags.
+ :param enable_type_attribute:
+ Enable or disable checker for default types.
+ :param enable_concerns_separation:
+ Enable or disable checker for seperation of concern.
+ :param enable_protocol:
+ Enable or disable checker for protocol specification.
+ :param enable_names:
+ Enable or disable checker for id or class name delimiters.
+ :param enable_capitalization:
+ Enable or disable checker for capitalization
+ of tags and attributes.
+ :param enable_quotation:
+ Enable or disable checker for quotation marks.
+ :param enable_indentation:
+ Enable or disable checker for indentation using spaces.
+ :param enable_formatting:
+ Enable or disable checker for general formatting.
+ :param enable_boolean_attribute:
+ Enable or disable checker for boolean attributes.
+ :param enable_invalid_attribute:
+ Enable or disable checker for invalid attributes.
+ :param enable_void_zero:
+ Enable or disable checker for javascript void(0).
+ :param enable_invalid_handler:
+ Enable or disable checker for Javascript links.
+ :param enable_http_equiv:
+ Enable or disable checker for http-equiv.
+ :param enable_extra_whitespace:
+ Enable or disable checker for extra whitespace.
+ :param htmllint_ignore:
+ List of checkers to ignore.
"""
+ param_dict = {
+ 'doctype': enable_doctype,
+ 'entities': enable_entities,
+ 'trailing_whitespace': enable_trailing_whitespace,
+ 'tabs': enable_tabs,
+ 'charset': enable_charset,
+ 'void_element': enable_void_element,
+ 'optional_tag': enable_optional_tag,
+ 'type_attribute': enable_type_attribute,
+ 'concerns_separation': enable_concerns_separation,
+ 'protocol': enable_protocol,
+ 'names': enable_names,
+ 'capitalization': enable_capitalization,
+ 'quotation': enable_quotation,
+ 'indentation': enable_indentation,
+ 'formatting': enable_formatting,
+ 'boolean_attribute': enable_boolean_attribute,
+ 'invalid_attribute': enable_invalid_attribute,
+ 'void_zero': enable_void_zero,
+ 'invalid_handler': enable_invalid_handler,
+ 'http_equiv': enable_http_equiv,
+ 'extra_whitespace': enable_extra_whitespace,
+ }
+
ignore = ','.join(part.strip() for part in htmllint_ignore)
+ for param, use in param_dict.items():
+ if not use and param not in htmllint_ignore:
+ ignore += ',{}'.format(param)
return HTMLLintBear._html_lint, '--disable=' + ignore, filename
diff --git a/tests/hypertext/HTMLLintBearTest.py b/tests/hypertext/HTMLLintBearTest.py
index f43181b502..c3bdc440f9 100644
--- a/tests/hypertext/HTMLLintBearTest.py
+++ b/tests/hypertext/HTMLLintBearTest.py
@@ -27,3 +27,10 @@
invalid_files=(test_file,),
settings={'htmllint_ignore': 'quotation'},
tempfile_kwargs={'suffix': '.html'})
+
+HTMLLintBearDisableCheckerTest = verify_local_bear(
+ HTMLLintBear,
+ valid_files=(test_file,),
+ invalid_files=(),
+ settings={'enable_optional_tag': 'false'},
+ tempfile_kwargs={'suffix': '.html'})