prime8dev

prime8dev
git clone https://git.prime8.dev/prime8dev.git
Log | Files | Refs | README | LICENSE

sitemap.go (991B)


      1 package handlers
      2 
      3 import (
      4 	"bytes"
      5 	"fmt"
      6 	"net/http"
      7 
      8 	"git.prime8.dev/moncheeta/prime8dev/internal/config"
      9 	"git.prime8.dev/moncheeta/prime8dev/internal/content"
     10 )
     11 
     12 func (h *Handler) SitemapHandler(w http.ResponseWriter, r *http.Request) {
     13 	w.Header().Set("Content-Type", "application/xml")
     14 
     15 	var xml bytes.Buffer
     16 	xml.WriteString(`<?xml version="1.0" encoding="UTF-8"?>
     17 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">`)
     18 
     19 	projects, _ := content.LoadProjects(h.gitService)
     20 	experience := config.GetExperience()
     21 
     22 	routes := []string{"/", "/experience", "/projects"}
     23 	for _, route := range routes {
     24 		fmt.Fprintf(&xml, "<url><loc>%s%s</loc></url>", config.SiteURL, route)
     25 	}
     26 
     27 	for _, p := range projects {
     28 		fmt.Fprintf(&xml, "<url><loc>%s/projects/%s</loc></url>", config.SiteURL, p.ID)
     29 	}
     30 
     31 	for _, exp := range experience {
     32 		fmt.Fprintf(&xml, "<url><loc>%s/experience/%s</loc></url>", config.SiteURL, exp.ID)
     33 	}
     34 
     35 	xml.WriteString("</urlset>")
     36 	_, _ = w.Write(xml.Bytes())
     37 }