Extract more archive generator specific functionality from linker (e.g. the .html suffix, / -> %2F replacement)

This commit is contained in:
Adrian Kuschelyagi Malacoda 2020-08-27 02:02:43 -05:00
parent ade44491d4
commit a382e6d4fd
2 changed files with 7 additions and 5 deletions

View File

@ -30,12 +30,14 @@ class ArchiveLinker(Linker):
def translate_page_title (self, page_title): def translate_page_title (self, page_title):
page_title = super().translate_page_title(page_title) page_title = super().translate_page_title(page_title)
directory_name = ""
for name in self.directory_names: for name in self.directory_names:
if page_title.startswith(f"{name}%2F"): if page_title.startswith(f"{name}/"):
page_title = f"{name}/{page_title[len(name) + 3:]}" directory_name = name
page_title = page_title[len(directory_name) + 1:]
break break
return page_title return f"{directory_name}{'/' if directory_name else ''}{page_title.replace('/', '%2F')}.html"
def prepare_thread (thread): def prepare_thread (thread):
thread.subject = html.unescape(thread.subject) thread.subject = html.unescape(thread.subject)

View File

@ -194,7 +194,7 @@ class Linker():
if page_title.startswith(CATEGORY_LINK_NAMESPACE): if page_title.startswith(CATEGORY_LINK_NAMESPACE):
page_title = page_title[1:] 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): def translate_image_title (self, page_title):
for namespace in self.file_namespaces: for namespace in self.file_namespaces:
@ -205,7 +205,7 @@ def reformat_page_title (page_title):
if not page_title: if not page_title:
return "" 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(): class Template():
def __init__ (self, wikicode): def __init__ (self, wikicode):