From a846354700471a48b3bc885b343928460059d9d4 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 16 Apr 2026 09:00:39 +0300 Subject: v0.3.0: add DOS theme with VT323 webfont Amp-Thread-ID: https://ampcode.com/threads/T-019d94cc-99a9-74af-8f3d-9521cd73324f Co-authored-by: Amp --- internal/generator/theme_dos.go | 242 +++++++++++++++++++++++++++++++++++++ internal/generator/theme_sounds.go | 11 ++ internal/generator/themes.go | 1 + internal/version/version.go | 2 +- 4 files changed, 255 insertions(+), 1 deletion(-) create mode 100644 internal/generator/theme_dos.go diff --git a/internal/generator/theme_dos.go b/internal/generator/theme_dos.go new file mode 100644 index 0000000..521f6ed --- /dev/null +++ b/internal/generator/theme_dos.go @@ -0,0 +1,242 @@ +package generator + +// dosTemplate is a classic DOS / IBM PC text-mode theme — blue background +// (#0000aa), white/yellow text, VT323 webfont for authentic VGA bitmap look, +// double-line box-drawing borders, and a BIOS-style layout. +// WebGL scene: falling green "rain" characters (BASIC-era) on the blue BG. +const dosTemplate = ` + + + + + SNONUX.FOO - DOS + + + + + + + + {{template "splashGate"}} + + + +
+
+ + +
+ {{template "navhints" .}} +
+ {{range $i, $post := .Posts}} +
+
+
@SNONUX
+
{{$post.FormattedTime}}
+
+
{{$post.ContentHTML}}
+
+ {{end}} +
+ {{if or .PrevPage .NextPage}} + + {{end}} +
+ {{template "navmodal" .}} + + {{template "navscript" .}} + +` diff --git a/internal/generator/theme_sounds.go b/internal/generator/theme_sounds.go index e41e7a5..4876ab1 100644 --- a/internal/generator/theme_sounds.go +++ b/internal/generator/theme_sounds.go @@ -47,6 +47,7 @@ var themeSoundPresets = map[string]themeSounds{ "aurora": soundsAurora(), "matrix": soundsMatrix(), "ocean": soundsOcean(), + "dos": soundsDos(), "retro": soundsRetro(), "cosmos": soundsCosmos(), } @@ -141,6 +142,16 @@ func soundsOcean() themeSounds { return s } +func soundsDos() themeSounds { + var s themeSounds + s.Splash.Freqs = []float64{800, 1000} + s.Splash.Spacing, s.Splash.Gain, s.Splash.Wave = 0.08, 0.12, "square" + s.Nav.Freq, s.Nav.Wave, s.Nav.Dur, s.Nav.Gain = 1000, "square", 0.03, 0.1 + s.Open.Wave, s.Open.Start, s.Open.End, s.Open.Dur, s.Open.Gain = "square", 400, 800, 0.1, 0.1 + s.Close.Wave, s.Close.Start, s.Close.End, s.Close.Dur, s.Close.Gain = "square", 800, 200, 0.1, 0.09 + return s +} + func soundsRetro() themeSounds { var s themeSounds s.Splash.Freqs = []float64{1046.5, 1318.5} diff --git a/internal/generator/themes.go b/internal/generator/themes.go index 4d35db6..47afaef 100644 --- a/internal/generator/themes.go +++ b/internal/generator/themes.go @@ -14,6 +14,7 @@ var themeRegistry = map[string]string{ "aurora": auroraTemplate, "matrix": matrixTemplate, "ocean": oceanTemplate, + "dos": dosTemplate, "retro": retroTemplate, "cosmos": cosmosTemplate, // replaced "glass" — ringed planet, nebula, asteroids } diff --git a/internal/version/version.go b/internal/version/version.go index 4e2512d..742745d 100644 --- a/internal/version/version.go +++ b/internal/version/version.go @@ -2,4 +2,4 @@ package version // Version is the application version (semantic versioning). -const Version = "0.2.0" +const Version = "0.3.0" -- cgit v1.2.3