📄 makedoc.awk
字号:
# Take apart bits of HTML and puts them back together again in new and# fascinating ways. Copyright (C) 2002 Free Software Foundation, Inc.# Contributed by Phil Edwards <pme@gcc.gnu.org>. Simple two-state automaton# inspired by Richard Henderson's gcc/mkmap-symver.awk.# 'file' is the name of the file on stdin# 'title' is the text to print at the start of the listBEGIN { state = "looking"; entries = 0; printf (" <li>%s\n", title); printf (" <ul>\n");}# Searching for the little table of contents at the top.state == "looking" && /^<h1>Contents/ { state = "entries"; next;}# Ignore everything else up to that point.state == "looking" { next;}# An entry in the table of contents. Pull that line apart.state == "entries" && /<li>/ { extract_info($0); next;}# End of the list. Don't bother reading the rest of the file. (It could# also contain more <li>'s, so that would be incorrect as well as wasteful.)state == "entries" && /^<\/ul>/ { exit;}END { for (i = 0; i < entries; i++) printf (" %s\n", entry[i]); printf (" </ul>\n </li>\n\n");}function extract_info(line) { # thistarget will be things like "#5" or "elsewhere.html" match(line,"href=\".*\""); thistarget = substr(line,RSTART+6,RLENGTH-7); # take apart the filename split(file,X,"/"); if (thistarget ~ /^#/) { # local name, use directory and filename target = file thistarget } else { # different file, only use directory target = X[1] "/" thistarget } # visible text gsub("</a></li>","",line); start = index(line,"\">") + 2; thistext = substr(line,start); # Assemble and store the HTML for later output. entry[entries++] = "<li><a href=\"" target "\">" thistext "</a></li>"}# vim:sw=2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -