MkDocs - fail on build

Hi,

I have a site built with MkDocs & material theme from squidfunk. Nothing customised:
build command is simply mkdocs build,
base image is Ubuntu Xenail 16.04
runtime python 3.7

requirements.txt has the following:
mkdocs>=1.0.4
mkdocs-material>=4.6.0
pymdown-extensions>=6.2

Today I just amended a couple of the markdown files in my git repo and pushed to github. And the build failed for some reason. No settings were updated, and site has been fine for a few months now. :frowning:

The relevant part of the error Iā€™m getting seems to be this:

File "/opt/buildhome/python3.7/lib/python3.7/site-packages/mkdocs/utils/__init__.py", line 223, in normalize_url
path = path_to_url(path or '.')
File "/opt/buildhome/python3.7/lib/python3.7/site-packages/mkdocs/utils/__init__.py", line 251, in path_to_url
return '/'.join(path.split('\\'))
AttributeError: 'dict' object has no attribute 'split'

EDIT:
Noticed that MkDocs updated to 1.1

Tried setting the requirement to be mkdocs==1.0.4 to test without the update and got a different error:

pkg_resources.VersionConflict: (mkdocs 1.0.4 (/opt/buildhome/python3.7/lib/python3.7/site-packages), Requirement.parse('mkdocs>=1.1'))

My site is https://wiki.istivan.xyz/

Any help would be appreciated!

cheers
/ska

Replying to myself (found the solution), in case someone else hits the same problem.

Cause : both MkDocs and the theme I use (Squidfunk/Material for MkDocs) upgraded. I think the breaking change came from the theme.

  • MkDocs updated from 1.0.4 to 1.1
  • Material for MkDocs theme updated from 4.6 to 5.0.1

In my mkdocs.yml file, I have changed the favicon & main theme icon and in the updated theme the folder structure & some file names changed => hence the error split on a directory path.

I updated the logo icon in mkdocs.yml to:

icon:
    logo: material/filename

This was previously referring to assets/images/filename.svg => also note that the .svg extension is not in the reference in the config of the updated theme.

ALSO : I updated the requirements.txt file to look like this:

mkdocs>=1.1
mkdocs-material>=5.0
Pygments>=2.4
markdown>=3.2
pymdown-extensions>=7.0

Hope this helps someone!
/ska

awesome - thank you so much for coming back and sharing your solution!

I just wanted to chime in and confirm that the problem was in mkdocs-material.
There are breaking changes from 4.x to 5.x which are detailed at

1 Like