diff --git a/mwparserfromhell/nodes/extras/attribute.py b/mwparserfromhell/nodes/extras/attribute.py index cb50194..7d296dc 100644 --- a/mwparserfromhell/nodes/extras/attribute.py +++ b/mwparserfromhell/nodes/extras/attribute.py @@ -37,9 +37,9 @@ class Attribute(StringMixIn): """ def __init__(self, name, value=None, quotes='"', pad_first=" ", - pad_before_eq="", pad_after_eq=""): + pad_before_eq="", pad_after_eq="", check_quotes=True): super(Attribute, self).__init__() - if not quotes and self._value_needs_quotes(value): + if check_quotes and not quotes and self._value_needs_quotes(value): raise ValueError("given value {0!r} requires quotes".format(value)) self._name = name self._value = value diff --git a/mwparserfromhell/parser/builder.py b/mwparserfromhell/parser/builder.py index 2d68036..97123f7 100644 --- a/mwparserfromhell/parser/builder.py +++ b/mwparserfromhell/parser/builder.py @@ -237,7 +237,8 @@ class Builder(object): else: name, value = self._pop(), None return Attribute(name, value, quotes, start.pad_first, - start.pad_before_eq, start.pad_after_eq) + start.pad_before_eq, start.pad_after_eq, + check_quotes=False) else: self._write(self._handle_token(token)) raise ParserError("_handle_attribute() missed a close token")