in scripts/linkchecker.py [0:0]
def check_file_exists(base, path, ftype="markdown"):
"""Check if the target file exists.
NOTE: We build a normalized path using 'base' and 'path' values. Suppose
the resulted path string is 'foo/bar', we check if 'foo/bar.md' exists,
AND we check if 'foo/bar/_index.md' exists.
:param base: The base directory to begin with
:param path: The link target which is a relative path string
:returns: A boolean indicating whether the target file exists.
"""
# NOTE: anchor is ignored, can be a todo item
parts = path.split("#")
fn = normalize_filename(parts[0], ftype=ftype)
target = base + fn
if os.path.isfile(target):
return True
dir_name = base + parts[0]
if os.path.isdir(dir_name):
if os.path.isfile(dir_name + "/_index.md"):
return True
if os.path.isfile(dir_name + "/_index.html"):
return True
# /docs/contribute/style/hugo-shortcodes/ has this
if os.path.isfile(dir_name + "/index.md"):
return True
return False