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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
BEGIN {
FS="\t"
while ((getline < ENVIRON["META"]) > 0) {
if ($1 == "") continue
meta_title[$1] = $2 " \\— Syndamia"
meta_description[$1] = $3
}
FS=" "
HEADER = getfile(ENVIRON["HEADER"])
FOOTER = getfile(ENVIRON["FOOTER"])
sitemap = ENVIRON["DST"] "/sitemap.xml"
print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" ORS \
"<urlset" ORS \
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" ORS \
"xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9" ORS \
"http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\"" ORS \
"xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">" > sitemap
for (i = ARGC; i > 0; --i) {
if (!ARGV[i]) continue
#-- Add header and footer --#
start = HEADER
FILENAME = substr(ARGV[i], length(ENVIRON["DST"]) + 2)
gsub(/\$TITLE/, meta_title[FILENAME], start)
gsub(/\$DESCRIPTION/, meta_description[FILENAME], start)
end = FOOTER
sub(/html$/, "du", FILENAME)
gsub(/\$DUNBAR_SOURCE/, "/" FILENAME, end)
# Note: nawk (20250116) has what is probably a bug,
# if you do "print getfile(f) > f", you'll crash.
# This is probably because in getfile we close the
# file, but after the function is finished, the > expects
# the file to be opened (> probably opens the file before
# evaluating the print).
contents = start getfile(ARGV[i]) end
print contents > ARGV[i]
#-- Add to sitemap --#
print "<url><loc>" ENVIRON["URL"] substr(ARGV[i], length(ENVIRON["DST"]) + 1) "</loc><lastmod>" date "</lastmod><priority>1.0</priority></url>" > sitemap
}
print "</urlset>" > sitemap
}
function getfile(filename, status, linebuf, filebuf) {
while ((status = getline linebuf < filename) > 0)
filebuf = filebuf linebuf ORS
close(filename)
sub(ORS "$", "", filebuf)
return filebuf
}
|