diff options
Diffstat (limited to 'pysite/views/wiki/sitemap_xml.py')
-rw-r--r-- | pysite/views/wiki/sitemap_xml.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/pysite/views/wiki/sitemap_xml.py b/pysite/views/wiki/sitemap_xml.py new file mode 100644 index 00000000..9b7f0980 --- /dev/null +++ b/pysite/views/wiki/sitemap_xml.py @@ -0,0 +1,22 @@ +from flask import Response, url_for + +from pysite.base_route import RouteView +from pysite.mixins import DBMixin + + +class SitemapXML(RouteView, DBMixin): + path = "/sitemap.xml" + name = "sitemap_xml" + table_name = "wiki" + + def get(self): + urls = [] + + for page in self.db.get_all(self.table_name): + urls.append({ + "change_frequency": "weekly", + "type": "url", + "url": url_for("wiki.page", page=page["slug"], _external=True) + }) + + return Response(self.render("sitemap.xml", urls=urls), content_type="application/xml") |