Make good pretty jam wow much good
This commit is contained in:
parent
62972ae35a
commit
92b175c84d
|
@ -6,7 +6,7 @@ function initCarousel(container, options = {}) {
|
||||||
const buttonContainer = container.querySelector('.carousel-buttons');
|
const buttonContainer = container.querySelector('.carousel-buttons');
|
||||||
|
|
||||||
let current = 0;
|
let current = 0;
|
||||||
function activateCarousel(i) {
|
function activateCarousel(i, silent = false) {
|
||||||
const items = document.querySelectorAll('.carousel-item');
|
const items = document.querySelectorAll('.carousel-item');
|
||||||
for (const item of items) {
|
for (const item of items) {
|
||||||
item.classList.remove('active');
|
item.classList.remove('active');
|
||||||
|
@ -29,7 +29,9 @@ function initCarousel(container, options = {}) {
|
||||||
|
|
||||||
current = i;
|
current = i;
|
||||||
|
|
||||||
onChange(current);
|
if (!silent) {
|
||||||
|
onChange(current);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function activateNext() {
|
function activateNext() {
|
||||||
|
@ -67,7 +69,7 @@ function initCarousel(container, options = {}) {
|
||||||
buttonContainer.appendChild(button);
|
buttonContainer.appendChild(button);
|
||||||
}
|
}
|
||||||
|
|
||||||
activateCarousel(0);
|
activateCarousel(0, true);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
next: activateNext,
|
next: activateNext,
|
||||||
|
|
|
@ -75,12 +75,11 @@ type DiscordConfig struct {
|
||||||
OAuthClientID string
|
OAuthClientID string
|
||||||
OAuthClientSecret string
|
OAuthClientSecret string
|
||||||
|
|
||||||
GuildID string
|
GuildID string
|
||||||
MemberRoleID string
|
MemberRoleID string
|
||||||
ShowcaseChannelID string
|
ShowcaseChannelID string
|
||||||
LibraryChannelID string
|
LibraryChannelID string
|
||||||
StreamsChannelID string
|
StreamsChannelID string
|
||||||
JamShowcaseChannelID string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type TwitchConfig struct {
|
type TwitchConfig struct {
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"git.handmade.network/hmn/hmn/src/db"
|
"git.handmade.network/hmn/hmn/src/db"
|
||||||
"git.handmade.network/hmn/hmn/src/models"
|
"git.handmade.network/hmn/hmn/src/models"
|
||||||
"git.handmade.network/hmn/hmn/src/oops"
|
"git.handmade.network/hmn/hmn/src/oops"
|
||||||
|
"git.handmade.network/hmn/hmn/src/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Jam struct {
|
type Jam struct {
|
||||||
|
@ -27,8 +28,8 @@ var WRJ2021 = Jam{
|
||||||
var WRJ2022 = Jam{
|
var WRJ2022 = Jam{
|
||||||
Name: "Wheel Reinvention Jam 2022",
|
Name: "Wheel Reinvention Jam 2022",
|
||||||
Slug: "WRJ2022",
|
Slug: "WRJ2022",
|
||||||
StartTime: time.Date(2022, 8, 15, 0, 0, 0, 0, time.UTC),
|
StartTime: time.Date(2022, 8, 15, 8, 0, 0, 0, utils.Must1(time.LoadLocation("America/Los_Angeles"))),
|
||||||
EndTime: time.Date(2022, 8, 22, 0, 0, 0, 0, time.UTC),
|
EndTime: time.Date(2022, 8, 22, 8, 0, 0, 0, utils.Must1(time.LoadLocation("America/Los_Angeles"))),
|
||||||
}
|
}
|
||||||
|
|
||||||
var AllJams = []Jam{WRJ2021, WRJ2022}
|
var AllJams = []Jam{WRJ2021, WRJ2022}
|
||||||
|
|
|
@ -156,6 +156,11 @@
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.emphasized {
|
||||||
|
padding-left: 1rem;
|
||||||
|
border-left: 0.3rem solid white;
|
||||||
|
}
|
||||||
|
|
||||||
.flex-fair {
|
.flex-fair {
|
||||||
flex-basis: 1px;
|
flex-basis: 1px;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
|
@ -268,12 +273,23 @@
|
||||||
{{ template "header.html" . }}
|
{{ template "header.html" . }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{ $discordInviteURL := "https://discord.gg/zFt8Rf59?event=1004511448107602031" }}
|
||||||
|
|
||||||
<div id="top-container" class="flex flex-column items-center ph3">
|
<div id="top-container" class="flex flex-column items-center ph3">
|
||||||
<img id="logo" src="{{ static "wheeljam2022/logo.svg" }}">
|
<img id="logo" src="{{ static "wheeljam2022/logo.svg" }}">
|
||||||
<h1 id="title">Wheel Reinvention Jam</h1>
|
<h1 id="title">Wheel Reinvention Jam</h1>
|
||||||
<h2 id="dates">August 15 - 21, 2O22</h2>
|
<h2 id="dates">August 15 - 21, 2O22</h2>
|
||||||
<div id="tagline" class="center">
|
<div id="tagline" class="center">
|
||||||
A one-week jam to change the status quo.
|
A one-week jam to change the status quo.
|
||||||
|
{{ if gt .DaysUntilEnd 0 }}
|
||||||
|
{{ if eq .DaysUntilStart 0 }}
|
||||||
|
<b>Happening now.</b>
|
||||||
|
{{ else if eq .DaysUntilStart 1 }}
|
||||||
|
<b>Starting tomorrow.</b>
|
||||||
|
{{ else }}
|
||||||
|
<b>In {{ .DaysUntilStart }} days.</b>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
<div class="actions flex justify-center">
|
<div class="actions flex justify-center">
|
||||||
{{ if gt .DaysUntilStart 0 }}
|
{{ if gt .DaysUntilStart 0 }}
|
||||||
|
@ -288,7 +304,7 @@
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<a class="ba b--white br2 pv2 pv3-ns ph3 ph4-ns ml3" target="_blank" href="https://discord.gg/hmn">Join the Discord</a>
|
<a class="ba b--white br2 pv2 pv3-ns ph3 ph4-ns ml3" target="_blank" href="{{ $discordInviteURL }}">Join the Discord</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -311,14 +327,14 @@
|
||||||
<div id="showcase-outer-container" class="bg-black-20 pt4 pb3 pb4-ns">
|
<div id="showcase-outer-container" class="bg-black-20 pt4 pb3 pb4-ns">
|
||||||
<div class="section mw8 margin-center ph3 ph4-l">
|
<div class="section mw8 margin-center ph3 ph4-l">
|
||||||
{{ if gt .DaysUntilEnd 0 }}
|
{{ if gt .DaysUntilEnd 0 }}
|
||||||
<h2>Recent activity</h2>
|
<h2>Recent updates</h2>
|
||||||
<p>
|
<p>
|
||||||
These screenshots and videos were shared in #jam-showcase on our <a href="https://discord.gg/hmn" target="_blank">Discord</a>. Join us!
|
These screenshots and videos were shared by jam participants in <b>#project-showcase</b> on our <a href="{{ $discordInviteURL }}" target="_blank">Discord</a>. Join us and share what you're working on!
|
||||||
</p>
|
</p>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<h2>Showcase</h2>
|
<h2>Community showcase</h2>
|
||||||
<p>
|
<p>
|
||||||
Post-jam text
|
These screenshots and videos were shared by jam participants in <b>#project-showcase</b> on our <a href="https://discord.gg/hmn" target="_blank">Discord</a> during the jam. Join us and chat about your favorites!
|
||||||
</p>
|
</p>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<div id="showcase-container" class="mw8 center-layout mh2 mh0-ns"></div>
|
<div id="showcase-container" class="mw8 center-layout mh2 mh0-ns"></div>
|
||||||
|
@ -329,111 +345,141 @@
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
<div class="section bg-black-20 pv4 overflow-hidden">
|
{{ if gt .DaysUntilStart 0 }}
|
||||||
<div class="mw8 margin-center ph3 ph4-l">
|
<div class="section bg-black-20 pv4 overflow-hidden">
|
||||||
<h2>Last year's entries</h2>
|
<div class="mw8 margin-center ph3 ph4-l">
|
||||||
<p>
|
<h2>Last year's entries</h2>
|
||||||
We had many incredible entries last year. Here are a few of our favorites:
|
<p>
|
||||||
</p>
|
We had many incredible entries last year. Here are a few of our favorites:
|
||||||
|
</p>
|
||||||
|
|
||||||
<div class="carousel-container">
|
<div class="carousel-container">
|
||||||
<div class="carousel bg-white-10 br3 pa3 pa4-ns">
|
<div class="carousel bg-white-10 br3 pa3 pa4-ns">
|
||||||
<div class="carousel-item active">
|
<div class="carousel-item active">
|
||||||
<img class="br2" src="{{ static "wheeljam2022/scroll.png" }}">
|
<img class="br2" src="{{ static "wheeljam2022/scroll.png" }}">
|
||||||
<h3>Scroll</h3>
|
<h3>Scroll</h3>
|
||||||
<p>
|
<p>
|
||||||
Scroll is an experimental new typesetting format and editor. The document structure is inherently non-textual; in fact, even words within paragraphs are individual nodes that can easily be selected and moved as a whole. It's a great proof-of-concept of what "word processors" could be—and it even has a PDF export.
|
Scroll is an experimental new typesetting format and editor. The document structure is inherently non-textual; in fact, even words within paragraphs are individual nodes that can easily be selected and moved as a whole. It's a great proof-of-concept of what "word processors" could be—and it even has a PDF export.
|
||||||
</p>
|
</p>
|
||||||
<a class="b db" href="https://handmade.network/forums/jam/t/8116-jam_submition_-_scroll%252C_a_experiment_in_a_non_text_typesetting_file_format">Full Submission ➜</a>
|
<a class="b db" href="https://handmade.network/forums/jam/t/8116-jam_submition_-_scroll%252C_a_experiment_in_a_non_text_typesetting_file_format">Full Submission ➜</a>
|
||||||
<a class="b db" href="https://youtu.be/1RjU5XJqysc?t=1083" target="_blank">Recap Interview ➜</a>
|
<a class="b db" href="https://youtu.be/1RjU5XJqysc?t=1083" target="_blank">Recap Interview ➜</a>
|
||||||
|
</div>
|
||||||
|
<div class="carousel-item">
|
||||||
|
<img class="br2" src="{{ static "wheeljam2022/nearmanager.gif" }}">
|
||||||
|
<h3>Near</h3>
|
||||||
|
<p>
|
||||||
|
Near (or Near Manager) is an experimental file viewer that breaks away from a plain hierarchy. By allowing you to flatten folder hierarchies, create custom groups, and reorder your files, Near allows you to tame any complex file structure and view it in a way that works for you.
|
||||||
|
</p>
|
||||||
|
<a class="b db" href="https://handmade.network/forums/jam/t/8120-jam_submission_-_near%252C_a_file_explorer_with_interesting_ideas">Full Submission ➜</a>
|
||||||
|
<a class="b db" href="https://youtu.be/1RjU5XJqysc?t=435" target="_blank">Recap Interview ➜</a>
|
||||||
|
</div>
|
||||||
|
<div class="carousel-item">
|
||||||
|
<img class="br2" src="{{ static "wheeljam2022/visaviz.png" }}">
|
||||||
|
<h3>Twitter Thread Graph Explorer</h3>
|
||||||
|
<p>
|
||||||
|
This project extended an existing personal project with a unique way of exploring Twitter threads. When the author found existing layout algorithms insufficient, he decided to roll his own. The project submission is an insightful look at why you sometimes need to do things yourself.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This project was featured as a demo at Handmade Seattle 2021.
|
||||||
|
</p>
|
||||||
|
<a class="b db" href="https://handmade.network/forums/jam/t/8137-jam_submission_-_twitter_thread_graph_explorer">Full Submission ➜</a>
|
||||||
|
<a class="b db" href="https://youtu.be/1RjU5XJqysc?t=7519" target="_blank">Recap Interview ➜</a>
|
||||||
|
<a class="b db" href="https://media.handmade-seattle.com/visa-viz/" target="_blank">Handmade Seattle Demo ➜</a>
|
||||||
|
</div>
|
||||||
|
<div class="carousel-item">
|
||||||
|
<img class="br2" src="{{ static "wheeljam2022/databaseexplorer.png" }}">
|
||||||
|
<h3>Database Explorer</h3>
|
||||||
|
<p>
|
||||||
|
This project explores a new way of querying SQL databases, by throwing away SQL in favor of a visual node graph. It allows you to incrementally build queries, seeing the data at every point along the way, and to reuse smaller queries in a way SQL cannot.
|
||||||
|
</p>
|
||||||
|
<a class="b db" href="https://handmade.network/forums/jam/t/8127-jam_submission__database_explorer">Full Submission ➜</a>
|
||||||
|
<a class="b db" href="https://youtu.be/1RjU5XJqysc?t=6390" target="_blank">Recap Interview ➜</a>
|
||||||
|
</div>
|
||||||
|
<div class="carousel-thinger next"></div>
|
||||||
|
<div class="carousel-thinger prev"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="carousel-item">
|
<div class="carousel-buttons mt2 pv2"></div>
|
||||||
<img class="br2" src="{{ static "wheeljam2022/nearmanager.gif" }}">
|
|
||||||
<h3>Near</h3>
|
|
||||||
<p>
|
|
||||||
Near (or Near Manager) is an experimental file viewer that breaks away from a plain hierarchy. By allowing you to flatten folder hierarchies, create custom groups, and reorder your files, Near allows you to tame any complex file structure and view it in a way that works for you.
|
|
||||||
</p>
|
|
||||||
<a class="b db" href="https://handmade.network/forums/jam/t/8120-jam_submission_-_near%252C_a_file_explorer_with_interesting_ideas">Full Submission ➜</a>
|
|
||||||
<a class="b db" href="https://youtu.be/1RjU5XJqysc?t=435" target="_blank">Recap Interview ➜</a>
|
|
||||||
</div>
|
|
||||||
<div class="carousel-item">
|
|
||||||
<img class="br2" src="{{ static "wheeljam2022/visaviz.png" }}">
|
|
||||||
<h3>Twitter Thread Graph Explorer</h3>
|
|
||||||
<p>
|
|
||||||
This project extended an existing personal project with a unique way of exploring Twitter threads. When the author found existing layout algorithms insufficient, he decided to roll his own. The project submission is an insightful look at why you sometimes need to do things yourself.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
This project was featured as a demo at Handmade Seattle 2021.
|
|
||||||
</p>
|
|
||||||
<a class="b db" href="https://handmade.network/forums/jam/t/8137-jam_submission_-_twitter_thread_graph_explorer">Full Submission ➜</a>
|
|
||||||
<a class="b db" href="https://youtu.be/1RjU5XJqysc?t=7519" target="_blank">Recap Interview ➜</a>
|
|
||||||
<a class="b db" href="https://media.handmade-seattle.com/visa-viz/" target="_blank">Handmade Seattle Demo ➜</a>
|
|
||||||
</div>
|
|
||||||
<div class="carousel-item">
|
|
||||||
<img class="br2" src="{{ static "wheeljam2022/databaseexplorer.png" }}">
|
|
||||||
<h3>Database Explorer</h3>
|
|
||||||
<p>
|
|
||||||
This project explores a new way of querying SQL databases, by throwing away SQL in favor of a visual node graph. It allows you to incrementally build queries, seeing the data at every point along the way, and to reuse smaller queries in a way SQL cannot.
|
|
||||||
</p>
|
|
||||||
<a class="b db" href="https://handmade.network/forums/jam/t/8127-jam_submission__database_explorer">Full Submission ➜</a>
|
|
||||||
<a class="b db" href="https://youtu.be/1RjU5XJqysc?t=6390" target="_blank">Recap Interview ➜</a>
|
|
||||||
</div>
|
|
||||||
<div class="carousel-thinger next"></div>
|
|
||||||
<div class="carousel-thinger prev"></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="carousel-buttons mt2 pv2"></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
{{ end }}
|
||||||
|
|
||||||
<div class="pt4 pb3 pb4-ns">
|
<div class="pt4 pb3 pb4-ns">
|
||||||
<div class="section mw8 margin-center ph3 ph4-l">
|
<div class="section mw8 margin-center ph3 ph4-l">
|
||||||
<h2>Details / Rules</h2>
|
<h2>How to participate</h2>
|
||||||
<p>
|
<p>
|
||||||
The jam takes place from Monday, August 15 through Sunday, August 21. Here's how you can participate:
|
The jam takes place from Monday, August 15 through Sunday, August 21. Here's how you can participate:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Pick a project and form a team.</h3>
|
<div class="{{ if gt .DaysUntilStart 0 }}emphasized{{ end }}">
|
||||||
<p>
|
<h3>Pick a project and form a team.</h3>
|
||||||
Find a project idea that excites you! Whether there's a project you've always wanted to start, or you're looking for inspiration, join the conversation over on our <a href="https://github.com/HandmadeNetwork/wishlist/discussions" target="_blank">Wishlist</a>, brainstorm project ideas, and find a team.
|
<p>
|
||||||
</p>
|
Find a project idea that excites you! Join the conversation over on our <a href="https://github.com/HandmadeNetwork/wishlist/discussions" target="_blank">Wishlist</a>, brainstorm ideas in <b>#jam</b> on <a href="{{ $discordInviteURL }}" target="_blank">Discord</a>, or just invite some friends to jam with you.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
<h3>Jam.</h3>
|
<div class="{{ if and (eq .DaysUntilStart 0) (gt .DaysUntilEnd 1) }}emphasized{{ end }}">
|
||||||
<p>
|
<h3>Jam.</h3>
|
||||||
Create a personal Handmade Network project to track your work. Then, build your program over the course of the week. Sharing your work in progress is highly recommended - you can share WIP content in #project-showcase on Discord, or directly from your project page.
|
<p>
|
||||||
</p>
|
{{ if eq .DaysUntilStart 0 }}
|
||||||
|
<a href="{{ or .SubmittedProjectUrl .ProjectSubmissionUrl }}" target="_blank"><b>Create a Handmade Network project</b></a>
|
||||||
|
{{ else }}
|
||||||
|
After the jam starts, create a Handmade Network project
|
||||||
|
{{ end }}
|
||||||
|
to track your work. Then, build your program! Share your work in progress in #project-showcase on Discord, or directly from your project page.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
<h3>Submit your work!</h3>
|
<div class="{{ if eq .DaysUntilEnd 1 }}emphasized{{ end }}">
|
||||||
<p>
|
<h3>Submit your work!</h3>
|
||||||
Your Handmade Network project acts as your submission. Fill out the project description, making sure to explain the goals of the project and how it improves on what came before. Also consider posting an update on the project with video of your program in action!
|
<p>
|
||||||
</p>
|
<b>Your Handmade Network project is your submission.</b> Fill out the project description, making sure to explain the goals of the project and how it improves on what came before. Also consider posting an update with video of your program in action!
|
||||||
|
</p>
|
||||||
|
{{ if and (eq .DaysUntilStart 0) (gt .DaysUntilEnd 0) }}
|
||||||
|
<p>
|
||||||
|
Submissions close <b><span class="countdown" data-deadline="{{ .EndTimeUnix }}"></span></b>.
|
||||||
|
</p>
|
||||||
|
{{ else if eq .DaysUntilEnd 0 }}
|
||||||
|
<p>
|
||||||
|
<b>Submissions are now closed.</b>
|
||||||
|
</p>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<h3>Rules</h3>
|
<div class="bg-black-20 pt4 pb3 pb4-ns">
|
||||||
|
<div class="section mw8 margin-center ph3 ph4-l">
|
||||||
|
<h2>Rules</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Any tech is allowed, but we encourage you to use only use what you really need. If you want some lightweight templates to get you started, check out our <a href="https://github.com/HandmadeNetwork/jam_templates" target="_blank">app templates</a>.</li>
|
||||||
|
<li>You may work solo or in a team. (But we encourage you to work with a team!)</li>
|
||||||
|
<li>Submit your work by the end of the day on August 21.</li>
|
||||||
|
</ul>
|
||||||
|
<p>There are no explicit winners, but we will be selecting a few of our favorite projects to highlight in a recap stream following the jam.</p>
|
||||||
|
|
||||||
|
<h3>Submission rules</h3>
|
||||||
|
<p>
|
||||||
|
<b>{{ with .SubmittedProjectUrl }}
|
||||||
|
<a href="{{ . }}" target="_blank">Your Handmade Network project</a>
|
||||||
|
{{ else }}
|
||||||
|
Your Handmade Network project
|
||||||
|
{{ end }}
|
||||||
|
is your submission.</b> We will be looking at the project's description and any extra updates you share toward the end of the jam.
|
||||||
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Any tech is allowed, but in the spirit of the <a href="https://handmade.network/manifesto">Handmade ethos</a>, we encourage you to use only use what you really need. If you want some lightweight templates to get you started, check out our <a href="https://github.com/HandmadeNetwork/jam_templates" target="_blank">app templates</a>.</li>
|
|
||||||
<li>Working with a team is strongly encouraged, but working solo is allowed.</li>
|
|
||||||
<li>
|
<li>
|
||||||
<p>Submit your work by the end of August 21 in your local timezone.</p>
|
Explain the project's goals and how it improves on what came before. Also share some closing thoughts - did it turn out how you hoped? What did you learn? If you continue the project, what will you do differently?
|
||||||
<ul>
|
|
||||||
<li>Update the description of your Handmade Network project. The project is your submission.</li> {{/* TODO: dynamically link to their project? */}}
|
|
||||||
<li>Explain the project's goals and how it improves on what came before. Also share some closing thoughts - did it turn out how you hoped? What did you learn? If you continue the project, what will you do differently?</li>
|
|
||||||
<li>
|
|
||||||
<p>
|
|
||||||
Your description must contain multiple screenshots of your software in action. You should ideally also share a project update with a demo video.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
We recommend Mārtiņš Možeiko's <a href="https://wcap.handmade.network/" target="_blank">wcap</a> for recording desktop video on Windows. On Mac, just press ⌘-Option-5 and record a video, or use QuickTime.
|
|
||||||
</p>
|
|
||||||
</li>
|
|
||||||
<li>If at all possible, please provide a way for people to either build or download your program.</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
</li>
|
||||||
<li>There are no explicit winners, but we will be selecting a few of our favorite projects to highlight in a recap stream following the jam.</li>
|
<li>
|
||||||
|
<b>Your description must contain multiple screenshots of your software in action.</b> You should ideally also share a project update with a demo video. We recommend Mārtiņš Možeiko's <a href="https://wcap.handmade.network/" target="_blank">wcap</a> for recording desktop video on Windows. On Mac, just press ⌘-Option-5 and record a video, or use QuickTime.
|
||||||
|
</li>
|
||||||
|
<li>If at all possible, please provide a way for people to either build or download your program.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="bg-black-20 pt4 pb3 pb4-ns">
|
<div class="pt4">
|
||||||
<div class="flex-ns flex-row-ns mw8 margin-center ph3 ph4-l">
|
<div class="flex-ns flex-row-ns mw8 margin-center ph3 ph4-l">
|
||||||
<div class="section flex-fair mb4 mb0-ns">
|
<div class="section flex-fair mb4 mb0-ns">
|
||||||
<h2>Make it by hand.</h2>
|
<h2>Make it by hand.</h2>
|
||||||
|
@ -570,23 +616,52 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
const carouselContainer = document.querySelector('.carousel-container');
|
const carouselContainer = document.querySelector('.carousel-container');
|
||||||
|
if (carouselContainer) {
|
||||||
|
const { next, prev } = initCarousel(carouselContainer, {
|
||||||
|
onChange() {
|
||||||
|
if (carouselContainer.getBoundingClientRect().top < 0) {
|
||||||
|
carouselContainer.scrollIntoView({ behavior: 'smooth' });
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
const { next, prev } = initCarousel(carouselContainer, {
|
document.querySelector('.carousel-thinger.next')
|
||||||
onChange() {
|
.addEventListener('click', () => {
|
||||||
if (carouselContainer.getBoundingClientRect().top < 0) {
|
next();
|
||||||
carouselContainer.scrollIntoView({ behavior: 'smooth' });
|
});
|
||||||
|
document.querySelector('.carousel-thinger.prev')
|
||||||
|
.addEventListener('click', () => {
|
||||||
|
prev();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
for (const countdown of document.querySelectorAll('.countdown')) {
|
||||||
|
const deadline = countdown.getAttribute('data-deadline');
|
||||||
|
const deadlineDate = new Date(parseInt(deadline, 10) * 1000);
|
||||||
|
|
||||||
|
function updateCountdown() {
|
||||||
|
const remainingMs = deadlineDate.getTime() - new Date().getTime();
|
||||||
|
const remainingMinutes = remainingMs / 1000 / 60;
|
||||||
|
const remainingHours = remainingMinutes / 60;
|
||||||
|
const remainingDays = remainingHours / 24; // no daylight savings transitions during the jam mmkay
|
||||||
|
|
||||||
|
let str = 'imminently';
|
||||||
|
if (remainingMinutes < 60) {
|
||||||
|
str = `in ${Math.ceil(remainingMinutes)} ${remainingMinutes === 1 ? 'minute' : 'minutes'}`;
|
||||||
|
} else if (remainingHours < 24) {
|
||||||
|
str = `in ${Math.ceil(remainingHours)} ${remainingHours === 1 ? 'hour' : 'hours'}`;
|
||||||
|
} else {
|
||||||
|
str = `in ${Math.ceil(remainingDays)} ${remainingDays === 1 ? 'day' : 'days'}`;
|
||||||
}
|
}
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
document.querySelector('.carousel-thinger.next')
|
countdown.innerText = str;
|
||||||
.addEventListener('click', () => {
|
}
|
||||||
next();
|
|
||||||
});
|
updateCountdown();
|
||||||
document.querySelector('.carousel-thinger.prev')
|
setInterval(updateCountdown, 1000 * 60);
|
||||||
.addEventListener('click', () => {
|
}
|
||||||
prev();
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ func JamIndex2022(c *RequestContext) ResponseData {
|
||||||
type JamPageData struct {
|
type JamPageData struct {
|
||||||
templates.BaseData
|
templates.BaseData
|
||||||
DaysUntilStart, DaysUntilEnd int
|
DaysUntilStart, DaysUntilEnd int
|
||||||
|
StartTimeUnix, EndTimeUnix int64
|
||||||
SubmittedProjectUrl string
|
SubmittedProjectUrl string
|
||||||
ProjectSubmissionUrl string
|
ProjectSubmissionUrl string
|
||||||
ShowcaseFeedUrl string
|
ShowcaseFeedUrl string
|
||||||
|
@ -91,6 +92,8 @@ func JamIndex2022(c *RequestContext) ResponseData {
|
||||||
BaseData: baseData,
|
BaseData: baseData,
|
||||||
DaysUntilStart: daysUntilStart,
|
DaysUntilStart: daysUntilStart,
|
||||||
DaysUntilEnd: daysUntilEnd,
|
DaysUntilEnd: daysUntilEnd,
|
||||||
|
StartTimeUnix: hmndata.WRJ2022.StartTime.Unix(),
|
||||||
|
EndTimeUnix: hmndata.WRJ2022.EndTime.Unix(),
|
||||||
ProjectSubmissionUrl: hmnurl.BuildProjectNewJam(),
|
ProjectSubmissionUrl: hmnurl.BuildProjectNewJam(),
|
||||||
SubmittedProjectUrl: submittedProjectUrl,
|
SubmittedProjectUrl: submittedProjectUrl,
|
||||||
ShowcaseFeedUrl: hmnurl.BuildJamFeed2022(),
|
ShowcaseFeedUrl: hmnurl.BuildJamFeed2022(),
|
||||||
|
|
Loading…
Reference in New Issue