Skip to content

Commit 3d59435

Browse files
committed
create redirect pages
1 parent d6c0e53 commit 3d59435

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

hooks.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
import os
12
import re
23
import shutil
4+
import string
35
from pathlib import Path
46

57
import htmlmin
@@ -15,6 +17,7 @@
1517
LINKS_PATTERN = re.compile(r"\.\.\/\.\.\/man[1,3,5,7]{1}\/[a-zA-Z0-9_\-.]+")
1618
HEADINGS_PATTERN = re.compile(r" {0,3}(#{1,6})((?=\s)[^\n]*?|[^\n\S]*)(?:(?<=\s)(?<!\\)#+)?[^\n\S]*$\n?", flags=re.M)
1719
LINKS_MAP = {}
20+
REDIRECT_PAGES = {}
1821

1922

2023
def get_names_paragraph(content: str) -> str:
@@ -56,6 +59,10 @@ def on_files(files: Files, config: MkDocsConfig) -> Files | None:
5659
# e.g. "openssl/core_dispatch.h" to "openssl-core_dispatch.h"
5760
name = name.strip().replace("/", "-")
5861
LINKS_MAP[f"../../{man_dir}/{name}"] = f"../{man_dir}/{man_file.name}.md"
62+
if name != man_file.name:
63+
redirect_page_uri = f"{man_file.dest_dir}/{man_dir}/{name}"
64+
source_page_uri = f"../../{man_file.dest_uri}"
65+
REDIRECT_PAGES[redirect_page_uri] = source_page_uri
5966
return files
6067

6168

@@ -148,3 +155,11 @@ def on_nav(nav: Navigation, config: MkDocsConfig, files: Files) -> Navigation:
148155

149156
def on_post_page(output: str, page: Page, config: MkDocsConfig) -> str:
150157
return htmlmin.minify(output, remove_comments=True, remove_empty_space=True)
158+
159+
160+
def on_post_build(config: MkDocsConfig):
161+
template = '<!DOCTYPE html><html lang="en"><head><meta name="robots" content="noindex"><meta charset="utf-8"><meta http-equiv="refresh" content="0; url={}"></head></html>'
162+
for redirect_page_uri, source_page_uri in REDIRECT_PAGES.items():
163+
path = Path(redirect_page_uri)
164+
os.makedirs(path.parent)
165+
path.write_text(template.format(source_page_uri))

0 commit comments

Comments
 (0)