📄 contents.awk
字号:
# table-of-contents extractor# Copyright (C) 1999 Sandy Harris.# # This program is free software; you can redistribute it and/or modify it# under the terms of the GNU General Public License as published by the# Free Software Foundation; either version 2 of the License, or (at your# option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.# # This program is distributed in the hope that it will be useful, but# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License# for more details.## RCSID $Id: contents.awk,v 1.1 2001/01/29 01:18:07 sandy Exp $BEGIN { # initialise indent counter indent = 0 # define variables for section breaks b0 = "===================================================" b1 = "---------------------------------------------------" b2 = "\t------------------------------------------" # TURN OFF HTML formatting print "<html>" print "<body>" print "<pre>" # print a header blurb() print "Section headings printed, indentation shows structure"}# start of new fileFNR == 1 { print b0 print "HTML file: " "<a href=\"" FILENAME "\">" FILENAME "</a>" print b1}# print header lines# actual printing is done by tagged() function# which adds tag if last line was <a name=...>$0 ~/<h1>/ { text = $0 tabs = "" gsub(/.*<h1>/, "", text) gsub(/<\/h1>/, "", text) tagged( text )}$0 ~/<h2>/ { text = $0 tabs = "\t" gsub(/.*<h2>/, "", text) gsub(/<\/h2>/, "", text) tagged(text)}$0 ~/<h3>/ { text = $0 tabs = "\t\t" gsub(/.*<h3>/, "", text) gsub(/<\/h3>/, "", text) tagged(text)}$0 ~/<h4>/ { text = $0 tabs = "\t\t\t" gsub(/.*<h4>/, "", text) gsub(/<\/h4>/, "", text) tagged( text )}# if current line is not header# and we have stored tag from <a name=..> line# make link to that tag$0 !~ /<h[1-4]/ { if( length(name) ) print "[ <a href=\"" FILENAME "#" name "\">" name "</a>" " ]" name = ""}# for <a name=whatever> lines# save name in a variable# not printed until we see next line$0 ~ /<a name=.*>/ { name = $0 # strip anything before or after name tag gsub(/.*<a name=/, "", name) gsub(/>.*/, "", name) # strip quotes off name gsub(/^"/, "", name) gsub(/"$/, "", name)}END { print b0 blurb() print "Docs & script by Sandy Harris" print "</pre>" print "</body>" print "</html>"}function tagged(text) { # print header with tag if available if( length(name) ) # > 0 if previous line was a name print tabs "<a href=\"" FILENAME "#" name "\">" text "</a>" else print tabs text name = ""}function blurb() { print "Linux FreeSWAN HTML documents" print "Automatically generated Table of Contents" print "Bug reports to the mailing list: linux-ipsec@clinet.fi" print "<p>"}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -