Download raw body.
got-www: generate HTML page from CHANGES
On 2024/10/28 07:43:15 +0100, Stefan Sperling <stsp@stsp.name> wrote:
> On Sun, Oct 27, 2024 at 06:21:10PM +0100, Omar Polo wrote:
> > Just an idea. It's easier to read the changelog on a web browser this
> > way, and we could even link the changes for a specific release?
> >
> > Here's a preview: https://tmp.omarpolo.com/changes.html
> >
> > If ok I'll commit the generated releases/changes.html as well.
> >
> > Thoughs? Do we need something similar for -portable too? =)
>
> I am not opposed. Fine with me.
> I don't mind plaintext but HTML certainly looks better in a browser.
Great, I'll do something similar for -portable changelog as well as a
follow-up then.
> > +<p>
> > +See git repository history for per-change authorship information
> > +</p>
>
> Might as well make "git repository" a clickable link?
Yes, makes sense!
Here's an updated diff with some feedback that I received off-list.
- slightly better awk code
- better html
- updated the links in index.html
- changed the format of the title
I've also updated the preview at <https://tmp.omarpolo.com/changes.html>.
Thanks,
Omar Polo
diff /home/op/w/got-www
commit - 2fa5e3a8004ff7eea62475253244dec9567b245f
path + /home/op/w/got-www
blob - 9ff7cfc546813adf215ffaa0ef7f7b0344856d52
file + index.html
--- index.html
+++ index.html
@@ -14,7 +14,7 @@
<h1>About Got</h1>
<ul>
<li><a href="goals.html">Project Goals</a>
- <li><a href="releases/CHANGES">Change Log</a>
+ <li><a href="releases/changes.html">Change Log</a>
</ul>
<h1>Resources</h1>
<ul>
@@ -62,7 +62,7 @@
</h1>
<p id="callout">
- <a href="releases/CHANGES">Game of Trees 0.104</a> released October 22, 2024
+ <a href="releases/changes.html">Game of Trees 0.104</a> released October 22, 2024
<br>
<a href="releases/portable/CHANGELOG">Game of Trees -portable 0.104</a> released October 22, 2024
blob - /dev/null
file + sync-changes.sh (mode 755)
--- /dev/null
+++ sync-changes.sh
@@ -0,0 +1,105 @@
+#!/bin/sh
+
+exec >releases/changes.html
+
+cat <<EOF
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset=utf-8>
+ <title>Game of Trees Changes</title>
+ <meta name="description" content="Game of Trees Changelog">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" href="/openbsd.css">
+ <link rel="canonical" href="https://gameoftrees.org/releases/changes.html">
+</head>
+<body>
+
+<h2>
+<a href="/"><i>Game of Trees</i></a>
+Changes
+</h2>
+<hr>
+
+<p>
+See the
+<a href="https://got.gameoftrees.org/?action=summary&path=got.git">git repository</a>
+history for per-change authorship information.
+</p>
+
+EOF
+
+awk '
+// {
+ sub("^ +", "")
+ sub(" +$", "")
+}
+/^\*/ {
+ if (change != "") {
+ emit()
+ doclose = 1
+ }
+ if (insublist) {
+ insublist = 0
+ print("</ul></li>")
+ }
+ if (doclose == 1) {
+ doclose = 0
+ print("</ul>")
+ }
+ sub(";", "", $3)
+ version = $3
+ date = $4
+ printf("<h3 id=\"%s\"><a href=\"#%s\">GoT %s - %s</a></h3>\n", date, date, version, date)
+ print("<ul>")
+ next
+}
+/^$/ { next }
+/see git repository history for per-change authorship/ { next }
+/^-/ {
+ emit()
+ if (insublist) {
+ insublist = 0
+ print("</ul></li>")
+ }
+ sub("^- *", "", $0)
+ change = $0
+ next
+}
+/^o / {
+ emit()
+ if (!insublist) {
+ insublist = 1
+ print("<li><ul>")
+ }
+ sub("^o +", "", $0)
+ change = $0
+ next
+}
+// { change = change " " $0 }
+END {
+ emit()
+ if (insublist)
+ print("</ul></li>")
+ print("</ul>")
+}
+function san(s) {
+ gsub("&", "\\&", s)
+ gsub("<", "\\<", s)
+ gsub(">", "\\>", s)
+ return s
+}
+function emit() {
+ if (change == "")
+ return
+ print("<li>")
+ print(san(change))
+ print("</li>")
+ change = ""
+}
+' < releases/CHANGES
+
+cat <<EOF
+</body>
+</html>
+EOF
got-www: generate HTML page from CHANGES