mkdocs-redirects icon indicating copy to clipboard operation
mkdocs-redirects copied to clipboard

Redirect fails with translation plugin

Open MAGICCC opened this issue 3 years ago • 10 comments

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.

MAGICCC avatar Feb 05 '22 16:02 MAGICCC

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?

hhslepicka avatar Sep 02 '22 23:09 hhslepicka

Please provide a mkdocs website source (mkdocs.yml and necessary sources) that exhibits this issue.

oprypin avatar Sep 03 '22 00:09 oprypin

@oprypin working on that.

hhslepicka avatar Sep 03 '22 00:09 hhslepicka

@oprypin here they are:

Steps to Reproduce

  1. Access the website at https://hhslepicka.github.io/mkdocs-redirect-issue-i18n/
  2. Click on the Old link on the home page.
  3. You will receive a 404 error
  4. Go back into the home page
  5. Click on the New link
  6. 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.

hhslepicka avatar Sep 03 '22 00:09 hhslepicka

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

MAGICCC avatar Sep 03 '22 08:09 MAGICCC

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 avatar Sep 18 '22 00:09 oprypin

@oprypin I appreciate you looking into that. Thank you very much.

hhslepicka avatar Sep 18 '22 04:09 hhslepicka

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.

kamilkrzyskow avatar Mar 02 '23 09:03 kamilkrzyskow