Can now generate a lot of the static content from templates in pages/ WARNING: I kept seeing page _templates_ getting corrupted on rendering, which is no bueno.

This commit is contained in:
Zed A. Shaw 2025-07-04 23:59:25 -04:00
parent 7e48768e36
commit c64874cb51
12 changed files with 516 additions and 608 deletions

View file

@ -11,7 +11,16 @@
</head>
<body data-testid="{{.PageId}}">
<header>
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span>
<blockstart style="background-color: var(--value0)">
<block style="--value: 0; --text: 9" class="horizontal">
<a href="/">🏡</a>
<a href="/live/">Live</a>
<a href="/stream/">Streams</a>
<a href="/game/">Games</a>
<a href="/register/">Register</a>
<a href="/login/">Login</a>
</block>
</blockstart>
</header>
{{embed}}

View file

@ -5,70 +5,31 @@
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>Hello</title>
<script defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script>
<title>ZedShaw.games</title>
</head>
<body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>ZedShaw's Game Thing</title>
</head>
<body>
<header>
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span>
</header>
<blockstart>
<body data-testid="base-page">
<header>
<blockstart style="background-color: var(--value0)">
<block style="--value: 0; --text: 9" class="horizontal">
<a href="/">🏡</a>
<a href="/live/">Live</a>
<a href="/stream/">Streams</a>
<a href="/game/">Games</a>
<a href="/register/">Register</a>
<a href="/login/">Login</a>
</block>
</blockstart>
</header>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
</body>
</html>
<block class="horizontal">
<shape style="--w: 200px; --h: 200px;">Some Image</shape>
<p x-text="Game.description">Description</p>
</block>
</block>
<block>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
</block>
<block style="--value: 7;">
<h2>Current Status</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
</block>
<block>
<h2>Planned Work</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
</block>
<block style="--value: 2; --text: 9">
<h2>Read The Code</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
<button><a href="https://git.learnjsthehardway.com/learn-code-the-hard-way/turings-tarpit">View the Git</a></button>
</block>
</blockstart>
<footer>
<h1>Footer</h1>
</footer>
<blockstart>
</blockstart>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>

View file

@ -5,36 +5,32 @@
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>Hello</title>
<script defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script>
<title>ZedShaw.games</title>
</head>
<body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>ZedShaw's Game Thing</title>
</head>
<body>
<header>
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span>
</header>
<blockstart>
<h1>ERROR</h1>
<p>You have an error.</p>
<body data-testid="error-index-page">
<header>
<blockstart style="background-color: var(--value0)">
<block style="--value: 0; --text: 9" class="horizontal">
<a href="/">🏡</a>
<a href="/live/">Live</a>
<a href="/stream/">Streams</a>
<a href="/game/">Games</a>
<a href="/register/">Register</a>
<a href="/login/">Login</a>
</block>
</blockstart>
</header>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
<blockstart>
<h1>ERROR</h1>
<p>You have an error.</p>
</blockstart>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>

View file

@ -5,71 +5,67 @@
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>Hello</title>
</head>
<body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>ZedShaw's Game Thing</title>
<script defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script>
<script>
let req = new GetJson("/api/game/1/index.json");
</script>
<title>ZedShaw.games</title>
</head>
<body x-init="Game = await req.theData()" x-data="{Game: {}}">
<header>
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span>
</header>
<blockstart>
<shape style="--w: 100%; --h: 300px">Gameplay Demo Video</shape>
<block style="--value: 7">
<h1 x-text="Game.title">Title</h1>
<block class="horizontal">
<shape style="--w: 200px; --h: 200px;">Some Image</shape>
<p x-text="Game.description">Description</p>
</block>
<body data-testid="game-1-turings-tarpit-index-page">
<header>
<blockstart style="background-color: var(--value0)">
<block style="--value: 0; --text: 9" class="horizontal">
<a href="/">🏡</a>
<a href="/live/">Live</a>
<a href="/stream/">Streams</a>
<a href="/game/">Games</a>
<a href="/register/">Register</a>
<a href="/login/">Login</a>
</block>
<block>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
</block>
<block style="--value: 7;">
<h2>Current Status</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
</block>
<block>
<h2>Planned Work</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
</block>
<block style="--value: 2; --text: 9">
<h2>Read The Code</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
<button><a href="https://git.learnjsthehardway.com/learn-code-the-hard-way/turings-tarpit">View the Git</a></button>
</block>
</blockstart>
</header>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
<script>
let req = new GetJson("/api/game/1/index.json");
</script>
<blockstart>
<shape style="--w: 100%; --h: 300px">Gameplay Demo Video</shape>
<block style="--value: 7">
<h1 x-text="Game.title">Title</h1>
<block class="horizontal">
<shape style="--w: 200px; --h: 200px;">Some Image</shape>
<p x-text="Game.description">Description</p>
</block>
</block>
<block>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
</block>
<block style="--value: 7;">
<h2>Current Status</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
</block>
<block>
<h2>Planned Work</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
</block>
<block style="--value: 2; --text: 9">
<h2>Read The Code</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
<button><a href="https://git.learnjsthehardway.com/learn-code-the-hard-way/turings-tarpit">View the Git</a></button>
</block>
</blockstart>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>

View file

@ -5,86 +5,58 @@
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>Hello</title>
</head>
<body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>ZedShaw's Game Thing</title>
<script defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script>
<script>
let Games = new GetJson("/api/game/index.json");
</script>
<title>ZedShaw.games</title>
</head>
<body>
<header>
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span>
</header>
<blockstart>
<block style="--w: 100%; --value: 7">
<h1>Zed's Trash Ass Games</h1>
<p>More fun than a barrel full of monkeys with syphilus.
</p>
<body data-testid="game-index-page">
<header>
<blockstart style="background-color: var(--value0)">
<block style="--value: 0; --text: 9" class="horizontal">
<a href="/">🏡</a>
<a href="/live/">Live</a>
<a href="/stream/">Streams</a>
<a href="/game/">Games</a>
<a href="/register/">Register</a>
<a href="/login/">Login</a>
</block>
<hr/>
<grid x-data="Games" style="--cols: 2">
<template x-for="item in theData">
<shape style="--h: 200px"><a x-text="item.title" x-bind:href="item.url"></a></shape>
</template>
</grid>
<block style="--value: 7">
<grid style="--cols: 2">
<shape>Left Image</shape>
<div>
<h2>Checkout my Git</h2>
<p>I put al of my code online for people to read and study. If you're curious about the code behind my games or anything else I make then take a look at my git. It's like a buffet of half-finished genius.</p>
<a href="https://git.learnjsthehardway.com"><button style="--value: 2; --text: 9">View my Git</button></a>
</div>
</grid>
</block>
</blockstart>
</header>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
x DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
</block>
<block>
<h2>Planned Work</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
</block>
<block style="--value: 2; --text: 9">
<h2>Read The Code</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
<button><a href="https://git.learnjsthehardway.com/learn-code-the-hard-way/turings-tarpit">View the Git</a></button>
</block>
</blockstart>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
<script>
let Games = new GetJson("/api/game/index.json");
</script>
<blockstart>
<block style="--w: 100%; --value: 7">
<h1>Zed's Trash Ass Games</h1>
<p>More fun than a barrel full of monkeys with syphilus.
</p>
</block>
<hr/>
<grid x-data="Games" style="--cols: 2">
<template x-for="item in theData">
<shape style="--h: 200px"><a x-text="item.title" x-bind:href="item.url"></a></shape>
</template>
</grid>
<block>
<h2>Planned Work</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
</block>
<block style="--value: 2; --text: 9">
<h2>Read The Code</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
<button><a href="https://git.learnjsthehardway.com/learn-code-the-hard-way/turings-tarpit">View the Git</a></button>
</block>
</blockstart>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>

View file

@ -5,97 +5,94 @@
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>Hello</title>
<script defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script>
<title>ZedShaw.games</title>
</head>
<body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>ZedShaw's Game Thing</title>
</head>
<body data-testid="home-page">
<header>
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span>
</header>
<blockstart>
<h1>Zed's Game Dev Website</h1>
<shape style="--w: 100%; --h: 300px">
<button><a id="streams" href="/stream/">View Past Streams</a></button>
<button><a href="/live/">Watch Today's Livestream</a></button>
</shape>
<block data-testid="clickblock">
<p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby.
</p>
<body data-testid="index-page">
<header>
<blockstart style="background-color: var(--value0)">
<block style="--value: 0; --text: 9" class="horizontal">
<a href="/">🏡</a>
<a href="/live/">Live</a>
<a href="/stream/">Streams</a>
<a href="/game/">Games</a>
<a href="/register/">Register</a>
<a href="/login/">Login</a>
</block>
<block style="--value: 7; --border: 1px;" class="horizontal">
<grid style="--cols: 2">
<shape>Left Image</shape>
<div>
<h3>I stream on Twitch.</h3>
<p>I stream every day at 10AM/10PM EST time. 60% of the time it's a chill laid back stream with only programming and a bit of talking about programming. 30% of the time it's art for games I'm making. 10% of the time it's games I'm playing.</p>
<a href="https://twitch.tv/zedashaw"><button style="--value: 2; --text: 9">Watch me on Twitch</button></a>
</div>
</grid>
</block>
<block>
<p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby.
</p>
</block>
<block style="--value: 7">
<grid style="--cols: 2">
<div>
<h2>Zed's Trash Ass Games</h2>
<p>Are you a fan of retro styled half-assed but fun games? Me too, so here's my games I've made with that theme. Think "it's the late 80s and nobody knows how to make a game" when you play these and you'll enjoy every minute of it.</p>
<a href="/game/"><button style="--value: 2; --text: 9">Play my Games</button></a>
</div>
<shape>Right Image</shape>
</grid>
</block>
<block>
<p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby.
</p>
</block>
<block style="--value: 7">
<grid style="--cols: 2">
<shape>Left Image</shape>
<div>
<h2>Checkout my Git</h2>
<p>I put al of my code online for people to read and study. If you're curious about the code behind my games or anything else I make then take a look at my git. It's like a buffet of half-finished genius.</p>
<a href="https://git.learnjsthehardway.com"><button style="--value: 2; --text: 9">View my Git</button></a>
</div>
</grid>
</block>
<block>
<p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby.
</p>
</block>
</blockstart>
</header>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
<blockstart>
<h1>Zed's Game Dev Website</h1>
<shape style="--w: 100%; --h: 300px">
<button><a id="streams" href="/stream/">View Past Streams</a></button>
<button><a href="/live/">Watch Today's Livestream</a></button>
</shape>
<block data-testid="clickblock">
<p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby.
</p>
</block>
<block style="--value: 7; --border: 1px;" class="horizontal">
<grid style="--cols: 2">
<shape>Left Image</shape>
<div>
<h3>I stream on Twitch.</h3>
<p>I stream every day at 10AM/10PM EST time. 60% of the time it's a chill laid back stream with only programming and a bit of talking about programming. 30% of the time it's art for games I'm making. 10% of the time it's games I'm playing.</p>
<a href="https://twitch.tv/zedashaw"><button style="--value: 2; --text: 9">Watch me on Twitch</button></a>
</div>
</grid>
</block>
<block>
<p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby.
</p>
</block>
<block style="--value: 7">
<grid style="--cols: 2">
<div>
<h2>Zed's Trash Ass Games</h2>
<p>Are you a fan of retro styled half-assed but fun games? Me too, so here's my games I've made with that theme. Think "it's the late 80s and nobody knows how to make a game" when you play these and you'll enjoy every minute of it.</p>
<a href="/game/"><button style="--value: 2; --text: 9">Play my Games</button></a>
</div>
<shape>Right Image</shape>
</grid>
</block>
<block>
<p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby.
</p>
</block>
<block style="--value: 7">
<grid style="--cols: 2">
<shape>Left Image</shape>
<div>
<h2>Checkout my Git</h2>
<p>I put al of my code online for people to read and study. If you're curious about the code behind my games or anything else I make then take a look at my git. It's like a buffet of half-finished genius.</p>
<a href="https://git.learnjsthehardway.com"><button style="--value: 2; --text: 9">View my Git</button></a>
</div>
</grid>
</block>
<block>
<p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby.
</p>
</block>
</blockstart>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>

View file

@ -5,67 +5,65 @@
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>Hello</title>
</head>
<body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>ZedShaw's Game Thing</title>
<script defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script>
<script>
let req = new GetJson("/api/stream/1");
let link_req = new GetJson("/api/stream/1/links");
</script>
<title>ZedShaw.games</title>
</head>
<body x-init="Stream = await req.theData()" x-data="{Stream: {}}">
<header>
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span>
</header>
<blockstart>
<shape style="--w: 100%; --h: 350px">
Stream Viewer
</shape>
<block>
<h2>Links Found in Chat</h2>
<ul x-init="links = await link_req.theData()" x-data="{links: {}}">
<template x-for="item in links">
<li><a x-text="item.description" x-bind:href="item.url"></a></li>
</template>
</ul>
<body data-testid="live-index-page">
<header>
<blockstart style="background-color: var(--value0)">
<block style="--value: 0; --text: 9" class="horizontal">
<a href="/">🏡</a>
<a href="/live/">Live</a>
<a href="/stream/">Streams</a>
<a href="/game/">Games</a>
<a href="/register/">Register</a>
<a href="/login/">Login</a>
</block>
<form action="/api/link" method="POST">
<card>
<top>Submit a Link</top>
<middle>
<input name="stream_id" type="hidden" value="1">
<input name="url" type="text" placeholder="Link Url">
<input name="description" type="text" placeholder="Description">
</middle>
</card>
<buttons>
<button type="submit">Send It</button>
</buttons>
</form>
</blockstart>
</header>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
<script>
let req = new GetJson("/api/stream/1");
let link_req = new GetJson("/api/stream/1/links");
</script>
<div x-init="Stream = await req.theData()" x-data="{Stream: {}}">
<blockstart>
<shape style="--w: 100%; --h: 350px">
Stream Viewer
</shape>
<block>
<h2>Links Found in Chat</h2>
<ul x-init="links = await link_req.theData()" x-data="{links: {}}">
<template x-for="item in links">
<li><a x-text="item.description" x-bind:href="item.url"></a></li>
</template>
</ul>
</block>
<form action="/api/link" method="POST">
<card>
<top>Submit a Link</top>
<middle>
<input name="stream_id" type="hidden" value="1">
<input name="url" type="text" placeholder="Link Url">
<input name="description" type="text" placeholder="Description">
</middle>
</card>
<buttons>
<button type="submit">Send It</button>
</buttons>
</form>
</blockstart>
</div>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>

View file

@ -5,54 +5,51 @@
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>Hello</title>
<script defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script>
<title>ZedShaw.games</title>
</head>
<body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>ZedShaw's Game Thing</title>
</head>
<body data-testid="login-page">
<header>
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span>
</header>
<blockstart style="min-height: 90vw">
<h1>Login</h1>
<block class="center-self" style="--w: 500px; --h: 500px;">
<form action="/api/login" method="POST">
<card>
<top><h2 style="color: white">Login</h2></top>
<middle>
<label for="username">Username</label>
<input id="username" name="username" placeholder="Username" type="text">
<label for="password">Password</label>
<input id="password" name="password" placeholder="Password" type="password">
</middle>
<bottom>
<button-group>
<button type="button">Cancel</button>
<button id="login-submit" type="submit">Login</button>
</button-group>
</bottom>
</card>
</form>
<div class="center"><a href="/register/">Need an account? Click to Register.</a></div>
<body data-testid="login-index-page">
<header>
<blockstart style="background-color: var(--value0)">
<block style="--value: 0; --text: 9" class="horizontal">
<a href="/">🏡</a>
<a href="/live/">Live</a>
<a href="/stream/">Streams</a>
<a href="/game/">Games</a>
<a href="/register/">Register</a>
<a href="/login/">Login</a>
</block>
</blockstart>
</header>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
<blockstart style="min-height: 90vw">
<h1>Login</h1>
<block class="center-self" style="--w: 500px; --h: 500px;">
<form action="/api/login" method="POST">
<card>
<top><h2 style="color: white">Login</h2></top>
<middle>
<label for="username">Username</label>
<input id="username" name="username" placeholder="Username" type="text">
<label for="password">Password</label>
<input id="password" name="password" placeholder="Password" type="password">
</middle>
<bottom>
<button-group>
<button type="button">Cancel</button>
<button id="login-submit" type="submit">Login</button>
</button-group>
</bottom>
</card>
</form>
<div class="center"><a href="/register/">Need an account? Click to Register.</a></div>
</block>
</blockstart>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>

View file

@ -5,56 +5,53 @@
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>Hello</title>
<script defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script>
<title>ZedShaw.games</title>
</head>
<body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>ZedShaw's Game Thing</title>
</head>
<body data-testid="register-page">
<header>
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span>
</header>
<blockstart style="min-height: 90vw">
<h1>Login</h1>
<block class="center-self" style="--w: 500px; --h: 500px;">
<form action="/api/register" method="POST">
<card>
<top><h2 style="color: white">Register</h2></top>
<middle>
<label for="username">Username</label>
<input id="username" name="username" placeholder="Username" type="text">
<label for="email">Email</label>
<input id="email" name="email" placeholder="Email" type="text">
<label for="password">Password</label>
<input id="password" name="password" placeholder="Password" type="password">
</middle>
<bottom>
<button-group>
<button type="button">Cancel</button>
<button id="register-submit" type="submit">Register</button>
</button-group>
</bottom>
</card>
</form>
<div class="center"><a href="/login/">Have an account? Click to Login.</a></div>
<body data-testid="register-index-page">
<header>
<blockstart style="background-color: var(--value0)">
<block style="--value: 0; --text: 9" class="horizontal">
<a href="/">🏡</a>
<a href="/live/">Live</a>
<a href="/stream/">Streams</a>
<a href="/game/">Games</a>
<a href="/register/">Register</a>
<a href="/login/">Login</a>
</block>
</blockstart>
</header>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
<blockstart style="min-height: 90vw">
<h1>Login</h1>
<block class="center-self" style="--w: 500px; --h: 500px;">
<form action="/api/register" method="POST">
<card>
<top><h2 style="color: white">Register</h2></top>
<middle>
<label for="username">Username</label>
<input id="username" name="username" placeholder="Username" type="text">
<label for="email">Email</label>
<input id="email" name="email" placeholder="Email" type="text">
<label for="password">Password</label>
<input id="password" name="password" placeholder="Password" type="password">
</middle>
<bottom>
<button-group>
<button type="button">Cancel</button>
<button id="register-submit" type="submit">Register</button>
</button-group>
</bottom>
</card>
</form>
<div class="center"><a href="/login/">Have an account? Click to Login.</a></div>
</block>
</blockstart>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>

View file

@ -5,91 +5,89 @@
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>Hello</title>
</head>
<body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>ZedShaw's Game Thing</title>
<script defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script>
<script>
let req = new GetJson("/api/stream/1");
let link_req = new GetJson("/api/stream/1/links");
</script>
<title>ZedShaw.games</title>
</head>
<body x-init="Stream = await req.theData()" x-data="{Stream: {}}">
<header>
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span>
</header>
<blockstart>
<block style="--value: 7">
<h1 x-text="Stream.title"></h1>
<div>
<p x-text="Stream.description"></p>
</div>
<body data-testid="stream-1-index-page">
<header>
<blockstart style="background-color: var(--value0)">
<block style="--value: 0; --text: 9" class="horizontal">
<a href="/">🏡</a>
<a href="/live/">Live</a>
<a href="/stream/">Streams</a>
<a href="/game/">Games</a>
<a href="/register/">Register</a>
<a href="/login/">Login</a>
</block>
<block>
<p>Qui animated corpse, cricket bat max brucks terribilem incessu zomby. The voodoo sacerdos flesh eater, suscitat mortuos comedere carnem virus. Zonbi tattered for solum oculi eorum defunctis go lum cerebro. Nescio brains an Undead zombies. Sicut malus putrid voodoo horror.</p>
</block>
<block>
<h2>Links Posted</h2>
<ul x-init="links = await link_req.theData()" x-data="{links: {}}">
<template x-for="item in links">
<li><a x-text="item.description" x-bind:href="item.url"></a></li>
</template>
</ul>
</block>
<block style="--value: 7; --border: 1px;" class="horizontal">
<grid style="--cols: 2">
<shape>Left Image</shape>
<div>
<h3>I stream on Twitch.</h3>
<p>I stream every day at 10AM/10PM EST time. 60% of the time it's a chill laid back stream with only programming and a bit of talking about programming. 30% of the time it's art for games I'm making. 10% of the time it's games I'm playing.</p>
<a href="https://twitch.tv/zedashaw"><button style="--value: 2; --text: 9">Watch me on Twitch</button></a>
</div>
</grid>
</block>
</blockstart>
</header>
<footer>
<h1>Footer</h1>
</footer>
</body>
<script>
let req = new GetJson("/api/stream/1");
let link_req = new GetJson("/api/stream/1/links");
</script>
<div x-init="Stream = await req.theData()" x-data="{Stream: {}}">
<blockstart>
<block style="--value: 7">
<h1 x-text="Stream.title"></h1>
<div>
<p x-text="Stream.description"></p>
</div>
</block>
<block>
<p>Qui animated corpse, cricket bat max brucks terribilem incessu zomby. The voodoo sacerdos flesh eater, suscitat mortuos comedere carnem virus. Zonbi tattered for solum oculi eorum defunctis go lum cerebro. Nescio brains an Undead zombies. Sicut malus putrid voodoo horror.</p>
</block>
<block>
<h2>Links Posted</h2>
<ul x-init="links = await link_req.theData()" x-data="{links: {}}">
<template x-for="item in links">
<li><a x-text="item.description" x-bind:href="item.url"></a></li>
</template>
</ul>
</block>
<block style="--value: 7; --border: 1px;" class="horizontal">
<grid style="--cols: 2">
<shape>Left Image</shape>
<div>
<h3>I stream on Twitch.</h3>
<p>I stream every day at 10AM/10PM EST time. 60% of the time it's a chill laid back stream with only programming and a bit of talking about programming. 30% of the time it's art for games I'm making. 10% of the time it's games I'm playing.</p>
<a href="https://twitch.tv/zedashaw"><button style="--value: 2; --text: 9">Watch me on Twitch</button></a>
</div>
</grid>
</block>
</blockstart>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
i poutine jianbing chambray.</p>
</block>
</block>
<block style="--value: 2; --text: 9">
<h2>Read The Code</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
<button><a href="https://git.learnjsthehardway.com/learn-code-the-hard-way/turings-tarpit">View the Git</a></button>
</block>
<block style="--value: 2; --text: 9">
<h2>Read The Code</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
<button><a href="https://git.learnjsthehardway.com/learn-code-the-hard-way/turings-tarpit">View the Git</a></button>
</block>
</blockstart>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
</blockstart>
</div>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>

View file

@ -5,78 +5,51 @@
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>Hello</title>
</head>
<body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.css">
<title>ZedShaw's Game Thing</title>
<script defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script>
<script>
let Streams = new GetJson("/api/stream/");
</script>
<title>ZedShaw.games</title>
</head>
<body>
<header>
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span>
</header>
<blockstart>
<block style="--value: 7">
<h1 id="streams-title">Past Streams</h1>
<p>This is where you can checkout information we dropped in a past stream. Did I post a link and you need to remember it? Did someone in chat mention something? Here's where you find it.</p>
</block>
<block x-data="Streams">
<template x-for="item in theData">
<stream class="horizontal">
<shape style="--w: 100px; --h: 100px">Stream Thumbnail</shape>
<info>
<date x-text="item.date"></date>
<p x-text="item.description"></p>
<a style="text-align: right" x-bind:href="'/stream/' + item.id + '/'">View This Stream</a>
</info>
</stream>
</template>
</block>
<body data-testid="stream-index-page">
<header>
<blockstart style="background-color: var(--value0)">
<block style="--value: 0; --text: 9" class="horizontal">
<a href="/">🏡</a>
<a href="/live/">Live</a>
<a href="/stream/">Streams</a>
<a href="/game/">Games</a>
<a href="/register/">Register</a>
<a href="/login/">Login</a>
</block>
</blockstart>
</header>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
ral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
</block>
<block>
<h2>Planned Work</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
</block>
<block style="--value: 2; --text: 9">
<h2>Read The Code</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
<button><a href="https://git.learnjsthehardway.com/learn-code-the-hard-way/turings-tarpit">View the Git</a></button>
</block>
</blockstart>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
<script>
let Streams = new GetJson("/api/stream/");
</script>
<blockstart>
<block style="--value: 7">
<h1 id="streams-title">Past Streams</h1>
<p>This is where you can checkout information we dropped in a past stream. Did I post a link and you need to remember it? Did someone in chat mention something? Here's where you find it.</p>
</block>
<block x-data="Streams">
<template x-for="item in theData">
<stream class="horizontal">
<shape style="--w: 100px; --h: 100px">Stream Thumbnail</shape>
<info>
<date x-text="item.date"></date>
<p x-text="item.description"></p>
<a style="text-align: right" x-bind:href="'/stream/' + item.id + '/'">View This Stream</a>
</info>
</stream>
</template>
</block>
</blockstart>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>

View file

@ -2,10 +2,24 @@ package main
import (
"log"
"flag"
"zedshaw.games/webapp/zed"
)
func main() {
log.Println("Generating site from pages to public.")
zed.RenderPages("./pages", "./public", "layouts/main")
type config struct {
source string
target string
layouts string
}
func main() {
var cfg config
flag.StringVar(&cfg.source, "source", "./pages", "The templates to load and process.")
flag.StringVar(&cfg.target, "target", "./public", "The target to write the resulting content.")
flag.StringVar(&cfg.layouts, "layouts", "layouts/main", "The default layout to use, must be a template in <source>")
log.Println("Generating site from pages to public.")
zed.RenderPages(cfg.source, cfg.target, cfg.layouts)
}