mkdocs-redirects
mkdocs-redirects copied to clipboard
Redirect fails with translation plugin
Hello,
Now I want to use mkdocs-redirects to redirect from a old layout to a new docs layout including subfolders and translated pages using https://github.com/ultrabug/mkdocs-static-i18n
But I have a small problem:
Lets assume following redirection:
'old_foo.md': 'bar/foo.en.md'
Normally it should redirect to bar/foo/ but it builds a redirection to bar/foo.en/ and this pages doesn't exist.
Not sure if this can be fixed, since files can be named xx.en but maybe you guys have a solution for me.
I am with the same problem as the one reported here. I am using the mkdocs-static-i18n and I can't get the redirects to work. Any update?
Please provide a mkdocs website source (mkdocs.yml and necessary sources) that exhibits this issue.
@oprypin working on that.
@oprypin here they are:
Steps to Reproduce
- Access the website at https://hhslepicka.github.io/mkdocs-redirect-issue-i18n/
- Click on the
Oldlink on the home page. - You will receive a 404 error
- Go back into the home page
- Click on the
Newlink - It will open the new page properly
As @MAGICCC reported, this plugin ends up generating a old.en folder with the index.html file inside of it (https://github.com/hhslepicka/mkdocs-redirect-issue-i18n/tree/gh-pages).
Also, the page is not generated for the multiple supported languages or even for the language indicated on the redirects area, it just adds it to the root.
I did a quickfix on my end some days after I created the issue. Basicly a script which will change the index.html in the redirect folders
#/bin/bash
find ./site/ -maxdepth 2 -mindepth 2 -type f -name 'index.html' -not -path './site/de/*' -not -path './site/en/*' | while read f; do
echo "Fixing redirect '$f'..."
sed -i -E 's/\.en\/"/\/"/' $f
done
And I am speaking about this repo, https://github.com/mailcow/mailcow-dockerized-docs
It seems that https://github.com/mkdocs/mkdocs-redirects/pull/45 is taking us closer to a solution, but it's still really tough.
Out of these two redirects, the 1st one will start working, but not 2nd:
"en/old.md": "new.en.md"
"pt/old.md": "new.pt.md"
Somehow the pt one is not reported to be in the files collection.
@oprypin I appreciate you looking into that. Thank you very much.
The i18n plugin simulates the subsequent builds on the fly modifying the configuration to change the language of the theme and correctly save new.en.md under en/new/index.html. I doubt this is an issue to be dealt with in the redirects plugin.
https://github.com/kamilkrzyskow/i18n/tree/redirects-plugin-support I made changes to i18n plugin, didn't create a PR yet, but it's been working OK for the past few days.