mdnh (454B)
1 #!/usr/bin/awk -f 2 # Copyright 2021 Jacob R. Edwards 3 # Number Markdown headings 4 5 status = match($0, "^#+") > 0 { 6 level = RLENGTH; 7 ++counts[level]; 8 9 for (i = level + 1; counts[i]; ++i) 10 counts[i] = 0; 11 12 for (i = 1; i < level; ++i) 13 if (!counts[i]) 14 counts[i] = 1; 15 16 markup = ""; 17 num = ""; 18 for (i = 1; i <= level; ++i) { 19 markup = markup "#"; 20 num = num counts[i] "."; 21 } 22 23 sub("^#+ ?", "", $0); 24 printf "%s %s %s\n", markup, num, $0; 25 } 26 27 !status