in src/externals.py [0:0]
def _process_external_key(build_mode, data) -> list:
"""
:param build_mode: current build mode
:param data: the element from the _nav.yml to process
:return: the _list_ of items to replace the data item with
"""
if not isinstance(data, dict):
return [data]
if 'external' not in data:
return [data]
mount = ExternalMount(build_mode, data['external'])
del data['external']
if not _rant_if_external_nav_is_not_found(mount):
# TODO: side effect
data['content'] = [{'url': '/', 'title': 'external "%s" is it included' % mount.external_path}]
return [data]
with open(mount.nav_file) as stream:
external_yml = yaml.load(stream)
assert isinstance(external_yml, list)
url_mappers = _build_url_mappers(external_yml, mount)
contents = [
entry
for item in external_yml
for entry in _process_external_entry(mount, url_mappers, item)
]
if mount.inline:
return contents
else:
# TODO: side effect
data['content'] = contents
return [data]