#! /usr/bin/python3 # Last edited on 2025-10-29 16:38:11 by stolfi import sys, re import html_gen as h from process_funcs import bash from datetime import datetime, timezone def make_clip_src_py(clip_dir:str) -> None: # Given a clip image folder {clip_dir}, assembles "title.txt", "annotated.png", # "legend.txt", "discussion.txt", # writes a single python program "clip-src.py" that outputs the page "clip.html". # File names relative to the current folder: imgfile = f"{clip_dir}/annotated.png" # Image file. titfile = f"{clip_dir}/title.txt" # File with title of figure. legfile = f"{clip_dir}/legend.txt" # File with plain text caption. disfile = f"{clip_dir}/discussion.txt" # File with plain text discussion. srcfile = f"{clip_dir}/clip-src.py" # Sub-page file. with open(srcfile, "w") as wr: now = str(datetime.now(tz = timezone.utc)) title = h.get_text_from_file(titfile).strip() title = re.sub(r" *[.]$", "", title) caption = h.get_text_from_file(legfile).strip() discussion = h.get_text_from_file(disfile).strip() wr.write(f"#! /usr/bin/python3\n") wr.write(f"import sys, re\n") wr.write(f"import html_gen as h\n") wr.write(f"from process_funcs import bash\n") wr.write(f"import html_report_funcs as hr\n") wr.write(f"\n") wr.write(f"# Created on {now} make_clip_src_py.py\n") wr.write(f"last_edit = \"Last edited on {now} by nobody\"\n") wr.write(f"\n") wr.write(f"def main():\n") wr.write(f"\n") wr.write(f" global last_edit\n") wr.write(f" text_width = 800 # Text width in px.\n") wr.write(f"\n") wr.write(f" title = \"{title}\"\n") wr.write(f" title = h.protect_html(title)\n") wr.write(f" st = h.new_doc(title, \"#eeffdd\", text_width)\n") wr.write(f"\n") wr.write(f" h.section(st, 2, \"Details\")\n") wr.write(f"\n") wr.write(f" caption = \"\"\"{caption}\"\"\"\n") wr.write(f" hr.basic_figure(st, \"annotated.png\", caption)\n") wr.write(f"\n") wr.write(f" h.section(st, 2, \"Discussion\")\n") wr.write(f"\n") wr.write(f" discussion = \"\"\"{discussion}\"\"\"\n") wr.write(f"\n") wr.write(f" h.parags(st, discussion)\n") wr.write(f"\n") wr.write(f" h.output_doc(st, sys.stdout, 99, last_edit)\n") wr.write(f" return 0\n") wr.write(f" # ----------------------------------------------------------------------\n") wr.write(f"main()\n") wr.close() bash(f"chmod a+x {srcfile}") return None # ---------------------------------------------------------------------- clip_dir = sys.argv[1] make_clip_src_py(clip_dir)