...

Framing Multiline Text in Terminal

You can use special characters to frame nicely some lines of text in a text document.

Script Syntax

frame-multiline-script.py """multi-line string"""

Note

You must use your multi-line string of text between triple quotes as the script argument.

 

#!/usr/bin/env python3
import sys
import os

u1 = "─"
u2 = "│ "

u3 = "┌"
u4 = "┐"

u5 = "└"
u6 = "┘"

special_chars = ["'", "\\", "<", ">"]

try:
    if sys.argv[1]:
        # input = re.escape(sys.argv[1])
        input = sys.argv[1]
except:
    print("""
    Script has no argument!
    use a multi-line string between triple quots, as argument.
    
    usage:

    {script_name} \"\"\"multi-line string\"\"\"
    """.format(script_name=os.path.basename(__file__)))

    sys.exit(0)

lines_list = input.splitlines()
longest_line = max(lines_list, key=len)
max_char = len(longest_line) + 2

newLines = []
for line in lines_list:
    n = len(line)
    m = max_char - n - 1
    l = u2 + line + m*' ' + u2
    newLines.append(l)

top_line = u3 + max_char*u1 + u4
but_line = u5 + max_char*u1 + u6
print(top_line)
for l in newLines:
    print(l)
print(but_line)