From bfebab9957c63d460874d3ec8f6100f9b49de080 Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Sat, 10 Jul 2021 23:26:20 +0000 Subject: Whack some URLs to match cgit naming scheme --- kludges.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100755 kludges.py (limited to 'kludges.py') diff --git a/kludges.py b/kludges.py new file mode 100755 index 0000000..c0de7e1 --- /dev/null +++ b/kludges.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 +# +# Kludges specific to converting the Cryptech wiki + +import os, re, json + +with open("repositories.json") as f: + repo_or = "|".join(os.path.splitext(r)[0] for r in json.load(f)) + +plain = "](https://git.cryptech.is" + +regexp = re.compile(r"(\(https://git\.cryptech\.is/(?:" + repo_or + "))([(/)])") + +for root, dirs, files in os.walk("pelican/content"): + for fn in files: + if not fn.endswith(".md"): + continue + fn = os.path.join(root, fn) + with open(fn) as f: + lines = f.readlines() + if not any(plain in line for line in lines): + continue + changes = 0 + for i, line in enumerate(lines): + if plain not in line: + continue + lines[i], n = regexp.subn( + lambda m: m.group(1) + (".git/tree" if m.group(2) == "/" else ".git") + m.group(2), + line) + changes += n + if changes: + tn = fn + ".tmp" + with open(tn, "w") as f: + for line in lines: + f.write(line) + os.rename(tn, fn) -- cgit v1.2.3