Port the content styles (easier than I thought!)

This commit is contained in:
Ben Visness 2024-05-13 18:33:15 -05:00
parent 379ad520de
commit 38a2979f82
29 changed files with 350 additions and 439 deletions

View File

@ -7182,6 +7182,7 @@ code {
--notice-success-color: #43a52f;
--notice-warn-color: #aa7d30;
--notice-failure-color: #b42222;
--spoiler-border: #aaa;
}
@media (prefers-color-scheme: dark) {
:root {
@ -7211,6 +7212,7 @@ code {
--notice-success-color: #2a681d;
--notice-warn-color: #876327;
--notice-failure-color: #7a2020;
--spoiler-border: #777;
}
}
@ -7241,9 +7243,14 @@ a.external::after,
vertical-align: middle;
}
code,
pre,
.mono {
font-family: "Fira Mono", monospace;
}
b,
strong {
font-weight: 500;
}
.bg--main {
background-color: var(--main-background-color);
}
@ -7745,6 +7752,146 @@ code,
background-color: var(--theme-color-dimmest);
}
/* src/rawdata/scss/content.css */
.post-content *:first-child {
margin-top: 0;
}
.post-content *:last-child {
margin-bottom: 0;
}
.post-content h1 {
font-size: 2rem;
}
.post-content h2 {
font-size: 1.5rem;
}
.post-content h3 {
font-size: 1.25rem;
}
.post-content h4 {
font-size: 1rem;
}
.post-content h5 {
font-size: 0.8rem;
}
.post-content h1,
.post-content h2,
.post-content h3,
.post-content h4,
.post-content h5 {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.post-content li:not(:last-child) {
margin-bottom: 0.2em;
}
.post-content img {
max-width: 100%;
}
.post-content hr {
margin-left: var(--spacing-medium);
margin-right: var(--spacing-medium);
}
.post-content div.code {
border-color: var(--dimmer-color);
max-width: 100%;
max-height: 20em;
max-height: 80vh;
overflow: auto;
-moz-tab-size: 4;
tab-size: 4;
border-width: 1px;
border-style: solid;
}
.post-content div + br,
.post-content blockquote + br,
.post-content ul + br,
.post-content ol + br {
display: none;
}
.post-content table {
margin-top: var(--spacing-small);
margin-bottom: var(--spacing-small);
}
.post-content th,
.post-content td {
padding: var(--spacing-extra-small) var(--spacing-small);
border: 1px solid var(--dimmest-color);
}
.post-content code {
background-color: var(--dim-background);
border-radius: var(--border-radius-2);
padding: .2em 0;
white-space: nowrap;
}
.post-content code::before,
.post-content code::after {
content: "\a0";
letter-spacing: -0.2em;
display: inline-block;
}
.post-content pre > code,
.post-content pre.hmn-code {
background-color: var(--dim-background);
border-radius: var(--border-radius-2);
padding: 0.7em;
overflow-x: auto;
}
.post-content blockquote {
border-color: var(--dimmest-color);
margin-left: var(--spacing-small);
padding-left: var(--spacing-small);
margin-right: 0;
border-left-style: solid;
border-left-width: 1px;
}
.post-content blockquote .quotewho {
line-height: 2em;
}
.post-content blockquote .quotewho::after {
content: " said:";
}
.post-content figure {
margin: var(--spacing-small) 0;
padding: var(--spacing-small) var(--spacing-small) 0;
background-color: var(--dim-background);
border-radius: var(--border-radius-3);
display: flex;
flex-direction: column;
}
@media screen and (min-width: 35em) {
.post-content figure {
margin-top: var(--spacing-medium);
margin-bottom: var(--spacing-medium);
padding: var(--spacing-medium) var(--spacing-medium) 0;
}
}
.post-content figure figcaption {
margin: var(--spacing-extra-small) 0;
}
@media screen and (min-width: 35em) {
.post-content figure figcaption {
margin: var(--spacing-small) 0;
}
}
.post-content table {
border-collapse: collapse;
table-layout: fixed;
}
.post-content td {
vertical-align: baseline;
}
.post-content .spoiler {
border-color: var(--spoiler-border);
border-width: 1px;
border-style: dashed;
color: transparent;
}
.post-content .spoiler::selection {
color: white;
background-color: black;
}
/* src/rawdata/scss/editor.css */
#preview:empty::after {
content: "A preview of your post will appear here.";

View File

@ -333,24 +333,6 @@ func BuildConferences() string {
return Url("/conferences", nil)
}
/*
* Volunteer/Staff Roles
*/
var RegexStaffRolesIndex = regexp.MustCompile(`^/roles$`)
func BuildStaffRolesIndex() string {
defer CatchPanic()
return Url("/roles", nil)
}
var RegexStaffRole = regexp.MustCompile(`^/roles/(?P<slug>[^/]+)$`)
func BuildStaffRole(slug string) string {
defer CatchPanic()
return Url(fmt.Sprintf("/roles/%s", slug), nil)
}
/*
* User
*/

View File

@ -1,186 +0,0 @@
strong {
font-weight: 500;
}
.text {
@include usevar(background-color, text-background);
}
.underline {
text-decoration:underline;
}
.monospace {
font-family: $monospace-fonts;
background-color: rgba(0, 0, 0, 0.1);
padding: 0.2em 0 0.05em;
border-radius: 3px;
&::before, &::after {
content: "\00a0";
letter-spacing: -0.2em;
}
}
.center {
text-align: center;
}
.right {
text-align: right;
}
.left {
text-align: left;
}
.justify {
text-align:justify;
-webkit-hyphens:manual;
-moz-hyphens:manual;
-ms-hyphens:manual;
hyphens:manual;
}
.spoiler {
@include usevar(border-color, spoiler-border);
border-width: 1px;
border-style: dashed;
color: transparent;
&::selection {
color: white;
background-color: black;
}
}
blockquote {
@extend .b--dimmest;
@extend .ml2, .pl2, .mr0;
@extend .bl;
.quotewho {
line-height: 2em;
&::after {
content: " said:";
}
}
}
pre {
font-family: $monospace-fonts;
}
.post-content {
* {
&:first-child {
margin-top: 0;
}
&:last-child {
margin-bottom: 0;
}
}
h1 {
font-size: 2rem;
}
h2 {
font-size: 1.5rem;
}
h3 {
font-size: 1.25rem;
}
h4 {
font-size: 1rem;
}
h5 {
font-size: 0.8rem;
}
h1, h2, h3, h4, h5 {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
li:not(:last-child) {
margin-bottom: 0.2em;
}
img {
max-width: 100%;
}
hr {
@extend .mh3;
}
div.code {
@extend .b--dimmer;
max-width: 100%;
max-height: 20em;
max-height: 80vh;
overflow: auto;
-moz-tab-size: 4;
tab-size: 4;
border-width: 1px;
border-style: solid;
}
div + br,
blockquote + br,
ul + br,
ol + br,
{
display: none;
}
table {
@extend .mv2;
}
th, td {
@extend .ph2, .pv1;
@extend .ba, .b--dimmest;
}
code {
@extend .bg--dim;
@extend .br2;
padding: .2em 0;
white-space: nowrap;
&::before, &::after {
content: "\00a0";
letter-spacing: -0.2em;
display: inline-block;
}
}
pre > code, pre.hmn-code {
@extend .bg--dim;
@extend .br2;
padding: 0.7em;
overflow-x: auto;
}
}
figure {
@extend .mh0, .mv2, .mv3-ns, .pa2, .pa3-ns, .bg--dim, .br3;
display: flex;
flex-direction: column;
padding-bottom: 0;
figcaption {
@extend .pv1, .pv2-ns;
}
}

View File

@ -0,0 +1,170 @@
.post-content {
* {
&:first-child {
margin-top: 0;
}
&:last-child {
margin-bottom: 0;
}
}
h1 {
font-size: 2rem;
}
h2 {
font-size: 1.5rem;
}
h3 {
font-size: 1.25rem;
}
h4 {
font-size: 1rem;
}
h5 {
font-size: 0.8rem;
}
h1,
h2,
h3,
h4,
h5 {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
li:not(:last-child) {
margin-bottom: 0.2em;
}
img {
max-width: 100%;
}
hr {
margin-left: var(--spacing-medium);
margin-right: var(--spacing-medium);
}
div.code {
border-color: var(--dimmer-color);
max-width: 100%;
max-height: 20em;
max-height: 80vh;
overflow: auto;
-moz-tab-size: 4;
tab-size: 4;
border-width: 1px;
border-style: solid;
}
div+br,
blockquote+br,
ul+br,
ol+br {
display: none;
}
table {
margin-top: var(--spacing-small);
margin-bottom: var(--spacing-small);
}
th,
td {
padding: var(--spacing-extra-small) var(--spacing-small);
border: 1px solid var(--dimmest-color);
}
code {
background-color: var(--dim-background);
border-radius: var(--border-radius-2);
padding: .2em 0;
white-space: nowrap;
&::before,
&::after {
content: "\00a0";
letter-spacing: -0.2em;
display: inline-block;
}
}
pre>code,
pre.hmn-code {
background-color: var(--dim-background);
border-radius: var(--border-radius-2);
padding: 0.7em;
overflow-x: auto;
}
blockquote {
border-color: var(--dimmest-color);
margin-left: var(--spacing-small);
padding-left: var(--spacing-small);
margin-right: 0;
border-left-style: solid;
border-left-width: 1px;
.quotewho {
line-height: 2em;
&::after {
content: " said:";
}
}
}
figure {
margin: var(--spacing-small) 0;
padding: var(--spacing-small) var(--spacing-small) 0;
background-color: var(--dim-background);
border-radius: var(--border-radius-3);
display: flex;
flex-direction: column;
@media screen and (min-width: 35em) {
margin-top: var(--spacing-medium);
margin-bottom: var(--spacing-medium);
padding: var(--spacing-medium) var(--spacing-medium) 0;
}
figcaption {
margin: var(--spacing-extra-small) 0;
@media screen and (min-width: 35em) {
margin: var(--spacing-small) 0;
}
}
}
table {
border-collapse: collapse;
table-layout: fixed;
}
td {
vertical-align: baseline;
}
.spoiler {
border-color: var(--spoiler-border);
border-width: 1px;
border-style: dashed;
color: transparent;
&::selection {
color: white;
background-color: black;
}
}
}

View File

@ -32,10 +32,16 @@ a,
}
code,
pre,
.mono {
font-family: "Fira Mono", monospace;
}
b,
strong {
font-weight: 500;
}
/* Utility */
.bg--main {

View File

@ -4,6 +4,7 @@
@import "core.css";
@import "carousel.css";
@import "content.css";
@import "editor.css";
@import "education.css";
@import "forum.css";

View File

@ -45,6 +45,8 @@ $breakpoint-large: screen and (min-width: 60em)
--notice-success-color: #43a52f;
--notice-warn-color: #aa7d30;
--notice-failure-color: #b42222;
--spoiler-border: #aaa;
}
@media (prefers-color-scheme: dark) {
@ -83,5 +85,7 @@ $breakpoint-large: screen and (min-width: 60em)
--notice-success-color: #2a681d;
--notice-warn-color: #876327;
--notice-failure-color: #7a2020;
--spoiler-border: #777;
}
}

View File

@ -16,7 +16,7 @@
The Handmade Network's activities are funded by the <a href="{{ .FoundationUrl }}">Handmade Software Foundation</a>, a (soon-to-be) 501(c)(3) nonprofit corporation.
</p> -->
<p>
We can teach programmers how things actually work. We can teach users to expect better. We can build the best software you've ever seen. <a href="{{ .RolesUrl }}"><b>Join us.</b></a>
We can teach programmers how things actually work. We can teach users to expect better. We can build the best software you've ever seen. <b>Join us.</b>
</p>
</div>
@ -69,32 +69,9 @@
<div class="flex flex-column flex-row-ns g3">
<div class="flex-fair pa3 bg--dim br3">
<h3>Martin Fouilleul</h3>
<h4>[Secret Project] Lead</h4>
<p>Martin is a PhD student at <a href="https://www.ircam.fr/">Ircam</a>, researching programming languages and models for distributed temporal interactions in music and performing arts software. He is also a former sound engineer and computer music designer.</p>
<p>Right now he is working behind the scenes on a secret Handmade Network project, to be revealed at a later date.</p>
</div>
<div class="flex-fair pa3 bg--dim br3">
<h3>???</h3>
<h4>Education Lead</h4>
<p>
<strong>This could be you!</strong> Education is one of our flagship initiatives, and we are looking for someone to lead it. If you are excited about programming education and want to help out, please <a href="{{ .EducationLeadUrl }}">learn more and get in touch!</a>
</p>
</div>
</div>
<div class="flex flex-column flex-row-ns g3 mt3">
<div class="flex-fair pa3 bg--dim br3">
<h3>???</h3>
<h4>Advocacy Lead</h4>
<p>
<strong>This could be you!</strong> We want to go out into the world and advocate for better software and better programming practices. We need a strong communicator who can lead this for us. If this excites you, please <a href="{{ .AdvocacyLeadUrl }}">learn more and get in touch!</a>
</p>
</div>
<div class="flex-fair pa3 bg--dim br3">
<h3>???</h3>
<h4>Design Lead</h4>
<p>
<strong>This could be you!</strong> Building software for people means designing software for people. We are looking for someone with visual and UX design skills to design website features, event art, livestreaming assets, educational graphics, and more. If any of this sounds interesting to you, <a href="{{ .DesignLeadUrl }}">learn more and get in touch!</a>
</p>
<h4>Orca Lead</h4>
<p>Martin is a systems programmer, researcher, and PhD with experience in programming languages and models for distributed temporal interactions in music and performing arts software. He is also a former sound engineer and computer music designer.</p>
<p>He is the project lead on <a href="https://orca-app.dev/">Orca</a>, a new platform for WebAssembly applications outside the browser.</p>
</div>
</div>
</div>

View File

@ -16,10 +16,6 @@
<a href="{{ .Footer.AboutUrl }}">About</a>
<span class="c--dimmer dn di-ns"> / </span>
</li>
<li class="{{ $footerClasses }}">
<a href="{{ .Footer.RolesUrl }}">Roles</a>
<span class="c--dimmer dn di-ns"> / </span>
</li>
<li class="{{ $footerClasses }}">
<a href="{{ .Footer.ProjectIndexUrl }}">Projects</a>
<span class="c--dimmer dn di-ns"> / </span>

View File

@ -236,7 +236,7 @@
</head>
<body>
<div class="left white">
<div class="white">
<div class="mt4-ns mw8 m--center ph3-m ph4-l">
{{ template "header.html" . }}
</div>
@ -245,7 +245,7 @@
<img id="logo" src="{{ static "wheeljam2021/logo.svg" }}">
<h1 id="title">Wheel Reinvention Jam</h1>
<h2 id="dates">September 27 - October 3, 2O21</h2>
<div id="tagline" class="center">
<div id="tagline" class="tc">
A one-week jam to bring a fresh perspective to old ideas.
</div>
<div id="actions" class="flex justify-center">

View File

@ -15,7 +15,7 @@
<div id="top-container" class="flex flex-column items-center ph3">
<h1 id="title">Wheel Reinvention Jam</h1>
<h2 id="dates">August 15 - 21, 2O22</h2>
<div id="tagline" class="center">
<div id="tagline" class="tc">
A one-week jam to change the status quo.
</div>
</div>

View File

@ -22,7 +22,7 @@
<img id="logo" src="{{ static "wheeljam2022/logo.svg" }}">
<h1 id="title">Wheel Reinvention Jam</h1>
<h2 id="dates">August 15 - 21, 2O22</h2>
<div id="tagline" class="center">
<div id="tagline" class="tc">
A one-week jam to change the status quo.
{{ if gt .DaysUntilEnd 0 }}
{{ if eq .DaysUntilStart 0 }}

View File

@ -13,7 +13,7 @@
<div id="top-container" class="flex flex-column items-center ph3">
<a href="{{ .JamUrl }}"><h1 id="title">Visibility Jam</h1></a>
<h2 id="dates">April 14 - 16, 2O23</h2>
<div id="tagline" class="center">See things in a new way.</div>
<div id="tagline" class="tc">See things in a new way.</div>
</div>
<div class="section pt4 pb3 pb4-ns">

View File

@ -21,7 +21,7 @@ $discordInviteURL := "https://discord.gg/hmn" }}
<img id="logo" src="{{ static "visjam2023/logo.svg" }}">
<h1 id="title">Visibility Jam</h1>
<h2 id="dates">April 14 - 16, 2O23</h2>
<div id="tagline" class="center">
<div id="tagline" class="tc">
See things in a new way.
{{ if gt .DaysUntilEnd 0 }}
{{ if eq .DaysUntilStart 0 }}

View File

@ -15,7 +15,7 @@
<h1 id="title">Visibility Jam</h1>
</a>
<h2 id="dates">April 14 - 16, 2O23</h2>
<div id="tagline" class="center">See things in a new way.</div>
<div id="tagline" class="tc">See things in a new way.</div>
</div>
<div class="section pt4 pb3 pb4-ns">

View File

@ -15,7 +15,7 @@
<div id="top-container" class="flex flex-column items-center ph3">
<h1 id="title">Wheel Reinvention Jam</h1>
<h2 id="dates">September 25 - October 1, 2023</h2>
<div id="tagline" class="center">
<div id="tagline" class="tc">
A one-week jam to change the status quo.
</div>
</div>

View File

@ -32,7 +32,7 @@
<img id="logo" src="{{ static "wheeljam2023/logo.svg" }}">
<h1 id="title">Wheel Reinvention Jam</h1>
<h2 id="dates">September 25 - October 1, 2023</h2>
<div id="tagline" class="center">
<div id="tagline" class="tc">
A one-week jam where you start from scratch.
{{ if gt .DaysUntilEnd 0 }}
{{ if eq .DaysUntilStart 0 }}

View File

@ -346,7 +346,7 @@
</head>
<body>
<div class="left white">
<div class="white">
<div class="mt4-ns mw8 m--center ph3-m ph4-l">
{{ template "header.html" . }}
</div>

View File

@ -1,54 +0,0 @@
{{/*
This is a copy-paste from base.html because we want to preserve the unique
style of landing pages if we change base.html in the future.
*/}}
<!DOCTYPE html{{ if .OpenGraphItems }} prefix="og: http://ogp.me/ns#"{{ end }}>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/png" sizes="16x16" href="{{ static "visjam2023/favicon-16x16.png" }}">
<link rel="icon" type="image/png" sizes="32x32" href="{{ static "visjam2023/favicon-32x32.png" }}">
{{ if .CanonicalLink }}<link rel="canonical" href="{{ .CanonicalLink }}">{{ end }}
{{ range .OpenGraphItems }}
{{ if .Property }}
<meta property="{{ .Property }}" content="{{ .Value }}" />
{{ else }}
<meta name="{{ .Name }}" content="{{ .Value }}" />
{{ end }}
{{ end }}
{{ if .Title }}
<title>{{ .Title }} | Handmade Network</title>
{{ else }}
<title>Handmade Network</title>
{{ end }}
<meta name="theme-color" content="#346ba6">
<script src="{{ static "js/templates.js" }}"></script>
<link rel="stylesheet" href="{{ static "fonts/mohave/stylesheet.css" }}">
<link href='https://fonts.googleapis.com/css?family=Fira+Sans:300,400,500,600' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Fira+Mono:300,400,500,700' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="{{ static "style.css" }}">
</head>
<body>
<div class="left white">
<div class="mt4-ns mw8 m--center ph3-m ph4-l">
{{ template "header.html" . }}
</div>
<div class="jam-sections">
{{ block "content" . }}{{ end }}
</div>
<div class="mw8 m--center ph3-m ph4-l">
{{ template "footer.html" . }}
</div>
</div>
</body>
</html>

View File

@ -1,13 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>{{ block "title" . }}Handmade Network{{ end }}</title>
</head>
<body>
{{ block "content" . }}{{ end }}
{{ template "footer.html" . }}
</body>
</html>

View File

@ -197,7 +197,7 @@
</head>
<body>
<div class="left white">
<div class="white">
<div class="mt4-ns mw7 m--center ph3-ns">
{{ template "header.html" . }}
</div>

View File

@ -339,7 +339,7 @@
</head>
<body>
<div class="left white">
<div class="white">
<div class="mt4-ns mw8 m--center ph3-m ph4-l">
{{ template "header.html" . }}
</div>

View File

@ -342,7 +342,7 @@
</head>
<body>
<div class="left white">
<div class="white">
<div class="mt4-ns mw8 m--center ph3-m ph4-l">
{{ template "header.html" . }}
</div>

View File

@ -78,7 +78,6 @@ type Footer struct {
CodeOfConductUrl string
CommunicationGuidelinesUrl string
ProjectIndexUrl string
RolesUrl string
ContactUrl string
SearchActionUrl string
}

View File

@ -87,7 +87,6 @@ func getBaseData(c *RequestContext, title string, breadcrumbs []templates.Breadc
ManifestoUrl: hmnurl.BuildManifesto(),
CommunicationGuidelinesUrl: hmnurl.BuildCommunicationGuidelines(),
ProjectIndexUrl: hmnurl.BuildProjectIndex(1, ""),
RolesUrl: hmnurl.BuildStaffRolesIndex(),
ContactUrl: hmnurl.BuildContactPage(),
SearchActionUrl: "https://duckduckgo.com",
},

View File

@ -1,107 +0,0 @@
package website
import (
"net/http"
"git.handmade.network/hmn/hmn/src/hmnurl"
"git.handmade.network/hmn/hmn/src/templates"
)
type Role struct {
Slug string
Name string
Description string
Template string
Url string // weird and redundant
RedirectSlug string
}
var roles = []Role{
{
Slug: "education",
Name: "Education Lead",
Description: "Lead our flagship education initiative and make sure we're putting out a steady stream of content.",
Template: "role_education.html",
Url: hmnurl.BuildStaffRole("education"),
},
{
Slug: "advocacy",
Name: "Advocacy Lead",
Description: "Put the Handmade ethos into the world by advocating for better software and better programming practices.",
Template: "role_advocacy.html",
Url: hmnurl.BuildStaffRole("advocacy"),
},
{
Slug: "design",
Name: "Design Lead",
Description: "Set the visual direction for everything we do. Make key art, design website features, and more.",
Template: "role_design.html",
Url: hmnurl.BuildStaffRole("design"),
},
}
const StaffRolesIndexName = "Roles"
func StaffRolesIndex(c *RequestContext) ResponseData {
type TemplateData struct {
templates.BaseData
Roles []Role
}
var res ResponseData
res.MustWriteTemplate("roles.html", TemplateData{
BaseData: getBaseDataAutocrumb(c, StaffRolesIndexName),
Roles: roles,
}, c.Perf)
return res
}
func StaffRole(c *RequestContext) ResponseData {
type TemplateData struct {
templates.BaseData
Role Role
OtherRoles []Role
}
slug := c.PathParams["slug"]
role, ok := getRole(slug)
if !ok {
return FourOhFour(c) // TODO: Volunteering-specific 404
}
if role.RedirectSlug != "" {
return c.Redirect(hmnurl.BuildStaffRole(role.RedirectSlug), http.StatusSeeOther)
}
var otherRoles []Role
for _, otherRole := range roles {
if otherRole.Slug == role.Slug {
continue
}
otherRoles = append(otherRoles, otherRole)
if len(otherRoles) >= 3 {
break
}
}
var res ResponseData
res.MustWriteTemplate(role.Template, TemplateData{
BaseData: getBaseData(c, role.Name, []templates.Breadcrumb{
{Name: StaffRolesIndexName, Url: hmnurl.BuildStaffRolesIndex()},
{Name: role.Name, Url: ""},
}),
Role: role,
OtherRoles: otherRoles,
}, c.Perf)
return res
}
func getRole(slug string) (Role, bool) {
for _, role := range roles {
if role.Slug == slug {
return role, true
}
}
return Role{}, false
}

View File

@ -82,9 +82,6 @@ func NewWebsiteRoutes(conn *pgxpool.Pool) http.Handler {
hmnOnly.GET(hmnurl.RegexCalendarIndex, CalendarIndex)
hmnOnly.GET(hmnurl.RegexCalendarICal, CalendarICal)
hmnOnly.GET(hmnurl.RegexStaffRolesIndex, StaffRolesIndex)
hmnOnly.GET(hmnurl.RegexStaffRole, StaffRole)
hmnOnly.GET(hmnurl.RegexOldHome, Index)
hmnOnly.POST(hmnurl.RegexLoginAction, securityTimerMiddleware(time.Millisecond*100, Login))

View File

@ -27,21 +27,13 @@ func Manifesto(c *RequestContext) ResponseData {
func About(c *RequestContext) ResponseData {
type TemplateData struct {
templates.BaseData
FoundationUrl string
RolesUrl string
EducationLeadUrl string
AdvocacyLeadUrl string
DesignLeadUrl string
FoundationUrl string
}
var res ResponseData
res.MustWriteTemplate("about.html", TemplateData{
BaseData: getBaseDataAutocrumb(c, "About"),
FoundationUrl: hmnurl.BuildFoundation(),
RolesUrl: hmnurl.BuildStaffRolesIndex(),
EducationLeadUrl: hmnurl.BuildStaffRole("education"),
AdvocacyLeadUrl: hmnurl.BuildStaffRole("advocacy"),
DesignLeadUrl: hmnurl.BuildStaffRole("design"),
BaseData: getBaseDataAutocrumb(c, "About"),
FoundationUrl: hmnurl.BuildFoundation(),
}, c.Perf)
return res
}

View File

@ -40,4 +40,5 @@ nodemon --exec "esbuild src\rawdata\scss\style.css --bundle --loader:.ttf=file -
- [ ] Reduce saturation of --background-even-background
- [ ] Update blog styles to not use `post` and other garbage
- [ ] Remove from forum.css
- [ ] Remove all uses of .content-block
- [ ] Remove all uses of .content-block
- [ ] Figure out what's up with the projects on the jam pages