From a382e6d4fd40d96938a8ba243510a7f1407ea342 Mon Sep 17 00:00:00 2001 From: Adrian Malacoda Date: Thu, 27 Aug 2020 02:02:43 -0500 Subject: [PATCH] Extract more archive generator specific functionality from linker (e.g. the .html suffix, / -> %2F replacement) --- epilogue/archive_generator.py | 8 +++++--- epilogue/wiki.py | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/epilogue/archive_generator.py b/epilogue/archive_generator.py index 856b556..ff96109 100644 --- a/epilogue/archive_generator.py +++ b/epilogue/archive_generator.py @@ -30,12 +30,14 @@ class ArchiveLinker(Linker): def translate_page_title (self, page_title): page_title = super().translate_page_title(page_title) + directory_name = "" for name in self.directory_names: - if page_title.startswith(f"{name}%2F"): - page_title = f"{name}/{page_title[len(name) + 3:]}" + if page_title.startswith(f"{name}/"): + directory_name = name + page_title = page_title[len(directory_name) + 1:] break - return page_title + return f"{directory_name}{'/' if directory_name else ''}{page_title.replace('/', '%2F')}.html" def prepare_thread (thread): thread.subject = html.unescape(thread.subject) diff --git a/epilogue/wiki.py b/epilogue/wiki.py index 711aeed..3fd8788 100644 --- a/epilogue/wiki.py +++ b/epilogue/wiki.py @@ -194,7 +194,7 @@ class Linker(): if page_title.startswith(CATEGORY_LINK_NAMESPACE): page_title = page_title[1:] - return f"{reformat_page_title(page_title)}.html" + return reformat_page_title(page_title) def translate_image_title (self, page_title): for namespace in self.file_namespaces: @@ -205,7 +205,7 @@ def reformat_page_title (page_title): if not page_title: return "" - return f"{page_title[0].upper()}{page_title[1:].replace(' ', '_').replace('/', '%2F')}" + return f"{page_title[0].upper()}{page_title[1:].replace(' ', '_')}" class Template(): def __init__ (self, wikicode):