mirror of
https://github.com/squidfunk/mkdocs-material.git
synced 2024-06-14 11:52:32 +03:00
Fixed UTF-8 with BOM encoding support
This commit is contained in:
parent
2f1b2e9500
commit
022f14c0eb
@ -460,7 +460,7 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
|||||||
return config.authors
|
return config.authors
|
||||||
|
|
||||||
# Open file and parse as YAML
|
# Open file and parse as YAML
|
||||||
with open(file, encoding = "utf-8") as f:
|
with open(file, encoding = "utf-8-sig") as f:
|
||||||
config.config_file_path = os.path.abspath(file)
|
config.config_file_path = os.path.abspath(file)
|
||||||
try:
|
try:
|
||||||
config.load_dict(yaml.load(f, SafeLoader) or {})
|
config.load_dict(yaml.load(f, SafeLoader) or {})
|
||||||
|
@ -57,7 +57,7 @@ class Post(Page):
|
|||||||
path = os.path.relpath(file.abs_src_path, docs)
|
path = os.path.relpath(file.abs_src_path, docs)
|
||||||
|
|
||||||
# Read contents and metadata immediately
|
# Read contents and metadata immediately
|
||||||
with open(file.abs_src_path, encoding = "utf-8") as f:
|
with open(file.abs_src_path, encoding = "utf-8-sig") as f:
|
||||||
self.markdown = f.read()
|
self.markdown = f.read()
|
||||||
|
|
||||||
# Sadly, MkDocs swallows any exceptions that occur during parsing.
|
# Sadly, MkDocs swallows any exceptions that occur during parsing.
|
||||||
|
@ -437,7 +437,7 @@ def _convert_to_abs(path: str, abs_prefix: str = None) -> str:
|
|||||||
# logic. Side effect: It converts the INHERIT path to absolute.
|
# logic. Side effect: It converts the INHERIT path to absolute.
|
||||||
def _load_yaml(abs_src_path: str):
|
def _load_yaml(abs_src_path: str):
|
||||||
|
|
||||||
with open(abs_src_path, "r", encoding ="utf-8-sig") as file:
|
with open(abs_src_path, encoding ="utf-8-sig") as file:
|
||||||
source = file.read()
|
source = file.read()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -479,7 +479,7 @@ def _resolve_pattern(abspath: str, return_path: bool = False):
|
|||||||
|
|
||||||
# Get project configuration with resolved absolute paths for validation
|
# Get project configuration with resolved absolute paths for validation
|
||||||
def _get_project_config(project_config_file: str):
|
def _get_project_config(project_config_file: str):
|
||||||
with open(project_config_file, encoding="utf-8") as file:
|
with open(project_config_file, encoding="utf-8-sig") as file:
|
||||||
config = MkDocsConfig(config_file_path = project_config_file)
|
config = MkDocsConfig(config_file_path = project_config_file)
|
||||||
config.load_file(file)
|
config.load_file(file)
|
||||||
|
|
||||||
|
@ -254,7 +254,7 @@ class PrivacyPlugin(BasePlugin[PrivacyConfig]):
|
|||||||
|
|
||||||
# Find and extract all external asset URLs
|
# Find and extract all external asset URLs
|
||||||
expr = re.compile(self.assets_expr_map[extension], flags = re.I | re.M)
|
expr = re.compile(self.assets_expr_map[extension], flags = re.I | re.M)
|
||||||
with open(initiator.abs_src_path, encoding = "utf-8") as f:
|
with open(initiator.abs_src_path, encoding = "utf-8-sig") as f:
|
||||||
return [urlparse(url) for url in re.findall(expr, f.read())]
|
return [urlparse(url) for url in re.findall(expr, f.read())]
|
||||||
|
|
||||||
# Parse template or page HTML and find all external links that need to be
|
# Parse template or page HTML and find all external links that need to be
|
||||||
@ -437,7 +437,7 @@ class PrivacyPlugin(BasePlugin[PrivacyConfig]):
|
|||||||
|
|
||||||
# Patch all links to external assets in the given file
|
# Patch all links to external assets in the given file
|
||||||
def _patch(self, initiator: File):
|
def _patch(self, initiator: File):
|
||||||
with open(initiator.abs_src_path, encoding = "utf-8") as f:
|
with open(initiator.abs_src_path, encoding = "utf-8-sig") as f:
|
||||||
|
|
||||||
# Replace callback
|
# Replace callback
|
||||||
def replace(match: Match):
|
def replace(match: Match):
|
||||||
|
@ -460,7 +460,7 @@ class BlogPlugin(BasePlugin[BlogConfig]):
|
|||||||
return config.authors
|
return config.authors
|
||||||
|
|
||||||
# Open file and parse as YAML
|
# Open file and parse as YAML
|
||||||
with open(file, encoding = "utf-8") as f:
|
with open(file, encoding = "utf-8-sig") as f:
|
||||||
config.config_file_path = os.path.abspath(file)
|
config.config_file_path = os.path.abspath(file)
|
||||||
try:
|
try:
|
||||||
config.load_dict(yaml.load(f, SafeLoader) or {})
|
config.load_dict(yaml.load(f, SafeLoader) or {})
|
||||||
|
@ -57,7 +57,7 @@ class Post(Page):
|
|||||||
path = os.path.relpath(file.abs_src_path, docs)
|
path = os.path.relpath(file.abs_src_path, docs)
|
||||||
|
|
||||||
# Read contents and metadata immediately
|
# Read contents and metadata immediately
|
||||||
with open(file.abs_src_path, encoding = "utf-8") as f:
|
with open(file.abs_src_path, encoding = "utf-8-sig") as f:
|
||||||
self.markdown = f.read()
|
self.markdown = f.read()
|
||||||
|
|
||||||
# Sadly, MkDocs swallows any exceptions that occur during parsing.
|
# Sadly, MkDocs swallows any exceptions that occur during parsing.
|
||||||
|
@ -437,7 +437,7 @@ def _convert_to_abs(path: str, abs_prefix: str = None) -> str:
|
|||||||
# logic. Side effect: It converts the INHERIT path to absolute.
|
# logic. Side effect: It converts the INHERIT path to absolute.
|
||||||
def _load_yaml(abs_src_path: str):
|
def _load_yaml(abs_src_path: str):
|
||||||
|
|
||||||
with open(abs_src_path, "r", encoding ="utf-8-sig") as file:
|
with open(abs_src_path, encoding ="utf-8-sig") as file:
|
||||||
source = file.read()
|
source = file.read()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -479,7 +479,7 @@ def _resolve_pattern(abspath: str, return_path: bool = False):
|
|||||||
|
|
||||||
# Get project configuration with resolved absolute paths for validation
|
# Get project configuration with resolved absolute paths for validation
|
||||||
def _get_project_config(project_config_file: str):
|
def _get_project_config(project_config_file: str):
|
||||||
with open(project_config_file, encoding="utf-8") as file:
|
with open(project_config_file, encoding="utf-8-sig") as file:
|
||||||
config = MkDocsConfig(config_file_path = project_config_file)
|
config = MkDocsConfig(config_file_path = project_config_file)
|
||||||
config.load_file(file)
|
config.load_file(file)
|
||||||
|
|
||||||
|
@ -254,7 +254,7 @@ class PrivacyPlugin(BasePlugin[PrivacyConfig]):
|
|||||||
|
|
||||||
# Find and extract all external asset URLs
|
# Find and extract all external asset URLs
|
||||||
expr = re.compile(self.assets_expr_map[extension], flags = re.I | re.M)
|
expr = re.compile(self.assets_expr_map[extension], flags = re.I | re.M)
|
||||||
with open(initiator.abs_src_path, encoding = "utf-8") as f:
|
with open(initiator.abs_src_path, encoding = "utf-8-sig") as f:
|
||||||
return [urlparse(url) for url in re.findall(expr, f.read())]
|
return [urlparse(url) for url in re.findall(expr, f.read())]
|
||||||
|
|
||||||
# Parse template or page HTML and find all external links that need to be
|
# Parse template or page HTML and find all external links that need to be
|
||||||
@ -437,7 +437,7 @@ class PrivacyPlugin(BasePlugin[PrivacyConfig]):
|
|||||||
|
|
||||||
# Patch all links to external assets in the given file
|
# Patch all links to external assets in the given file
|
||||||
def _patch(self, initiator: File):
|
def _patch(self, initiator: File):
|
||||||
with open(initiator.abs_src_path, encoding = "utf-8") as f:
|
with open(initiator.abs_src_path, encoding = "utf-8-sig") as f:
|
||||||
|
|
||||||
# Replace callback
|
# Replace callback
|
||||||
def replace(match: Match):
|
def replace(match: Match):
|
||||||
|
Loading…
Reference in New Issue
Block a user