mirror of
https://github.com/django-components/django-components.git
synced 2025-09-26 07:29:09 +00:00
refactor: use HTML5 parser for BeautifulSoup (#891)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
203d29f511
commit
81c02ddaa7
5 changed files with 15 additions and 12 deletions
|
@ -394,7 +394,7 @@ CSS_PLACEHOLDER_NAME_B = CSS_PLACEHOLDER_NAME.encode()
|
|||
JS_PLACEHOLDER_NAME = "JS_PLACEHOLDER"
|
||||
JS_PLACEHOLDER_NAME_B = JS_PLACEHOLDER_NAME.encode()
|
||||
|
||||
CSS_DEPENDENCY_PLACEHOLDER = f'<link name="{CSS_PLACEHOLDER_NAME}"/>'
|
||||
CSS_DEPENDENCY_PLACEHOLDER = f'<link name="{CSS_PLACEHOLDER_NAME}">'
|
||||
JS_DEPENDENCY_PLACEHOLDER = f'<script name="{JS_PLACEHOLDER_NAME}"></script>'
|
||||
COMPONENT_DEPS_COMMENT = "<!-- _RENDERED {data} -->"
|
||||
|
||||
|
@ -415,7 +415,7 @@ MAYBE_COMP_CSS_ID = r"(?: data-djc-css-\w{6})?"
|
|||
|
||||
PLACEHOLDER_REGEX = re.compile(
|
||||
r"{css_placeholder}|{js_placeholder}".format(
|
||||
css_placeholder=f'<link{MAYBE_COMP_CSS_ID}{MAYBE_COMP_ID} name="{CSS_PLACEHOLDER_NAME}"/>',
|
||||
css_placeholder=f'<link{MAYBE_COMP_CSS_ID}{MAYBE_COMP_ID} name="{CSS_PLACEHOLDER_NAME}"/?>',
|
||||
js_placeholder=f'<script{MAYBE_COMP_CSS_ID}{MAYBE_COMP_ID} name="{JS_PLACEHOLDER_NAME}"></script>',
|
||||
).encode()
|
||||
)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from abc import ABC, abstractmethod
|
||||
from typing import Any, List, Optional, Sequence
|
||||
|
||||
from bs4 import BeautifulSoup, CData, Comment, Doctype, Tag
|
||||
from bs4 import BeautifulSoup, CData, Comment, Doctype, NavigableString, Tag
|
||||
|
||||
|
||||
class HTMLNode(ABC):
|
||||
|
@ -63,8 +63,11 @@ class SoupNode(HTMLNode):
|
|||
return f"<!-- {self.node} -->"
|
||||
elif isinstance(self.node, Doctype):
|
||||
return f"<!DOCTYPE {self.node}>"
|
||||
else:
|
||||
elif isinstance(self.node, NavigableString):
|
||||
return str(self.node)
|
||||
else:
|
||||
# See https://github.com/EmilStenstrom/django-components/pull/861#discussion_r1898516210
|
||||
return self.node.encode(formatter="html5").decode()
|
||||
|
||||
def name(self) -> str:
|
||||
return self.node.name
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue