From ef37632af8d6f5bc7d2efce2dafe3b0cda1f10f2 Mon Sep 17 00:00:00 2001 From: mr4tt <78581772+mr4tt@users.noreply.github.com> Date: Tue, 30 Jul 2024 15:21:34 +0800 Subject: Add 404 Page when theme not found (#777) --- .gitignore | 2 +- build-theme-previews.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++-- pelican-sad.png | Bin 0 -> 1030179 bytes 3 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 pelican-sad.png diff --git a/.gitignore b/.gitignore index e79f6b5..ba5436c 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,4 @@ Thumbs.db # Preview artifacts # ##################### _pelican -_output \ No newline at end of file +_output diff --git a/build-theme-previews.py b/build-theme-previews.py index 327fba5..3ad6740 100644 --- a/build-theme-previews.py +++ b/build-theme-previews.py @@ -59,7 +59,7 @@ HTML_HEADER = """\ + + +

Not Found

+

What you’re looking for isn’t here.
It may have moved, or something unfortunate may have befallen it.

+ +

Double-check the URL and try again, or head home.

+ +sad pelican + + + +""" + def setup_folders(args): theme_root = os.path.abspath(os.path.dirname(__file__)) @@ -235,6 +269,17 @@ def write_index_files(output_root, success, fail): logger.info(f"failed {len(fail)} themes") +def write_404_file(output_root): + logger.info("generating 404 page file...") + with open(os.path.join(output_root, "404.html"), "w") as outfile: + outfile.write(HTML_404) + + pelican_pic_path = os.path.join(output_root, "pelican-sad.png") + subprocess.call(["cp", "pelican-sad.png", pelican_pic_path]) + + logger.info("wrote 404 page file") + + def parse_args(argv=None): parser = argparse.ArgumentParser() parser.add_argument( @@ -273,7 +318,8 @@ def main(argv=None): theme_root, samples_root, output_root, screenshot_root = setup_folders(args) success, fail = build_theme_previews(theme_root, samples_root, output_root, screenshot_root) write_index_files(output_root, success, fail) + write_404_file(output_root) if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/pelican-sad.png b/pelican-sad.png new file mode 100644 index 0000000..3893d1c Binary files /dev/null and b/pelican-sad.png differ -- cgit