Single-binary self-hosted Markdown blog on Rust axum: no database, live search, Typst PDF export, and strong SEO.
axumblogdockermarkdownminijinjarustself-hostedtypstvite
1<?xml version="1.0" encoding="UTF-8"?>
2<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3 <url>
4 <loc>{{ request.url_root }}</loc>
5 <changefreq>weekly</changefreq>
6 </url>
7 <url>
8 <loc>{{ request.url_root }}blog/</loc>
9 <changefreq>weekly</changefreq>
10 </url>
11 {% for post in posts %}
12 <url>
13 <loc>{{ request.url_root }}posts/{{ post.slug }}/</loc>
14 <lastmod>{{ post.date }}</lastmod>
15 <changefreq>yearly</changefreq>
16 </url>
17 {% endfor %}
18 {% for tag in tags %}
19 <url>
20 <loc>{{ request.url_root }}blog/tag/{{ tag.slug }}/</loc>
21 {% if tag_lastmod[tag.slug] %}
22 <lastmod>{{ tag_lastmod[tag.slug] }}</lastmod>
23 {% endif %}
24 <changefreq>monthly</changefreq>
25 </url>
26 {% endfor %}
27 {% for year in years %}
28 <url>
29 <loc>{{ request.url_root }}blog/year/{{ year }}/</loc>
30 {% if year_lastmod[year] %}
31 <lastmod>{{ year_lastmod[year] }}</lastmod>
32 {% endif %}
33 <changefreq>yearly</changefreq>
34 </url>
35 {% endfor %}
36</urlset>