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.

main
Zed A. Shaw 2 weeks ago
parent 7e48768e36
commit c64874cb51
  1. 11
      pages/layouts/main.html
  2. 79
      public/base.html
  3. 50
      public/error/index.html
  4. 96
      public/game/1/turings-tarpit/index.html
  5. 124
      public/game/index.html
  6. 175
      public/index.html
  7. 100
      public/live/index.html
  8. 85
      public/login/index.html
  9. 89
      public/register/index.html
  10. 128
      public/stream/1/index.html
  11. 109
      public/stream/index.html
  12. 16
      tools/cmd/sitebuild/main.go

@ -11,7 +11,16 @@
</head> </head>
<body data-testid="{{.PageId}}"> <body data-testid="{{.PageId}}">
<header> <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> </header>
{{embed}} {{embed}}

@ -5,70 +5,31 @@
<link rel="stylesheet" href="/global.css"> <link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css"> <link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.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> </head>
<body data-testid="base-page">
<body> <header>
<!DOCTYPE html> <blockstart style="background-color: var(--value0)">
<html lang="en"> <block style="--value: 0; --text: 9" class="horizontal">
<head> <a href="/">🏡</a>
<meta charset="utf-8" /> <a href="/live/">Live</a>
<link rel="stylesheet" href="/global.css"> <a href="/stream/">Streams</a>
<link rel="stylesheet" href="/color.css"> <a href="/game/">Games</a>
<link rel="stylesheet" href="/blockstart.css"> <a href="/register/">Register</a>
<title>ZedShaw's Game Thing</title> <a href="/login/">Login</a>
</head>
<body>
<header>
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span>
</header>
<blockstart>
</blockstart>
<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>
</blockstart>
</header>
<block style="--value: 7;"> <blockstart>
<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> </blockstart>
<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> <footer>
<h1>Footer</h1> <h1>Footer</h1>
</footer> </footer>
</body> </body>
</html> </html>

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

@ -5,71 +5,67 @@
<link rel="stylesheet" href="/global.css"> <link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css"> <link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.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 defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script> <script src="/js/code.js"></script>
<script> <title>ZedShaw.games</title>
let req = new GetJson("/api/game/1/index.json");
</script>
</head> </head>
<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>
</blockstart>
</header>
<body x-init="Game = await req.theData()" x-data="{Game: {}}"> <script>
<header> let req = new GetJson("/api/game/1/index.json");
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span> </script>
</header>
<blockstart> <blockstart>
<shape style="--w: 100%; --h: 300px">Gameplay Demo Video</shape> <shape style="--w: 100%; --h: 300px">Gameplay Demo Video</shape>
<block style="--value: 7"> <block style="--value: 7">
<h1 x-text="Game.title">Title</h1> <h1 x-text="Game.title">Title</h1>
<block class="horizontal"> <block class="horizontal">
<shape style="--w: 200px; --h: 200px;">Some Image</shape> <shape style="--w: 200px; --h: 200px;">Some Image</shape>
<p x-text="Game.description">Description</p> <p x-text="Game.description">Description</p>
</block> </block>
</block> </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> <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>
<block style="--value: 7;"> <block style="--value: 7;">
<h2>Current Status</h2> <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> <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>
<block> <block>
<h2>Planned Work</h2> <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> <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>
<block style="--value: 2; --text: 9"> <block style="--value: 2; --text: 9">
<h2>Read The Code</h2> <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> <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> <button><a href="https://git.learnjsthehardway.com/learn-code-the-hard-way/turings-tarpit">View the Git</a></button>
</block> </block>
</blockstart> </blockstart>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
<footer>
<h1>Footer</h1>
</footer>
</body> </body>
</html> </html>

@ -5,86 +5,58 @@
<link rel="stylesheet" href="/global.css"> <link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css"> <link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.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 defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script> <script src="/js/code.js"></script>
<script> <title>ZedShaw.games</title>
let Games = new GetJson("/api/game/index.json");
</script>
</head> </head>
<body data-testid="game-index-page">
<body> <header>
<header> <blockstart style="background-color: var(--value0)">
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span> <block style="--value: 0; --text: 9" class="horizontal">
</header> <a href="/">🏡</a>
<a href="/live/">Live</a>
<blockstart> <a href="/stream/">Streams</a>
<block style="--w: 100%; --value: 7"> <a href="/game/">Games</a>
<h1>Zed's Trash Ass Games</h1> <a href="/register/">Register</a>
<a href="/login/">Login</a>
<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 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>
</blockstart> </blockstart>
</header>
<footer>
<h1>Footer</h1> <script>
</footer> let Games = new GetJson("/api/game/index.json");
</body> </script>
</html> <blockstart>
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 style="--w: 100%; --value: 7">
</block> <h1>Zed's Trash Ass Games</h1>
<block> <p>More fun than a barrel full of monkeys with syphilus.
<h2>Planned Work</h2> </p>
<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>
<hr/>
<block style="--value: 2; --text: 9"> <grid x-data="Games" style="--cols: 2">
<h2>Read The Code</h2> <template x-for="item in theData">
<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> <shape style="--h: 200px"><a x-text="item.title" x-bind:href="item.url"></a></shape>
<button><a href="https://git.learnjsthehardway.com/learn-code-the-hard-way/turings-tarpit">View the Git</a></button> </template>
</block> </grid>
</blockstart> <block>
<h2>Planned Work</h2>
<footer> <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>
<h1>Footer</h1> </block>
</footer>
</body> <block style="--value: 2; --text: 9">
</html> <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> </body>
</html> </html>

@ -5,97 +5,94 @@
<link rel="stylesheet" href="/global.css"> <link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css"> <link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.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> </head>
<body data-testid="index-page">
<body> <header>
<!DOCTYPE html> <blockstart style="background-color: var(--value0)">
<html lang="en"> <block style="--value: 0; --text: 9" class="horizontal">
<head> <a href="/">🏡</a>
<meta charset="utf-8" /> <a href="/live/">Live</a>
<link rel="stylesheet" href="/global.css"> <a href="/stream/">Streams</a>
<link rel="stylesheet" href="/color.css"> <a href="/game/">Games</a>
<link rel="stylesheet" href="/blockstart.css"> <a href="/register/">Register</a>
<title>ZedShaw's Game Thing</title> <a href="/login/">Login</a>
</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>
</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>
<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> </blockstart>
</header>
<footer>
<h1>Footer</h1> <blockstart>
</footer> <h1>Zed's Game Dev Website</h1>
</body>
</html> <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> </body>
</html> </html>

@ -5,67 +5,65 @@
<link rel="stylesheet" href="/global.css"> <link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css"> <link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.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 defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script> <script src="/js/code.js"></script>
<script> <title>ZedShaw.games</title>
let req = new GetJson("/api/stream/1");
let link_req = new GetJson("/api/stream/1/links");
</script>
</head> </head>
<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>
</blockstart>
</header>
<body x-init="Stream = await req.theData()" x-data="{Stream: {}}"> <script>
<header> let req = new GetJson("/api/stream/1");
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span> let link_req = new GetJson("/api/stream/1/links");
</header> </script>
<blockstart> <div x-init="Stream = await req.theData()" x-data="{Stream: {}}">
<blockstart>
<shape style="--w: 100%; --h: 350px"> <shape style="--w: 100%; --h: 350px">
Stream Viewer Stream Viewer
</shape> </shape>
<block> <block>
<h2>Links Found in Chat</h2> <h2>Links Found in Chat</h2>
<ul x-init="links = await link_req.theData()" x-data="{links: {}}"> <ul x-init="links = await link_req.theData()" x-data="{links: {}}">
<template x-for="item in links"> <template x-for="item in links">
<li><a x-text="item.description" x-bind:href="item.url"></a></li> <li><a x-text="item.description" x-bind:href="item.url"></a></li>
</template> </template>
</ul> </ul>
</block> </block>
<form action="/api/link" method="POST"> <form action="/api/link" method="POST">
<card> <card>
<top>Submit a Link</top> <top>Submit a Link</top>
<middle> <middle>
<input name="stream_id" type="hidden" value="1"> <input name="stream_id" type="hidden" value="1">
<input name="url" type="text" placeholder="Link Url"> <input name="url" type="text" placeholder="Link Url">
<input name="description" type="text" placeholder="Description"> <input name="description" type="text" placeholder="Description">
</middle> </middle>
</card> </card>
<buttons> <buttons>
<button type="submit">Send It</button> <button type="submit">Send It</button>
</buttons> </buttons>
</form> </form>
</blockstart> </blockstart>
</div>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
<footer>
<h1>Footer</h1>
</footer>
</body> </body>
</html> </html>

@ -5,54 +5,51 @@
<link rel="stylesheet" href="/global.css"> <link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css"> <link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.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> </head>
<body data-testid="login-index-page">
<body> <header>
<!DOCTYPE html> <blockstart style="background-color: var(--value0)">
<html lang="en"> <block style="--value: 0; --text: 9" class="horizontal">
<head> <a href="/">🏡</a>
<meta charset="utf-8" /> <a href="/live/">Live</a>
<link rel="stylesheet" href="/global.css"> <a href="/stream/">Streams</a>
<link rel="stylesheet" href="/color.css"> <a href="/game/">Games</a>
<link rel="stylesheet" href="/blockstart.css"> <a href="/register/">Register</a>
<title>ZedShaw's Game Thing</title> <a href="/login/">Login</a>
</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>
</block> </block>
</blockstart> </blockstart>
</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>
</block>
</blockstart>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
<footer>
<h1>Footer</h1>
</footer>
</body> </body>
</html> </html>

@ -5,56 +5,53 @@
<link rel="stylesheet" href="/global.css"> <link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css"> <link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.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> </head>
<body data-testid="register-index-page">
<body> <header>
<!DOCTYPE html> <blockstart style="background-color: var(--value0)">
<html lang="en"> <block style="--value: 0; --text: 9" class="horizontal">
<head> <a href="/">🏡</a>
<meta charset="utf-8" /> <a href="/live/">Live</a>
<link rel="stylesheet" href="/global.css"> <a href="/stream/">Streams</a>
<link rel="stylesheet" href="/color.css"> <a href="/game/">Games</a>
<link rel="stylesheet" href="/blockstart.css"> <a href="/register/">Register</a>
<title>ZedShaw's Game Thing</title> <a href="/login/">Login</a>
</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>
</block> </block>
</blockstart> </blockstart>
</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>
</block>
</blockstart>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
<footer>
<h1>Footer</h1>
</footer>
</body> </body>
</html> </html>

@ -5,91 +5,89 @@
<link rel="stylesheet" href="/global.css"> <link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css"> <link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.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 defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script> <script src="/js/code.js"></script>
<script> <title>ZedShaw.games</title>
let req = new GetJson("/api/stream/1");
let link_req = new GetJson("/api/stream/1/links");
</script>
</head> </head>
<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>
</blockstart>
</header>
<body x-init="Stream = await req.theData()" x-data="{Stream: {}}"> <script>
<header> let req = new GetJson("/api/stream/1");
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span> let link_req = new GetJson("/api/stream/1/links");
</header> </script>
<blockstart> <div x-init="Stream = await req.theData()" x-data="{Stream: {}}">
<blockstart>
<block style="--value: 7"> <block style="--value: 7">
<h1 x-text="Stream.title"></h1> <h1 x-text="Stream.title"></h1>
<div> <div>
<p x-text="Stream.description"></p> <p x-text="Stream.description"></p>
</div> </div>
</block> </block>
<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> <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>
<block> <block>
<h2>Links Posted</h2> <h2>Links Posted</h2>
<ul x-init="links = await link_req.theData()" x-data="{links: {}}"> <ul x-init="links = await link_req.theData()" x-data="{links: {}}">
<template x-for="item in links"> <template x-for="item in links">
<li><a x-text="item.description" x-bind:href="item.url"></a></li> <li><a x-text="item.description" x-bind:href="item.url"></a></li>
</template> </template>
</ul> </ul>
</block> </block>
<block style="--value: 7; --border: 1px;" class="horizontal"> <block style="--value: 7; --border: 1px;" class="horizontal">
<grid style="--cols: 2"> <grid style="--cols: 2">
<shape>Left Image</shape> <shape>Left Image</shape>
<div> <div>
<h3>I stream on Twitch.</h3> <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> <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> <a href="https://twitch.tv/zedashaw"><button style="--value: 2; --text: 9">Watch me on Twitch</button></a>
</div> </div>
</grid> </grid>
</block> </block>
</blockstart> </blockstart>
<footer> <footer>
<h1>Footer</h1> <h1>Footer</h1>
</footer> </footer>
</body> </body>
</html> </html>
i poutine jianbing chambray.</p> i poutine jianbing chambray.</p>
</block> </block>
<block style="--value: 2; --text: 9"> <block style="--value: 2; --text: 9">
<h2>Read The Code</h2> <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> <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> <button><a href="https://git.learnjsthehardway.com/learn-code-the-hard-way/turings-tarpit">View the Git</a></button>
</block> </block>
</blockstart> </blockstart>
</div>
<footer>
<h1>Footer</h1>
</footer>
</body>
</html>
<footer>
<h1>Footer</h1>
</footer>
</body> </body>
</html> </html>

@ -5,78 +5,51 @@
<link rel="stylesheet" href="/global.css"> <link rel="stylesheet" href="/global.css">
<link rel="stylesheet" href="/color.css"> <link rel="stylesheet" href="/color.css">
<link rel="stylesheet" href="/blockstart.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 defer src="/js/alpine.js"></script>
<script src="/js/code.js"></script> <script src="/js/code.js"></script>
<script> <title>ZedShaw.games</title>
let Streams = new GetJson("/api/stream/");
</script>
</head> </head>
<body data-testid="stream-index-page">
<header>
<body> <blockstart style="background-color: var(--value0)">
<header> <block style="--value: 0; --text: 9" class="horizontal">
<a href="/">🏡</a> <span>Zed's Game Dev Website Yay</span> <a href="/">🏡</a>
</header> <a href="/live/">Live</a>
<a href="/stream/">Streams</a>
<blockstart> <a href="/game/">Games</a>
<block style="--value: 7"> <a href="/register/">Register</a>
<h1 id="streams-title">Past Streams</h1> <a href="/login/">Login</a>
<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>
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>
<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> </blockstart>
</header>
<footer>
<h1>Footer</h1> <script>
</footer> let Streams = new GetJson("/api/stream/");
</body> </script>
</html>
<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> </body>
</html> </html>

@ -2,10 +2,24 @@ package main
import ( import (
"log" "log"
"flag"
"zedshaw.games/webapp/zed" "zedshaw.games/webapp/zed"
) )
type config struct {
source string
target string
layouts string
}
func main() { 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.") log.Println("Generating site from pages to public.")
zed.RenderPages("./pages", "./public", "layouts/main")
zed.RenderPages(cfg.source, cfg.target, cfg.layouts)
} }

Loading…
Cancel
Save