# # == About == # # Every page has a description and og:description meta tags. These descriptions are # generated from the text inside paragraphs of the current page. # The value for those meta tags is "[DESCRIPTION]" and it gets replaced with # either all of the text on the page, or only the first 200 characters. function appToDesc(l) { gsub(/<[^>]*>/, "", l) ; gsub("’", "'", l) gsub(/[^a-zA-Z0-9 '.]/, "", l) gsub(/^[ \t]*/, "", l) ; gsub(/[ \t]*$/, "", l) desc = desc l if (length(desc) >= 200) { desc = substr(desc, 1, 197) "..." return 1 } return 0 } BEGIN { stop = 0 # Loop over the whole file, extract all text in first couple of paragraphs, # store it in desc (but no more than 200 characters will be saved) while(stop == 0 && getline < ARGV[1]) { if (index($0, "
0) stop = appToDesc($0) } close(ARGV[1]) # FILENAME isn't set during BEGIN } "\\[DESCRIPTION\\]" { gsub("\\[DESCRIPTION\\]", desc) }