Für bessere/leichtere Indexierung durch z.B. Google ist eine Sitemap nützlich.
Die Sitemap hat ein definiertes Format. Welche Tags in der XML-Datei wie zu benutzen sind, beschreibt z.B. Google Support: Sitemap erstellen.
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://wiki.failover.de/pandoc/elasticsearch/index.html</loc>
</url>
<url>
<loc>https://wiki.failover.de/pandoc/sitemap/index.html</loc>
</url>
<url>
<loc>https://wiki.failover.de/pandoc/index.html</loc>
</url>
</urlset>
In Pandoc als Wiki-Engine ist bereits ein Makefile
angelegt wurden. Dieses wird jetzt erweitert:
.SILENT:
INMD := $(shell find * -type f -name "*.md")
INHTML := $(shell find * -type f -name "*.html")
SITEMAPXML := sitemap.xml
SITEMAP := '<?xml version="1.0" encoding="UTF-8"?>\
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\
$(shell for _in in ${INHTML} ; do printf "<url><loc>https://wiki.failover.de/$${_in}</loc></url>"; done)\
</urlset>'
TIDY := tidy -xml -utf8 -q
PANDOC := pandoc --toc -f markdown -t html5 --template template.html -s --highlight-style kate
.PHONY: main html sitemap upload help
main: html sitemap
html:
$(info $@:)
for _in in ${INMD}; do \
${PANDOC} -o $${_in%.md}.html $$_in $${_in%.md}.yaml; \
done
sitemap: html
$(info $@:)
$(info ${SITEMAPXML})
printf ${SITEMAP} | ${TIDY} - > ${SITEMAPXML}
upload:
rsync -auv -C --delete ./* yourhost.com:/var/www/html/your_path/
help :
echo ""
echo "make (main) - builds all in current directory"
echo "make html - creates all html files"
echo "make sitemap - creates a google sitemap: ${SITEMAPXML}"
echo "make help - this info"
echo ""
Auch das HTML-Template template.html
wird angepasst. Im <head>
-Teil wird eine einzige Zeile eingefügt: