mkdocs-multirepo-plugin icon indicating copy to clipboard operation
mkdocs-multirepo-plugin copied to clipboard

bug: File path separator is not working properly on Windows and throws exception

Open nothingspecial123 opened this issue 1 year ago • 0 comments
trafficstars

Hello,

I'm using the latest version of multirepo-plugin on Windows 11. The project uses poetry, mkdocs, mike plugins.

When use poetry run mkdocs serve command, I get an ImportDocsException. The .deps folder is created temporarily, but the structure of the folders is incorrect. (folder1folder2subfolder instead of folder1/folder2/subfolder) I think something went wrong during the cloning of a git repo.

Traceback:

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:\myproject\webpage-3\myvirtualenvironment\Scripts\mkdocs.exe\__main__.py", line 7, in <module>
    sys.exit(cli())
             ~~~^^
  File "C:\myproject\webpage-3\myvirtualenvironment\Lib\site-packages\click\core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "C:\myproject\webpage-3\myvirtualenvironment\Lib\site-packages\click\core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "C:\myproject\webpage-3\myvirtualenvironment\Lib\site-packages\click\core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "C:\myproject\webpage-3\myvirtualenvironment\Lib\site-packages\click\core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\myproject\webpage-3\myvirtualenvironment\Lib\site-packages\click\core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "C:\myproject\webpage-3\myvirtualenvironment\Lib\site-packages\mkdocs\__main__.py", line 268, in serve_command
    serve.serve(**kwargs)
    ~~~~~~~~~~~^^^^^^^^^^
  File "C:\myproject\webpage-3\myvirtualenvironment\Lib\site-packages\mkdocs\commands\serve.py", line 85, in serve
    builder(config)
    ~~~~~~~^^^^^^^^
  File "C:\myproject\webpage-3\myvirtualenvironment\Lib\site-packages\mkdocs\commands\serve.py", line 67, in builder
    build(config, serve_url=None if is_clean else serve_url, dirty=is_dirty)
    ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\myproject\webpage-3\myvirtualenvironment\Lib\site-packages\mkdocs\commands\build.py", line 265, in build
    config = config.plugins.on_config(config)
  File "C:\myproject\webpage-3\myvirtualenvironment\Lib\site-packages\mkdocs\plugins.py", line 587, in on_config
    return self.run_event('config', config)
           ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "C:\myproject\webpage-3\myvirtualenvironment\Lib\site-packages\mkdocs\plugins.py", line 566, in run_event
    result = method(item, **kwargs)
  File "C:\myproject\webpage-3\myvirtualenvironment\Lib\site-packages\mkdocs_multirepo_plugin\plugin.py", line 310, in on_config
    config = self.handle_nav_import(config)
  File "C:\myproject\webpage-3\myvirtualenvironment\Lib\site-packages\mkdocs_multirepo_plugin\plugin.py", line 184, in handle_nav_import
    repo_config = repo.load_config()
  File "C:\myproject\webpage-3\myvirtualenvironment\Lib\site-packages\mkdocs_multirepo_plugin\structure.py", line 400, in load_config
    config = super().load_config(self.config)
  File "C:\myproject\webpage-3\myvirtualenvironment\Lib\site-packages\mkdocs_multirepo_plugin\structure.py", line 217, in load_config
    raise ImportDocsException("docs must be imported before loading yaml")
mkdocs_multirepo_plugin.util.ImportDocsException: docs must be imported before loading yaml

I can't find anything about ImportDocsException on the net. I don't think others encountered a similar error.

After debugging, I changed this line: https://github.com/jdoiro3/mkdocs-multirepo-plugin/blob/df7b9be86c92c75d8da8ed4a922e749a1eedbba0/mkdocs_multirepo_plugin/structure.py#L191 to

args = [self.url, self.name.replace(os.sep, '/'), self.branch] + paths

and the content from the git repos is downloaded correctly with the good folder structure. So the poetry run mkdocs serve command is run properly.

nothingspecial123 avatar Oct 24 '24 13:10 nothingspecial123