opt: gzip + no cdn shi + feeds

This commit is contained in:
2026-06-26 20:57:14 +03:00
parent 78b8bea6f7
commit 98d85ecbf5
10 changed files with 3563 additions and 15 deletions

View File

@@ -34,13 +34,13 @@ const pageTpl = `<!DOCTYPE html>
<meta property="og:site_name" content="Chaosmith Systems">
<meta name="twitter:card" content="summary">
{{end}}
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&family=Inter:wght@300;500;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/src/thirdparty/highlight/default.min.css">
<script src="/src/thirdparty/highlight/highlight.min.js"></script>
<script src="/src/lang/ergon.js"></script>
<script src="/src/lang/archasm.js"></script>
<link rel="stylesheet" href="/src/thirdparty/fonts/fonts.css" media="print" onload="this.media='all'">
<link rel="alternate" type="application/rss+xml" title="Chaosmith Systems — Field Notes" href="/blog/feed.xml">
<link rel="alternate" type="application/feed+json" title="Chaosmith Systems — Field Notes (JSON)" href="/blog/feed.json">
<link rel="stylesheet" href="/src/thirdparty/highlight/default.min.css" media="print" onload="this.media='all'">
<script defer src="/src/thirdparty/highlight/highlight.min.js"></script>
<script defer src="/src/lang/ergon.js"></script>
<script defer src="/src/lang/archasm.js"></script>
<style>
:root {
--bg: #05030a;
@@ -137,6 +137,7 @@ const pageTpl = `<!DOCTYPE html>
<a href="/blog/">Blog</a>
</nav>
</div>
<a href="/blog/feed.xml" style="margin-left:auto; font-size:13px; text-transform:uppercase; letter-spacing:0.1em; color:var(--text-dim); text-decoration:none;">RSS</a>
</header>
<main>
{{if .Post.HTML}}
@@ -166,7 +167,7 @@ const pageTpl = `<!DOCTYPE html>
<span>Chaosmith Systems</span>
</footer>
</div>
<script>hljs.highlightAll();</script>
<script>window.addEventListener('DOMContentLoaded',()=>hljs.highlightAll());</script>
</body>
</html>`
@@ -248,6 +249,30 @@ func RegisterRoutes(mux *http.ServeMux, contentDir string) error {
})
})
// RSS feed
mux.HandleFunc("/blog/feed.xml", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/rss+xml; charset=utf-8")
w.Write([]byte(generateRSS(store)))
})
// JSON feed
mux.HandleFunc("/blog/feed.json", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/feed+json; charset=utf-8")
w.Write([]byte(generateJSONFeed(store)))
})
// Sitemap
mux.HandleFunc("/sitemap.xml", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/xml; charset=utf-8")
w.Write([]byte(generateSitemap(store)))
})
// robots.txt
mux.HandleFunc("/robots.txt", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/plain")
w.Write([]byte("User-agent: *\nAllow: /\n\nSitemap: https://chaosmith.systems/sitemap.xml\n"))
})
log.Printf("blog: loaded %d post(s) from %s, mounted at /blog/", store.Count(), contentDir)
return nil
}