-
Notifications
You must be signed in to change notification settings - Fork 40
Description
I'm facing some problems and one of those is:
- When trying to build a site, if a .pages file has a syntax error or just text rather than yaml, it fails with somoething like:
INFO - Cleaning site directory INFO - Building documentation to directory: /tmp/mktest/site WARNING - Excluding 'README.md' from the site because it conflicts with 'index.md'. Traceback (most recent call last): File "/opt/hostedtoolcache/Python/3.13.2/x64/bin/mkdocs", line 8, in <module> sys.exit(cli()) ~~~^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/click/core.py", line 1161, in __call__ return self.main(*args, **kwargs) ~~~~~~~~~^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/click/core.py", line 1082, in main rv = self.invoke(ctx) File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/click/core.py", line 169[7](https://github.com/myorg/myrepo/actions/runs/13965767480/job/39095686196?pr=13#step:8:8), in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/click/core.py", line 1443, in invoke return ctx.invoke(self.callback, **ctx.params) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/click/core.py", line 7[8](https://github.com/myorg/myrepo/actions/runs/13965767480/job/39095686196?pr=13#step:8:9)8, in invoke return __callback(*args, **kwargs) File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs/__main__.py", line 288, in build_command build.build(cfg, dirty=not clean) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs/commands/build.py", line 2[9](https://github.com/myorg/myrepo/actions/runs/13965767480/job/39095686196?pr=13#step:8:10)9, in build nav = config.plugins.on_nav(nav, config=config, files=files) File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.[13](https://github.com/myorg/myrepo/actions/runs/13965767480/job/39095686196?pr=13#step:8:14)/site-packages/mkdocs/plugins.py", line 596, in on_nav return self.run_event('nav', nav, config=config, files=files) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs/plugins.py", line 566, in run_event result = method(item, **kwargs) File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/plugin.py", line 81, in on_nav return AwesomeNavigation( ~~~~~~~~~~~~~~~~~^ nav.items, ^^^^^^^^^^ ...<2 lines>... explicit_sections, ^^^^^^^^^^^^^^^^^^ ).to_mkdocs() ^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/navigation.py", line 58, in __init__ self.meta = NavigationMeta(items, options, files, explicit_sections) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/navigation.py", line 277, in __init__ self.root: Meta = self._gather_metadata(items) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/navigation.py", line 285, in _gather_metadata section_meta = self._gather_metadata(item.children) File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/navigation.py", line 285, in _gather_metadata section_meta = self._gather_metadata(item.children) File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/navigation.py", line 285, in _gather_metadata section_meta = self._gather_metadata(item.children) [Previous line repeated 1 more time] File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/navigation.py", line 297, in _gather_metadata return Meta.try_load_from_files(rel_config_path, self.files) ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/meta.py", line [16](https://github.com/myorg/myrepo/actions/runs/13965767480/job/39095686196?pr=13#step:8:17)3, in try_load_from_files meta = Meta.load_from(file.abs_src_path) File "/opt/hostedtoolcache/Python/3.13.2/x64/lib/python3.13/site-packages/mkdocs_awesome_pages_plugin/meta.py", line [17](https://github.com/myorg/myrepo/actions/runs/13965767480/job/39095686196?pr=13#step:8:18)3, in load_from title = contents.get(Meta.TITLE_ATTRIBUTE) ^^^^^^^^^^^^ AttributeError: 'str' object has no attribute 'get'
The last error is clear, it tried to read a file, expeccting a key->value format like yaml, and found a string. But it would be neccesary to have in the error some clarification. This could be done with some try-->exception...
After testing the same thing in awesome-nav plugin, it is the same message when I have a problemativ .nav.yml file:
INFO - Cleaning site directory INFO - Building documentation to directory: C:\Users\blablabla\testdocs\build Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs\__main__.py", line 370, in <module> cli() ~~~^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\click\core.py", line 1157, in __call__ return self.main(*args, **kwargs) ~~~~~~~~~^^^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\click\core.py", line 1078, in main rv = self.invoke(ctx) File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\click\core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\click\core.py", line 1434, in invoke return ctx.invoke(self.callback, **ctx.params) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\click\core.py", line 783, in invoke return __callback(*args, **kwargs) File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs\__main__.py", line 288, in build_command build.build(cfg, dirty=not clean) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs\commands\build.py", line 299, in build nav = config.plugins.on_nav(nav, config=config, files=files) File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs\plugins.py", line 596, in on_nav return self.run_event('nav', nav, config=config, files=files) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs\plugins.py", line 566, in run_event result = method(item, **kwargs) File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\plugin.py", line 32, in on_nav config.nav = RootNavDirectory(context.root).resolve(context).to_mkdocs_config() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\directory.py", line 78, in resolve return super()._create_section(context, section_type=RootSection) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\directory.py", line 63, in _create_section resolved_children: list[NavPage | NavSection | NavLink] = resolve_in_priority_order(parsed_children, context) ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\resolve.py", line 19, in resolve_in_priority_order to_resolve.resolve(context) ~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\resolve.py", line 61, in resolve self._result[self._result_index] = self._item.resolve(context) ~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\pattern.py", line 28, in resolve matches = self._find_matches(context) File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\pattern.py", line 59, in _find_matches directory_item = NavDirectory(file_object, parent_config=self.config) File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\directory.py", line 19, in __init__ self.config = self._load_config(parent_config) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\directory.py", line 31, in _load_config return NavConfig.from_file(config_file, parent=parent_config) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\config.py", line 113, in from_file ConfigModel.from_yaml(file.content_string), ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\blablabla\AppData\Roaming\Python\Python313\site-packages\mkdocs_awesome_nav\nav\config.py", line 221, in from_yaml return ConfigModel(**data) TypeError: mkdocs_awesome_nav.nav.config.ConfigModel() argument after ** must be a mapping, not str
Thank you.