#!/bin/env python # Simple text-wrapping script for email. # Preserves code blocks, quotes, and signature. # Automatically joins and re-wraps paragraphs to # ensure even spacing & avoid ugly wrapping. # Author: Daniel Fichtinger # License: MIT import textwrap import sys import re paragraph = [] skipping = False def flush_paragraph(): if paragraph: joined = " ".join(paragraph) wrapped = textwrap.wrap(joined, width=74, break_long_words=False, replace_whitespace=True) print("\n".join(wrapped)) paragraph.clear() for line in sys.stdin: line = line.rstrip() if line.startswith("```"): flush_paragraph() skipping = not skipping print(line) elif line.startswith("--"): flush_paragraph() skipping = True print(line) elif not line or re.match(r"^(\s+|-\s+|\+\s+|\*\s+|>\s*)", line): flush_paragraph() print(line) elif skipping: print(line) else: paragraph.append(line) else: flush_paragraph()