34 lines
1.1 KiB
Awk
34 lines
1.1 KiB
Awk
# a no-nonsense source-to-markdown generator which scans for:
|
|
#
|
|
# /**
|
|
# * # foo
|
|
# *
|
|
# * this is markdown $(cat bar.md)
|
|
# */
|
|
#
|
|
# var foo; // comment with 2 leading spaces is markdown too $(date)
|
|
#
|
|
# easily refactorable to hash-based languages (py/bash/perl/lua e.g.)
|
|
# by changing the regexes
|
|
#
|
|
/\$\(/ { cmd=$0;
|
|
gsub(/^.*\$\(/,"",cmd);
|
|
gsub(/\).*/,"",cmd);
|
|
cmd | getline stdout; close(cmd);
|
|
sub(/\$\(.*\)/,stdout);
|
|
}
|
|
/\/\*\*/ { doc=1; sub(/^.*\/\*/,""); }
|
|
doc && /\*\// { doc=0;
|
|
sub(/[[:space:]]*\*\/.*/,"");
|
|
sub(/^[[:space:]]*\*[[:space:]]?/,"");
|
|
print
|
|
}
|
|
doc && /^[[:space:]]*\*/ { sub(/^[[:space:]]*\*[[:space:]]?/,"");
|
|
print
|
|
}
|
|
!doc && /\/\/ / { sub(".*// ","");
|
|
sub("# ","\n# ");
|
|
sub("> ","\n> ");
|
|
print
|
|
}
|