mirror of
https://github.com/getpelican/pelican.git
synced 2025-10-15 20:28:56 +02:00
Move the "find image with an empty alt" block in a function.
This commit is contained in:
parent
85ea737a98
commit
bab8d0b26a
1 changed files with 43 additions and 36 deletions
|
|
@ -416,40 +416,9 @@ class Readers(object):
|
||||||
content, reader_metadata = reader.read(path)
|
content, reader_metadata = reader.read(path)
|
||||||
metadata.update(reader_metadata)
|
metadata.update(reader_metadata)
|
||||||
|
|
||||||
# create warnings for all images with empty alt (up to a certain
|
|
||||||
# number) # as they are really likely to be accessibility flaws
|
|
||||||
if content:
|
if content:
|
||||||
# find images with empty alt
|
# find images with empty alt
|
||||||
imgs = re.compile(r"""
|
find_empty_alt(content, path)
|
||||||
(?:
|
|
||||||
# src before alt
|
|
||||||
<img
|
|
||||||
[^\>]*
|
|
||||||
src=(['"])(.*)\1
|
|
||||||
[^\>]*
|
|
||||||
alt=(['"])\3
|
|
||||||
)|(?:
|
|
||||||
# alt before src
|
|
||||||
<img
|
|
||||||
[^\>]*
|
|
||||||
alt=(['"])\4
|
|
||||||
[^\>]*
|
|
||||||
src=(['"])(.*)\5
|
|
||||||
)
|
|
||||||
""", re.X)
|
|
||||||
matches = re.findall(imgs, content)
|
|
||||||
# find a correct threshold
|
|
||||||
nb_warnings = 10
|
|
||||||
if len(matches) == nb_warnings + 1:
|
|
||||||
nb_warnings += 1 # avoid bad looking case
|
|
||||||
# print one warning per image with empty alt until threshold
|
|
||||||
for match in matches[:nb_warnings]:
|
|
||||||
logger.warning('Empty alt attribute for image {} in {}'.format(
|
|
||||||
os.path.basename(match[1] + match[5]), path))
|
|
||||||
# print one warning for the other images with empty alt
|
|
||||||
if len(matches) > nb_warnings:
|
|
||||||
logger.warning('{} other images with empty alt attributes'
|
|
||||||
.format(len(matches) - nb_warnings))
|
|
||||||
|
|
||||||
# eventually filter the content with typogrify if asked so
|
# eventually filter the content with typogrify if asked so
|
||||||
if content and self.settings['TYPOGRIFY']:
|
if content and self.settings['TYPOGRIFY']:
|
||||||
|
|
@ -467,6 +436,45 @@ class Readers(object):
|
||||||
context=context)
|
context=context)
|
||||||
|
|
||||||
|
|
||||||
|
def find_empty_alt(content, path):
|
||||||
|
"""Find images with empty alt
|
||||||
|
|
||||||
|
Create warnings for all images with empty alt (up to a certain number),
|
||||||
|
as they are really likely to be accessibility flaws.
|
||||||
|
|
||||||
|
"""
|
||||||
|
imgs = re.compile(r"""
|
||||||
|
(?:
|
||||||
|
# src before alt
|
||||||
|
<img
|
||||||
|
[^\>]*
|
||||||
|
src=(['"])(.*)\1
|
||||||
|
[^\>]*
|
||||||
|
alt=(['"])\3
|
||||||
|
)|(?:
|
||||||
|
# alt before src
|
||||||
|
<img
|
||||||
|
[^\>]*
|
||||||
|
alt=(['"])\4
|
||||||
|
[^\>]*
|
||||||
|
src=(['"])(.*)\5
|
||||||
|
)
|
||||||
|
""", re.X)
|
||||||
|
matches = re.findall(imgs, content)
|
||||||
|
# find a correct threshold
|
||||||
|
nb_warnings = 10
|
||||||
|
if len(matches) == nb_warnings + 1:
|
||||||
|
nb_warnings += 1 # avoid bad looking case
|
||||||
|
# print one warning per image with empty alt until threshold
|
||||||
|
for match in matches[:nb_warnings]:
|
||||||
|
logger.warning('Empty alt attribute for image {} in {}'.format(
|
||||||
|
os.path.basename(match[1] + match[5]), path))
|
||||||
|
# print one warning for the other images with empty alt
|
||||||
|
if len(matches) > nb_warnings:
|
||||||
|
logger.warning('{} other images with empty alt attributes'
|
||||||
|
.format(len(matches) - nb_warnings))
|
||||||
|
|
||||||
|
|
||||||
def default_metadata(settings=None, process=None):
|
def default_metadata(settings=None, process=None):
|
||||||
metadata = {}
|
metadata = {}
|
||||||
if settings:
|
if settings:
|
||||||
|
|
@ -516,13 +524,12 @@ def parse_path_metadata(source_path, settings=None, process=None):
|
||||||
subdir = os.path.basename(dirname)
|
subdir = os.path.basename(dirname)
|
||||||
if settings:
|
if settings:
|
||||||
checks = []
|
checks = []
|
||||||
for key,data in [('FILENAME_METADATA', base),
|
for key, data in [('FILENAME_METADATA', base),
|
||||||
('PATH_METADATA', source_path),
|
('PATH_METADATA', source_path)]:
|
||||||
]:
|
|
||||||
checks.append((settings.get(key, None), data))
|
checks.append((settings.get(key, None), data))
|
||||||
if settings.get('USE_FOLDER_AS_CATEGORY', None):
|
if settings.get('USE_FOLDER_AS_CATEGORY', None):
|
||||||
checks.insert(0, ('(?P<category>.*)', subdir))
|
checks.insert(0, ('(?P<category>.*)', subdir))
|
||||||
for regexp,data in checks:
|
for regexp, data in checks:
|
||||||
if regexp and data:
|
if regexp and data:
|
||||||
match = re.match(regexp, data)
|
match = re.match(regexp, data)
|
||||||
if match:
|
if match:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue