mirror of
https://github.com/zulip/zulip.git
synced 2025-11-13 18:36:36 +00:00
check-templates: Remove prevent_dangling_tags.
This was a misfeature--it occasionally flagged code that was ugly but necessarily ugly to ensure proper rendering.
This commit is contained in:
@@ -338,7 +338,6 @@ def validate(fn: Optional[str] = None, text: Optional[str] = None) -> None:
|
|||||||
)
|
)
|
||||||
|
|
||||||
prevent_whitespace_violations(fn, tokens)
|
prevent_whitespace_violations(fn, tokens)
|
||||||
prevent_dangling_tags(fn, tokens)
|
|
||||||
|
|
||||||
class State:
|
class State:
|
||||||
def __init__(self, func: Callable[[Token], None]) -> None:
|
def __init__(self, func: Callable[[Token], None]) -> None:
|
||||||
@@ -555,48 +554,6 @@ def prevent_whitespace_violations(fn: str, tokens: List[Token]) -> None:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def prevent_dangling_tags(fn: str, tokens: List[Token]) -> None:
|
|
||||||
"""
|
|
||||||
Prevent this kind of HTML:
|
|
||||||
|
|
||||||
<div attr attr
|
|
||||||
attr attr>Stuff</div>
|
|
||||||
|
|
||||||
We prefer:
|
|
||||||
<div attr attr
|
|
||||||
attr attr>
|
|
||||||
Stuff
|
|
||||||
</div>
|
|
||||||
|
|
||||||
We may eventually have the pretty_printer code do this
|
|
||||||
automatically, but there are some complications with
|
|
||||||
legacy code.
|
|
||||||
"""
|
|
||||||
min_row: Optional[int] = None
|
|
||||||
for token in tokens:
|
|
||||||
# We only apply this validation for a couple tag types, because
|
|
||||||
# our existing templates may have some funny edge cases. We eventually
|
|
||||||
# want to be more aggressive here. We may need to be extra careful
|
|
||||||
# with tags like <pre> that have whitespace sensitivities.
|
|
||||||
if token.tag not in ("div", "button", "p"):
|
|
||||||
continue
|
|
||||||
if min_row and token.line < min_row:
|
|
||||||
raise TemplateParserException(
|
|
||||||
f"""
|
|
||||||
|
|
||||||
Please fix line {token.line} at {fn} (col {token.col})
|
|
||||||
by moving this tag so that it closes the block at the
|
|
||||||
same indentation level as its start tag:
|
|
||||||
|
|
||||||
{token.s}
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
min_row = None
|
|
||||||
if token.line_span > 1:
|
|
||||||
min_row = token.line + token.line_span
|
|
||||||
|
|
||||||
|
|
||||||
def is_django_block_tag(tag: str) -> bool:
|
def is_django_block_tag(tag: str) -> bool:
|
||||||
return tag in [
|
return tag in [
|
||||||
"autoescape",
|
"autoescape",
|
||||||
|
|||||||
Reference in New Issue
Block a user