import sys,re for p in sys.argv[1:]: t=open(p).read() # drop fenced code blocks t=re.sub(r"```.*?```","[code]",t,flags=re.S) # collapse repeated [code] t=re.sub(r"(\[code\]\s*)+","[code]\n",t) # drop blank runs t=re.sub(r"\n{3,}","\n\n",t) print(f"\n===== {p} =====\n{t}")