From 7f1fef5e238859d2cb29e2213d2fa8c934a0e64e Mon Sep 17 00:00:00 2001 From: Kris Yotam <75515498+krisyotam@users.noreply.github.com> Date: Thu, 14 May 2026 16:25:17 -0500 Subject: [PATCH] convert README.md to README.txt --- README.md | 83 ---------------------------------------------- README.txt | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+), 83 deletions(-) delete mode 100644 README.md create mode 100644 README.txt diff --git a/README.md b/README.md deleted file mode 100644 index d1e4747fb426cb6ce2ecd3ee33e9c20af5b7acb3..0000000000000000000000000000000000000000 --- a/README.md +++ /dev/null @@ -1,83 +0,0 @@ -# spod - -Simple Podcast. A static podcast page generator in the style of [stagit](https://codemadness.org/stagit.html). - -Point it at a directory of podcast folders. It generates plain HTML you can serve with any web server. No JavaScript, no database, no login, no dependencies beyond a C compiler. - -## How it works - -Each subdirectory under your podcast root is treated as one podcast. Inside each podcast directory: - -- Audio and video files (`.mp3`, `.ogg`, `.opus`, `.m4a`, `.flac`, `.wav`, `.mp4`, `.mkv`, `.webm`) -- `README` or `README.md` or `README.txt` (optional, displayed on the readme page; first line is the heading, second line becomes the description on the index) -- `COVER.jpg` or `cover.png` or similar (optional, displayed on the log page) -- `LICENSE` or `COPYING` (optional, displayed on the license page) - -### Example layout - -``` -podcasts/ - my-show/ - COVER.jpg - README.md - LICENSE - 001-first-episode.mp3 - 002-second-episode.mp3 - another-show/ - cover.png - README - intro.ogg - bonus.mp4 -``` - -### Generated output - -For each podcast, spod generates four pages (just like stagit generates log, files, refs): - -- **log.html** -- episode list sorted newest-first with date and size (the default landing page) -- **episodes.html** -- file listing with permissions, filenames, and sizes -- **readme.html** -- the README rendered as preformatted text -- **license.html** -- the LICENSE rendered as preformatted text - -The index page lists all podcasts with their name, description, owner, and last update date. Navigation between pages uses the same `Log | Episodes | README | LICENSE` bar that stagit uses for `Log | Files | Refs`. - -Media files are symlinked into the output directory, not copied. - -## Usage - -``` -$ spod podcasts/ # output to out/ -$ spod podcasts/ /var/www # output to /var/www -``` - -Serve the output with nginx, quark, or `python3 -m http.server`. - -## Build - -``` -$ make -$ sudo make install -``` - -## Configuration - -Copy `config.def.h` to `config.h` and edit before building: - -```c -static char sitetitle[] = "podcasts"; -static char sitedesc[] = "my podcast collection"; -static char siteowner[] = "kris"; -static char favicon[] = ""; -``` - -## Design - -- C99, POSIX.1-2008. No external libraries. -- Single file, around 600 lines. -- Produces a ~22KB static binary. -- Dark mode support via `prefers-color-scheme`. -- Same CSS and HTML structure as stagit. If you know what stagit looks like, you know what spod looks like. - -## License - -MIT diff --git a/README.txt b/README.txt new file mode 100644 index 0000000000000000000000000000000000000000..598a9fc9033a17f21cd0538235da37313103e2c8 --- /dev/null +++ b/README.txt @@ -0,0 +1,97 @@ +spod + + +Simple Podcast. A static podcast page generator in the style of stagit. + +Point it at a directory of podcast folders. It generates plain HTML you +can serve with any web server. No JavaScript, no database, no login, no +dependencies beyond a C compiler. + + +HOW IT WORKS + + Each subdirectory under your podcast root is treated as one podcast. + Inside each podcast directory: + + - Audio and video files (.mp3, .ogg, .opus, .m4a, .flac, .wav, .mp4, + .mkv, .webm) + - README or README.md or README.txt (optional, displayed on the readme + page; first line is the heading, second line becomes the description + on the index) + - COVER.jpg or cover.png or similar (optional, displayed on the log + page) + - LICENSE or COPYING (optional, displayed on the license page) + + + EXAMPLE LAYOUT + + podcasts/ + my-show/ + COVER.jpg + README.md + LICENSE + 001-first-episode.mp3 + 002-second-episode.mp3 + another-show/ + cover.png + README + intro.ogg + bonus.mp4 + + + GENERATED OUTPUT + + For each podcast, spod generates four pages (just like stagit + generates log, files, refs): + + - log.html episode list sorted newest-first with date and size + (the default landing page) + - episodes.html file listing with permissions, filenames, and sizes + - readme.html the README rendered as preformatted text + - license.html the LICENSE rendered as preformatted text + + The index page lists all podcasts with their name, description, + owner, and last update date. Navigation between pages uses the same + Log | Episodes | README | LICENSE bar that stagit uses for + Log | Files | Refs. + + Media files are symlinked into the output directory, not copied. + + +USAGE + + spod podcasts/ output to out/ + spod podcasts/ /var/www output to /var/www + + Serve the output with nginx, quark, or python3 -m http.server. + + +BUILD + + make + sudo make install + + +CONFIGURATION + + Copy config.def.h to config.h and edit before building: + + static char sitetitle[] = "podcasts"; + static char sitedesc[] = "my podcast collection"; + static char siteowner[] = "kris"; + static char favicon[] = ""; + + +DESIGN + + - C99, POSIX.1-2008. No external libraries. + - Single file, around 600 lines. + - Produces a ~22KB static binary. + - Dark mode support via prefers-color-scheme. + - Same CSS and HTML structure as stagit. If you know what stagit looks + like, you know what spod looks like. + + +LICENSE + + MIT