diff --git a/epilogue/archive_generator.py b/epilogue/archive_generator.py index 6230a6a..9d72d4e 100644 --- a/epilogue/archive_generator.py +++ b/epilogue/archive_generator.py @@ -9,7 +9,7 @@ import chevron import bbcode import html -from .wiki import Template, Renderer, Linker, reformat_page_title, NAMESPACES as WIKI_NAMESPACES +from .wiki import Template, Renderer, Linker, NAMESPACES as WIKI_NAMESPACES logging.basicConfig(level=logging.INFO) logger = logging.getLogger("ArchiveGenerator") @@ -131,7 +131,7 @@ class ArchiveGenerator(): raise e for category, pages in categories.items(): - category_out = f"Category:{reformat_page_title(category)}.html" + category_out = f"Category:{linker.translate_page_title(category)}" logger.info("Archiving category %s to %s", category, category_out) try: diff --git a/epilogue/redirector.py b/epilogue/redirector.py index 2032b10..7d930b9 100644 --- a/epilogue/redirector.py +++ b/epilogue/redirector.py @@ -1,5 +1,7 @@ import argparse +from .archive_generator import ArchiveLinker, DEXES + from flask import Flask, redirect, request app = Flask(__name__) @@ -8,29 +10,16 @@ app = Flask(__name__) def redirect_wiki (path): return redirect(make_wiki_url(path)) -def is_wiki_directory_name (name): - return "Dex" in name - -def escape_wiki_page_name (page_name): - page_name = page_name[0].upper() + page_name[1:].replace(" ", "_") - - if page_name.endswith("/"): - page_name = page_name[:-1] - - if "/" in page_name: - (prefix, suffix) = page_name.split("/", 1) - suffix = suffix.replace("/", "%2F") - page_name = prefix + ("/" if is_wiki_directory_name(prefix) else "%2F") + suffix - - return page_name - def make_wiki_url (path): url = app.args.wiki_archive + if path.endswith("/"): + path = path[:-1] + if not url.endswith("/"): url = url + "/" - return url + escape_wiki_page_name(path) + ".html" + return url + app.wiki_linker.translate_page_title(path) ## Forum redirector @app.route('/forums/') @@ -46,4 +35,5 @@ def main (): parser.add_argument("--forums-archive", help="URL to forums archive") app.args = parser.parse_args() + app.wiki_linker = ArchiveLinker(directory_names=DEXES) app.run() \ No newline at end of file diff --git a/epilogue/wiki.py b/epilogue/wiki.py index 3fd8788..5694fb6 100644 --- a/epilogue/wiki.py +++ b/epilogue/wiki.py @@ -106,9 +106,9 @@ class Renderer(): if categories: rendered.append('

Categories

")