#!/bin/awk -f # Turns Markdown YAML into *roff ms # By tweedy, version of 30 Dec 2021 BEGIN { Top = ""; Title = ""; Author = ""; Date = ""; Thanks = ""; Abstract = ""; } { if(match($0, /^[tT]itle: .+$/)) { Title = substr($0, RSTART+7, RLENGTH); gsub(/\"/,"",Title); Top = Top "\n.TL\n" Title; } else if(match($0, /^[aA]uthor: .+$/)) { Author = substr($0, RSTART+8, RLENGTH); gsub(/\"/,"",Author); Top = Top "\n.AU\n" Author; } else if(match($0, /^[dD]ate: .+$/)) { Date = substr($0, RSTART+6, RLENGTH); gsub(/\"/,"",Date); Top = Top "\n.sp 0.5\n.ft R\n" Date; } else if(match($0, /^[tT]hanks: .+$/)) { Thanks = substr($0, RSTART+8, RLENGTH); gsub(/\"/,"",Thanks); } else if(match($0, /^[aA]bstract: .+$/)) { Abstract = substr($0, RSTART+10, RLENGTH); gsub(/^[\'\"]/,"",Abstract); gsub(/[\'\"]$/,"",Abstract); Top = Top "\n.AB\n" Abstract "\n.AE\n"; } } END { Top = thanks(Top); print Top; } function thanks(st) { if(Thanks != "") { Thanks = "\*\\\*\n.FS \\\[\*\*\]\n" Thanks "\n.FE"; sub(Title,Title Thanks, st); } return st; }