#!/bin/env python import textwrap import sys # with open(sys.argv[1], 'r') as f: # lines = f.read().splitlines() # print(lines) # first pass: reflow paragraphs # paragraph = [] # lines = [] # for line in sys.stdin: # line = line.rstrip() # if line: # paragraph.append(line) # else: # if paragraph: # lines.append(' '.join(paragraph)) # lines.append("\n") # if paragraph: # lines.append(' '.join(paragraph)) skipping = False in_par = False running = True while running: line = sys.stdin.readline() if line == '': running = False if line.startswith(">"): # ignore quoted line print(line, end = "") elif line.startswith("```"): # ignore code block skipping = not skipping print(line, end = "") elif line.startswith("--"): skipping = True print(line, end = "") elif not line.rstrip(): # Empty line in_par = not in_par print() print("printing empty line") # print(line, end="") else: if not skipping and in_par: par = [] while True: next_line = sys.stdin.readline() # if not line.startswith((">", "```", "--")): stripped = next_line.rstrip() # print(next_line) # print("runs") if stripped: # print("runs strip") par.append(stripped) else: in_par = False print("breaking par") # par.append("\n") break line = " ".join(par) # print(par) # empty line, treat next section as paragraph # TODO: fix signature being mangled and newlines erased if not skipping: wrapped = textwrap.wrap(line, width=74, break_long_words=False, replace_whitespace=True) print("\n".join(wrapped), end="") else: print(line, end = "")