Collection of themes/skins for the Fossil SCM

⌈⌋ branch:  Fossil Skins Extra


Check-in [94b31e1ce3]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Generates sitemap.xml from wiki pages, doc files, technotes
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | trunk
Files: files | file ages | folders
SHA1: 94b31e1ce314d8c14be29f78a6825ab02512aeac
User & Date: mario 2022-01-29 14:29:57
Context
2022-01-29
14:29
Generates sitemap.xml from wiki pages, doc files, technotes Leaf check-in: 94b31e1ce3 user: mario tags: trunk
2022-01-21
21:30
Support technotes check-in: 18aea61ba2 user: mario tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Added extroot/sitemap.



































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/usr/bin/php-cgi -dcgi.force_redirect=0
<?php
# encoding: utf-8
# api: cgi
# type: output
# category: template
# title: sitemap.xml
# description: Generate indexing list for search engines
# version: 0.1
# state: beta
# depends: php:sqlite
# config: -
# access: public
#
# Crafts a sitemap.xml from wiki page list, document files,
# recent changes, etc.
#
# You might have to set up a RewriteRule or fossil-alias
# from sitemap.xml to ext/sitemap (because the ext/ prefix
# precludes listing other sections else).
#
# Then add a `robots.txt` entry like:
#   Sitemap: /sitemap.xml
#
# Or a cron job to ping:
#   wget -S http://duckduckgo.com/ping?sitemap=http://example.org/sitemap.xml
#



#-- init
include("./fossil_common.php");
header("Content-Type: text/xml; inline");
ini_set("display_errors", 1);

# head
print '<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
';

# pages
loop(
    db("
        SELECT SUBSTR(tagname, 6) AS name, DATE(MAX(mtime)) AS datetime
        FROM tag LEFT JOIN tagxref ON tag.tagid=tagxref.tagid
        WHERE tagname LIKE 'wiki-%' GROUP BY name ORDER BY datetime DESC;
    "),
    "wiki/", "daily", "0.5"
);
loop(
    db("
        SELECT SUBSTR(tagname, 7) AS name, DATE(MAX(mtime)) AS datetime
        FROM tag LEFT JOIN tagxref ON tag.tagid=tagxref.tagid
        WHERE tagname LIKE 'event-%' GROUP BY name ORDER BY datetime DESC;
    "),
    "technote/"
    , "weekly", "0.2"
);
# files *.md
loop(
    db("
       SELECT name, DATE(MAX(e.mtime)) AS datetime
       FROM filename
          LEFT JOIN mlink m ON m.fnid = filename.fnid
          LEFT JOIN event e ON e.objid = m.mid
       WHERE name LIKE '%.md' OR name LIKE '%.wiki' --REGEXP '\.(md|wiki|rst)$'
       GROUP BY name
       HAVING fid <> 0
       ORDER BY datetime DESC
    "),
    "doc/trunk/"
    , "monthly", "0.3"
);

# output
function loop($r, $base, $freq="weekly", $prio="0.1") {
    foreach ($r as $page) {
        entry($base . $page["name"], $page["datetime"], $freq, $prio);
    }
}

function entry($url, $datetime, $freq, $prio) {
    $url = htmlspecialchars($url, ENT_QUOTES, "utf-8");
    print <<<EOT
    <url>
        <loc>{$_SERVER["FOSSIL_SELF"]}{$url}</loc>
        <lastmod>$datetime</lastmod>
        <changefreq>$freq</changefreq>
        <priority>$prio</priority>
    </url>\n
EOT;
}

# end
print '</urlset>';

?>