Summary Files Commits Branches @commit @diff @stats
path: root / awk-edits / Header-title.awk
blob: 42fafa71211c51c2b881755d4a70840da475b494 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#
# == About ==
#
# Every page has a og:title meta tag, which has to be generated from the page
# itself. The title tag is automatically filled in by ssg.
# The value for the meta tag is "[TITLE]" and it gets replaced with all text
# inside first h1 header tag.

BEGIN {
	h1Index = 0;

	# When this loop finishes, $0 will have the first line containing an h1 header
	# tag, and h1Index will have it's starting position
	while (h1Index == 0 && getline < ARGV[1])
		h1Index = index($0, "<h1");
	close(ARGV[1]); # FILENAME isn't set during BEGIN

	# Removes the opening tag
	gsub(/<h1[^>]*>/, "");
	# Remove all HTML character codes, since they're in the form "&...;" and the &
	# will be treated as the character for replacement in gsub
	gsub(/&[^;]*;/, "");
	title = substr($0, h1Index, index($0, "</h1") - h1Index);
}

/\[TITLE\]/ {
	gsub(/\[TITLE\]/, title);
}