init commit

This commit is contained in:
Sophia Atkinson 2024-08-20 23:05:39 -07:00
commit 0f90d0ec4b
Signed by: Sophia
GPG Key ID: 73928E5CCCD28BE1
35 changed files with 10389 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
exampleSite/public/
resources/

6
archetypes/default.md Normal file
View File

@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
tags: []
---

827
assets/js/bundle.js Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,9 @@
import globals from "globals";
import pluginJs from "@eslint/js";
export default [
{files: ["**/*.js"], languageOptions: {sourceType: "commonjs"}},
{languageOptions: { globals: globals.browser }},
pluginJs.configs.recommended,
];

65
assets/scss/_custom.scss Normal file
View File

@ -0,0 +1,65 @@
:root {
--text-color: #fff;
--background: #383C4A;
--background-darker: #2E323E;
--background-darkest: #2A2D38;
--blue: #5BCEFA;
--pink: #F5A9B8;
--blurple: #7289DA;
--dark-blurple: #4E5D94;
--href: var(--blurple);
--href-darker: var(--dark-blurple);
--main-font: "OpenDyslexic2";
}
#shadow img {
position: relative;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2), 0 6px 20px rgba(0, 0, 0, 0.15);
border-radius: 25px;
}
.pulse {
animation: pulse 1s infinite ease-in-out alternate;
}
@keyframes pulse {
from {
transform: scale(0.8);
}
to {
transform: scale(1.2);
}
}
#wordmark {
filter: drop-shadow(2px 2px 4px #222);
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#universe .grid-container {
padding-top: 2px;
align-items: center;
box-sizing: border-box;
display: flex;
flex-wrap: wrap;
}
#universe figure {
text-align: center;
padding: 5px;
}
#universe figcaption {
background-color: var(--blurple);
}
#universe figure img {
border-radius: 2px;
background-color: var(--dark-blurple);
padding-bottom: 0;
height: 475px;
width: 260px;
}

23
assets/scss/_fonts.scss Normal file
View File

@ -0,0 +1,23 @@
@font-face {
font-family: 'OpenDyslexic2';
src: url('/content/opendyslexic/OpenDyslexic-Regular.otf');
font-weight: normal;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'OpenDyslexic2';
src: url('/content/opendyslexic/OpenDyslexic-Bold.otf');
font-weight: bold;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'OpenDyslexic2';
src: url('/content/opendyslexic/OpenDyslexic-Italic.otf');
font-weight: normal;
font-style: italic;
font-display: swap;
}

2780
assets/scss/_pressbook.scss Normal file

File diff suppressed because it is too large Load Diff

4640
assets/scss/_wordpress.scss Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,12 @@
@charset "UTF-8";
/*
Cook The Books v2.1.0
Licensed under CC BY-SA 4.0
Copyright 2022-2024 Oldgate Studios
Copyright 2019-2024 ScriptsTown
Copyright 2003-2024 The WordPress.org Team
*/
@import 'fonts';
@import 'custom';
@import 'pressbook';
@import 'wordpress';

149
data/principles.json Normal file
View File

@ -0,0 +1,149 @@
{
"title": "Inclusive Design Principles",
"description": "<p>These Inclusive Design Principles are about putting people first. It's about designing for the needs of people with permanent, temporary, situational, or changing disabilities — all of us really.</p><p>They are intended to give anyone involved in the design and development of websites and applications - designers, user experience professionals, developers, product owners, idea makers, innovators, artists and thinkers - a broad approach to inclusive design.</p><p>For more background, read about the <a href=\"https://www.paciellogroup.com/blog/2017/06/inclusive-design-principles/\">Inclusive Design Principles</a> on the TPG blog.</p>",
"authors": [
"Léonie Watson",
"Henny Swan",
"Ian Pouncey",
"Heydon Pickering"
],
"principles": [
{
"title": "Provide comparable experience",
"strapline": "Ensure your interface provides a comparable experience for all so people can accomplish tasks in a way that suits their needs without undermining the quality of the content.",
"description": "Whether out of circumstance, choice, or context people are diverse. As people use different approaches and tools to read and operate interfaces, what the interface offers each user should be comparable in value, quality, and efficiency.",
"examples": [
{
"title": "Content for alternatives",
"description": "Having a basic alternative, whether it's alt text, a transcript, audio description, or sign language, makes the content accessible but to be equivalent it needs to capture the essence of the original."
},
{
"title": "Ergonomic features",
"description": "Providing synchronized closed captions makes your video accessible. But making them customizable, color coded, and repositionable provides a more comparable experience."
},
{
"title": "Notifications",
"description": "Notifications that appear in an interface are visually obvious but require proactive discovery by screen reader users. A comparable experience for blind users, can be achieved by using a live region. The notification then requires no explicit action on the part of the user."
}
]
},
{
"title": "Consider situation",
"strapline": "People use your interface in different situations. Make sure your interface delivers a valuable experience to people regardless of their circumstances.",
"description": "People are first time users, established users, users at work, users at home, users on the move, and users under pressure. All of these situations can have an impact. For those who already find interaction challenging, such as those with disabilities, this impact may make usage particularly difficult.",
"examples": [
{
"title": "Colour contrast",
"description": "When using an interface outdoors, good contrast lessens the impact of bright sunshine."
},
{
"title": "Context sensitive help",
"description": "Users may need help when they first encounter a complex form or interaction. This help may become redundant, even distracting, as a user becomes more familiar with the form or interaction. Context sensitive help provides the user with choice as to when they access help and better control over the page."
},
{
"title": "Captions on the go",
"description": "You're aware that the video content you are providing will be consumed on mobile devices, which may be in public spaces where people might prefer to consume the content without being antisocial. For smaller viewports, sound is switched off and captions activated by default."
}
]
},
{
"title": "Be consistent",
"strapline": "Use familiar conventions and apply them consistently.",
"description": "Familiar interfaces borrow from well-established patterns. These should be used consistently within the interface to reinforce their meaning and purpose. This should be applied to functionality, behavior, editorial, and presentation. You should say the same things in the same way and users should be able to do the same things in the same way.",
"examples": [
{
"title": "Consistent design patterns",
"description": "Use consistent web and platform design patterns to help build familiarity and understanding."
},
{
"title": "Consistent editorial",
"description": "Use plain language consistently across platforms including editorial that is relied on by screen reader users such as text alternatives, headings, labels for buttons and so on. Keeping editorial style consistent is also important e.g. making sure the top of the article always has a clearly marked summary paragraph, making sure bullets always start with a bolded definition."
},
{
"title": "Consistent page architecture",
"description": "Use consistent page architecture across templates to help people scan and navigate key content."
}
]
},
{
"title": "Give control",
"strapline": "Ensure people are in control. People should be able to access and interact with content in their preferred way.",
"description": "Do not suppress or disable the ability to change standard browser and platform settings such as orientation, font size, zoom, and contrast. In addition, avoid content changes that have not been initiated by the user unless there is a way to control it.",
"examples": [
{
"title": "Scrolling control",
"description": "'Infinite scrolling' can be problematic, especially for users navigating by keyboard because they can't get past the stream of refreshing content. Give the option to turn off this feature and replace it with a 'load more' button."
},
{
"title": "Make it stop",
"description": "Some users find that animations or parallax scrolling cause nausea, and others find them plain distracting. Where they play automatically, they should at least be easy to stop, by providing prominent playback controls."
},
{
"title": "Allow zoom",
"description": "There are many reasons why a user may want to operate the pinch-to-zoom gesture on their touch device. Make sure it is not suppressed, and that the content does not get obscured when it is put to use."
}
]
},
{
"title": "Offer choice",
"strapline": "Consider providing different ways for people to complete tasks, especially those that are complex or non standard.",
"description": "There is often more than one way to complete a task. You cannot assume what someone's preferred way might be. By providing alternatives for layout and task completion, you offer people choices that suit them and their circumstances at the time.",
"examples": [
{
"title" : "Multiple ways to complete an action",
"description": "Where appropriate, provide multiple ways to complete an action. On mobile swipe to delete an item can be supported together with an edit button that allows you to select items then delete. An example of this is in iOS mail."
},
{
"title": "Layout",
"description": "Where there are long lists of content consider offering a grid or list layout option. This supports people who may want larger images on screen or smaller rows."
},
{
"title": "Accessible alternatives",
"description": "Alternative ways of presenting data, such as data tables for info graphics, should be available to all users, as an option rather than a hidden link just for screen reader users. Accessible alternatives can benefit not just a specific target group but all users as long as we offer the choice."
}
]
},
{
"title": "Prioritise content",
"strapline": "Help users focus on core tasks, features, and information by prioritising them within the content and layout.",
"description": "Interfaces can be difficult to understand when core features are not clearly exposed and prioritised. A site or application may provide lots of information and functionality, but people should be able to focus on one thing at a time. Identify the core purpose of the interface, and then the content and features needed to fulfill that purpose.",
"examples": [
{
"title": "Keep task focused",
"description": "Progressively reveal features and content when needed, not all in one go."
},
{
"title": "Prioritising tasks",
"description": "An email application is principally for writing and reading email. The 'compose' button is, therefore, present on all screens, and early in the focus order. The inbox is prioritised over other lists of email, such as 'sent' and 'spam' messages. Less used features such as tagging or organizing email into folders appear later in the focus order, as they will generally only be used when the primary task of reading the email is complete."
},
{
"title": "Prioritising content",
"description": "The primary content on a news article page is the story, therefore it should come before other content, both visually and in the source order. Related content, such as similar articles, should follow it, and unrelated content after that."
},
{
"title": "Prioritising editorial",
"description": "Editorial for links, headings and buttons should use plain language and put the primary text first. This applies to both visible and hidden text. This makes the text easy to scan both visually and audibly for screen reader users. Plain language also benefits non native speakers and is easier to translate."
}
]
},
{
"title": "Add value",
"strapline": "Consider the value of features and how they improve the experience for different users.",
"description": "Features should add value to the user experience by providing efficient and diverse ways to find and interact with content. Consider device features such as voice, geolocation, camera and vibration API's, and how integration with connected devices or a second screen could provide choice.",
"examples": [
{
"title": "Integration with connected devices or second screen",
"description": "Using voice interfaces to control multimedia, search for content, output from music or TV adds value for people who struggle to use other interfaces."
},
{
"title": "Integration with platform APIs",
"description": "Enhance functionality using platform features. The vibration API makes notifications more usable by deaf and hard of hearing people while the geolocation API makes it easier for people with mobility impairments to use location based services."
},
{
"title": "Make task completion easier",
"description": "Add a 'Show password' button to input fields so users can verify they have correctly inputted text, or add touch identification for password protected areas."
}
]
}
]
}

1427
data/wcag.json Normal file

File diff suppressed because it is too large Load Diff

20
i18n/en.yaml Normal file
View File

@ -0,0 +1,20 @@
projects:
one: Project
other: Projects
resources:
one: Resource
other: Resources
sub-menu-toggle:
other: Toggle Sub Menu
primary-menu-toggle:
other: Toggle Primary Menu
skip-to-content:
other: Skip To Content
primary-menu:
other: Primary Menu
not-for-production:
other: NOT FOR PRODUCTION USE
go-to-top:
other: Go to top
homepage:
other: Homepage

22
layouts/404.html Normal file
View File

@ -0,0 +1,22 @@
{{ define "main" }}
<div id="content" class="site-content">
<div class="ctb-content-sidebar u-wrapper">
<main id="primary" class="site-main">
<article class="ctb-article ctb-singular page type-page hentry">
<div class="ctb-content">
<div class="entry-content has-text-align-center">
<h1 class="block-heading pulse">404</h1>
<h2 class="block-heading">Lost in cyberspace!</h2>
<p class="block-heading">Uh-oh! It seems like the page you're looking for has gone on an unexpected interstellar journey. We're currently navigating through the digital cosmos to retrieve it.</p>
<div class="block-image">
<figure class="aligncenter size-full">
<img loading="lazy" decoding="async" width="auto" height="512px" src="https://git.oldgate.org/OGS/Branding/raw/branch/main/Characters/vector/white/white-404-ojer.svg" alt="">
</figure>
</div>
</div>
</div>
</article>
</main>
</div>
</div>
{{ end }}

22
layouts/_default/403.html Normal file
View File

@ -0,0 +1,22 @@
{{ define "main" }}
<div id="content" class="site-content">
<div class="ctb-content-sidebar u-wrapper">
<main id="primary" class="site-main">
<article class="ctb-article ctb-singular page type-page hentry">
<div class="ctb-content">
<div class="entry-content has-text-align-center">
<h1 class="block-heading pulse">403</h1>
<h2 class="block-heading">The Path Ahead Is Forbidden</h2>
<p class="block-heading">We regret to inform you that the journey you are attempting to embark upon has been deemed forbidden. You stand at the threshold of a path barred by digital locks and guarded by impenetrable gates.</p>
<div class="block-image">
<figure class="aligncenter size-full">
<img loading="lazy" decoding="async" width="auto" height="512px" src="https://git.oldgate.org/OGS/Branding/raw/branch/main/Characters/vector/white/white-stop-ojer.svg" alt="">
</figure>
</div>
</div>
</div>
</article>
</main>
</div>
</div>
{{ end }}

View File

@ -0,0 +1 @@
<img decoding="async" loading="lazy" src="{{ .Destination | safeURL }}" alt="{{ .Text }}"{{ with .Title }} title="{{ . }}"{{ end }} />

View File

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html lang="{{ .Site.Language.Lang }}">
<head>
<title>
{{ if .IsHome }}
{{ .Site.Title }} - {{ .Site.Params.tagline }}
{{ else }}
{{ .Title }} - {{ .Site.Title }}
{{ end }}
</title>
{{ partial "head.html" . }}
</head>
<body class="{{ if eq .Type "page" }}page-template-default page{{ else if eq .Type "post" }}post-template-default post{{ else }}page-template-default page{{ end }}">
<div id="{{ if eq .Type "page" }}page{{ else if eq .Type "post" }}post{{ else }}page{{ end }}" class="site">
{{ partial "header.html" . }}
{{ block "main" . }}{{ end }}
{{ partial "footer.html" . }}
{{ partial "script.html" . }}
</div>
</body>
</html>

View File

@ -0,0 +1,18 @@
{{ define "main" }}
<div id="content" class="site-content">
<div class="ctb-content-sidebar u-wrapper">
<main id="primary" class="site-main">
<article class="ctb-article ctb-singular page type-page hentry">
{{ partial "title.html" . }}
<div class="ctb-content">
<div class="entry-content">
<div class="block-columns is-layout-flex">
{{ .Content }}
</div>
</div>
</div>
</article>
</main>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,34 @@
{{ define "main" }}
<div id="content" class="site-content">
<div class="ctb-content-sidebar u-wrapper">
<main id="primary" class="site-main">
<article class="ctb-article ctb-singular page type-page hentry">
{{ partial "title.html" . }}
<div class="ctb-content">
<div class="entry-content">
<ul class="posts-list">
{{ range where .Paginator.Pages "Type" "!=" "page" }}
<li class="posts-list-item">
<a class="posts-list-item-title" href="{{ .Permalink }}">{{ .Title }}</a>
<span class="posts-list-item-description">
<svg class="svg-icon" width="16" height="16" viewBox="0 0 .48 .48" fill="none" stroke="#fff" xmlns="http://www.w3.org/2000/svg">
<path d="M.024.168h.432M.12.024v.048M.36.024v.048M.096.24h.048m.072 0h.048m.072 0h.048M.096.312h.048m.072 0h.048m.072 0h.048M.096.384h.048m.072 0h.048m.072 0h.048M.101.456h.278c.027 0 .04 0 .05-.005A.048.048 0 00.452.43C.456.42.456.406.456.38V.148c0-.027 0-.04-.005-.05A.048.048 0 00.43.076C.42.072.406.072.38.072H.1c-.026 0-.04 0-.05.005a.048.048 0 00-.02.021C.023.108.023.122.023.148V.38c0 .027 0 .04.005.05A.048.048 0 00.05.452C.06.456.074.456.1.456z" stroke-width=".048" stroke-linecap="round"/>
</svg>
{{ .PublishDate.Format "Jan 2, 2006" }}
<span class="posts-list-item-separator">-</span>
<svg class="svg-icon" width="16" height="16" viewBox="0 0 6 6" fill="none" stroke="#fff" xmlns="http://www.w3.org/2000/svg">
<path d="M3 4.448V3l-.734-.434M5.642 3c0 1.44-1.183 2.606-2.642 2.606C1.541 5.606.358 4.44.358 3 .358 1.56 1.541.394 3 .394 4.459.394 5.642 1.56 5.642 3z" stroke-width=".583" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
{{ .ReadingTime }} min read
</span>
</li>
{{ end }}
</ul>
</div>
</div>
{{ partial "pagination.html" $ }}
</article>
</main>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,15 @@
{{ define "main" }}
<div id="content" class="site-content">
<div class="ctb-content-sidebar u-wrapper">
<main id="primary" class="site-main">
<article class="ctb-article ctb-singular page type-page hentry">
<div class="ctb-content">
<div class="entry-content">
{{ .Content }}
</div>
</div>
</article>
</main>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,16 @@
{{ define "main" }}
<div id="content" class="site-content">
<div class="ctb-content-sidebar u-wrapper">
<main id="primary" class="site-main">
<article class="ctb-article ctb-singular page type-page hentry">
{{ partial "title.html" . }}
<div class="ctb-content">
<div class="entry-content">
{{ .Content }}
</div>
</div>
</article>
</main>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,24 @@
{{ printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\" ?>" | safeHTML }}
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
{{ range .Data.Pages }}
{{- if or (eq (isset .Params "sitemapexclude") false) (ne .Params.sitemapexclude true) }}
<url>
<loc>{{ .Permalink }}</loc>{{ if not .Lastmod.IsZero }}
<lastmod>{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod>{{ end }}{{ with .Sitemap.ChangeFreq }}
<changefreq>{{ . }}</changefreq>{{ end }}{{ if ge .Sitemap.Priority 0.0 }}
<priority>{{ .Sitemap.Priority }}</priority>{{ end }}{{ if .IsTranslated }}{{ range .Translations }}
<xhtml:link
rel="alternate"
hreflang="{{ .Language.Lang }}"
href="{{ .Permalink }}"
/>{{ end }}
<xhtml:link
rel="alternate"
hreflang="{{ .Language.Lang }}"
href="{{ .Permalink }}"
/>{{ end }}
</url>
{{- end }}
{{ end }}
</urlset>

3
layouts/index.html Normal file
View File

@ -0,0 +1,3 @@
{{ define "main" }}
{{ partial "home.html" . }}
{{ end }}

View File

@ -0,0 +1,10 @@
<div class="site-branding">
<div class="u-wrapper site-branding-wrap">
<a href="{{ .Site.BaseURL | safeURL }}" aria-label="{{ i18n "homepage" }}">
<img id="wordmark"
src="{{ with .Site.Params.wordmark.image }}{{ . | safeURL }}{{ end }}"
alt="{{ with .Site.Params.wordmark.alt }}{{ . }}{{ end }}"
loading="lazy" />
</a>
</div>
</div>

View File

@ -0,0 +1,15 @@
{{ if not .Site.Params.footeroff }}
<footer id="colophon" class="site-footer">
<div class="copyright-text">
<div class="u-wrapper copyright-text-wrap">
<p>{{ with .Site.Params.copyright }} {{ . }} {{ end }}
{{ if not .Site.Params.production }}
<br>
<strong>[{{ i18n "not-for-production" }}]</strong>
{{ end }}
</p>
</div>
</div>
</footer>
{{ end }}
<a href="#" class="go-to-top" aria-label="{{ i18n "go-to-top" }}"></a>

View File

@ -0,0 +1,32 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{{ hugo.Generator }}
<link rel="canonical" href="{{ .Permalink }}" />
<link rel="dns-prefetch" href="{{ .Site.Params.cdnURL }}">
<link rel="apple-touch-icon" sizes="180x180" href="{{ if hugo.IsServer }}{{ "apple-touch-icon.png" | absURL }}{{ else }}{{ .Site.Params.cdnURL }}/apple-touch-icon.png{{ end }}">
<link rel="icon" type="image/png" sizes="32x32" href="{{ if hugo.IsServer }}{{ "favicon-32x32.png" | absURL }}{{ else }}{{ .Site.Params.cdnURL }}/favicon-32x32.png{{ end }}">
<link rel="icon" type="image/png" sizes="16x16" href="{{ if hugo.IsServer }}{{ "favicon-16x16.png" | absURL }}{{ else }}{{ .Site.Params.cdnURL }}/favicon-16x16.png{{ end }}">
<link rel="mask-icon" href="{{ if hugo.IsServer }}{{ "safari-pinned-tab.svg" | absURL }}{{ else }}{{ .Site.Params.cdnURL }}/safari-pinned-tab.svg{{ end }}" color="{{ .Site.Params.hexcolour }}">
<meta name="keywords" content="{{ .Site.Params.keywords }}">
<meta name="msapplication-TileColor" content="{{ .Site.Params.hexcolour}}">
<meta name="theme-color" content="{{ .Site.Params.hexcolour}}">
{{ template "_internal/opengraph.html" . }}
{{ $cond := "" }}
{{ if .IsHome }}
{{ with .Site.Params.description }}
{{ $cond = . | plainify }}
{{ end }}
{{ else }}
{{ $cond = trim (.Summary | plainify | htmlUnescape) "\n\r" | default .Title }}
{{ end }}
<meta name="description" content="{{ $cond }}">
<meta name="author" content="{{ .Params.author | default "Unknown" }}">
{{ $cssOpts := (dict "targetPath" "css/styles.css" "enableSourceMap" hugo.IsServer ) }}
{{ $styles := resources.Get "scss/template-styles.scss" | resources.ExecuteAsTemplate "style.styles.css" . | toCSS $cssOpts }}
{{ if hugo.IsServer }}
<link rel="stylesheet" href="{{ $styles.RelPermalink }}" media="screen">
{{ else }}
{{ $minifiedStyles := $styles | minify | fingerprint }}
<link rel="stylesheet" href="{{ .Site.Params.cdnURL }}{{ $minifiedStyles.RelPermalink }}" integrity="{{ $minifiedStyles.Data.Integrity }}" crossorigin="anonymous" media="screen" />
{{ end }}
{{ partial "noscript.html" . }}

View File

@ -0,0 +1,5 @@
<a class="skip-link screen-reader-text" href="#content">{{ i18n "skip-to-content" }}</a>
<header id="masthead" class="site-header">
{{ partial "branding.html" . }}
{{ partial "navbar.html" . }}
</header>

View File

@ -0,0 +1,13 @@
<div id="content" class="site-content">
<div class="ctb-content-sidebar u-wrapper">
<main id="primary" class="site-main">
<article class="ctb-article ctb-singular page type-page hentry">
<div class="ctb-content">
<div class="entry-content">
{{ .Content }}
</div>
</div>
</article>
</main>
</div>
</div>

View File

@ -0,0 +1,53 @@
<li class="menu-item menu-item-has-children">
<button class="main-navigation-arrow-btn" aria-expanded="false">
<span class="screen-reader-text">{{ i18n "sub-menu-toggle" }}</span>
<a href="#">{{ i18n "projects" }}</a>
<svg class="svg-icon" width="24" height="24" version="1.1" id="svg3" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
<defs id="defs1">
<path d="m 0,4.125 h 48 v 6 H 0 Z m 0,0" fill="#5bcefa" id="aXRKiF9KfND" />
<path d="m 0,20.625 h 36 v 6 H 0 Z m 0,0" fill="#ffffff" id="bEbTfLzOf3X" />
<path d="m 0,37.125 h 24 v 6 H 0 Z m 0,0" fill="#f5a9b8" id="cCW18mz3Gnz" />
</defs>
<use xlink:href="#aXRKiF9KfND" mask="url(#f)" transform="matrix(0.375,0,0,0.35897436,3,3.5192308)" id="use1" />
<use xlink:href="#bEbTfLzOf3X" mask="url(#h)" transform="matrix(0.375,0,0,0.35897436,3,3.5192308)" id="use2" />
<use xlink:href="#cCW18mz3Gnz" mask="url(#j)" transform="matrix(0.375,0,0,0.35897436,3,3.5192308)" id="use3" />
</svg>
</button>
<ul class="sub-menu">
{{ with .Site.Menus.projects }}
{{ range sort . }}
<li class="menu-item menu-item-type-post_type menu-item-object-page">
<a href="{{ .URL }}" {{ if eq $.RelPermalink .URL }} class="active" {{ end }}>{{ .Name }}</a>
</li>
{{ end }}
{{ end }}
</ul>
</li>
<li class="menu-item menu-item-has-children">
<button class="main-navigation-arrow-btn" aria-expanded="false">
<span class="screen-reader-text">{{ i18n "sub-menu-toggle" }}</span>
<a href="#">{{ i18n "resources" }}</a>
<svg class="svg-icon" width="24" height="24" version="1.1" id="svg3" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
<defs id="defs1">
<path d="m 0,4.125 h 48 v 6 H 0 Z m 0,0" fill="#5bcefa" id="aXRKiF9KfND" />
<path d="m 0,20.625 h 36 v 6 H 0 Z m 0,0" fill="#ffffff" id="bEbTfLzOf3X" />
<path d="m 0,37.125 h 24 v 6 H 0 Z m 0,0" fill="#f5a9b8" id="cCW18mz3Gnz" />
</defs>
<use xlink:href="#aXRKiF9KfND" mask="url(#f)" transform="matrix(0.375,0,0,0.35897436,3,3.5192308)" id="use1" />
<use xlink:href="#bEbTfLzOf3X" mask="url(#h)" transform="matrix(0.375,0,0,0.35897436,3,3.5192308)" id="use2" />
<use xlink:href="#cCW18mz3Gnz" mask="url(#j)" transform="matrix(0.375,0,0,0.35897436,3,3.5192308)" id="use3" />
</svg>
</button>
<ul class="sub-menu">
{{ with .Site.Menus.resources }}
{{ range sort . }}
<li class="menu-item menu-item-type-post_type menu-item-object-page">
<a href="{{ .URL }}" {{ if eq $.RelPermalink .URL }} class="active" {{ end }}>{{ .Name }}</a>
</li>
{{ end }}
{{ end }}
</ul>
</li>

View File

@ -0,0 +1,43 @@
{{ if not .Site.Params.navbaroff }}
<div class="primary-navbar">
<div class="u-wrapper primary-navbar-wrap">
<nav id="site-navigation" class="main-navigation main-navigation--touch" aria-label="{{ i18n "primary-menu" }}">
<button class="primary-menu-toggle" aria-controls="primary-menu" aria-expanded="false"
aria-label="{{ i18n "primary-menu-toggle" }}">
<svg class="svg-icon" width="24" height="24" version="1.1" id="svg3" xml:space="preserve" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
<defs id="defs1">
<path d="m 0,4.125 h 48 v 6 H 0 Z m 0,0" fill="#5bcefa" id="arC7LGJHqIl" />
<path d="m 0,20.625 h 48 v 6 H 0 Z m 0,0" fill="#ffffff" id="btvA0con2GG" />
<path d="m 0,37.125 h 48 v 6 H 0 Z m 0,0" fill="#f5a9b8" id="c0HevgVXuEU" />
</defs>
<use xlink:href="#arC7LGJHqIl" mask="url(#f)" transform="matrix(0.375,0,0,0.35897436,3,3.5192308)" id="use1" />
<use xlink:href="#btvA0con2GG" mask="url(#h)" transform="matrix(0.375,0,0,0.35897436,3,3.5192308)" id="use2" />
<use xlink:href="#c0HevgVXuEU" mask="url(#j)" transform="matrix(0.375,0,0,0.35897436,3,3.5192308)" id="use3" />
</svg>
<svg class="svg-icon" width="24" height="24" version="1.1" id="svg3" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
<defs id="defs1">
<path d="m 0,4.125 h 48 v 6 H 0 Z m 0,0" fill="#5bcefa" id="a7GzjZ8qyzW" />
<path d="m 6,21 h 36 v 6 H 6 Z m 0,0" fill="#ffffff" id="bOr33eznzSN" />
<path d="m 12,37.024 h 24 v 6 H 12 Z m 0,0" fill="#f5a9b8" id="cTmbadvPD0z" />
</defs>
<use xlink:href="#a7GzjZ8qyzW" mask="url(#f)" transform="matrix(0.375,0,0,0.35990642,3,3.515386)" id="use1" />
<use xlink:href="#bOr33eznzSN" mask="url(#h)" transform="matrix(0.375,0,0,0.35990642,3,3.515386)" id="use2" />
<use xlink:href="#cTmbadvPD0z" mask="url(#j)" transform="matrix(0.375,0,0,0.35990642,3,3.515386)" id="use3" />
</svg>
</button>
<div class="menu-primary-container">
<ul id="primary-menu" class="menu nav-menu">
{{ with .Site.Menus.main }}
{{ range . }}
<li class="menu-item">
<a href="{{ .URL }}"{{ if eq $.RelPermalink .URL }} class="active"{{ end }}>{{ .Name }}</a>
</li>
{{ end }}
{{ end }}
{{ partial "manualnavbar.html" . }}
</ul>
</div>
</nav>
</div>
</div>
{{ end }}

View File

@ -0,0 +1,7 @@
<noscript>
<style>
.primary-navbar{
display: none;
}
</style>
</noscript>

View File

@ -0,0 +1,31 @@
{{ with $.Paginator }}
{{ if gt .TotalPages 1 }}
<ul class="pagination">
{{ with .Prev }}
<li class="page-item">
<a class="page-link" href="{{ .URL }}">
<svg class="svg-icon-prev" width="15" height="15" viewBox="0 0 6 6" fill="none" stroke="#fff" xmlns="http://www.w3.org/2000/svg">
<path d="M.375 3h5.25M.375 3L2.625.75M.375 3l2.25 2.25" stroke-width=".75" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</li>
{{ end }}
{{ range .Pagers }}
<li class="page-item{{ if eq .PageNumber $.Paginator.PageNumber }} active{{ end }}">
<a class="page-link" href="{{ .URL }}">{{ .PageNumber }}</a>
</li>
{{ end }}
{{ with .Next }}
<li class="page-item">
<a class="page-link" href="{{ .URL }}">
<svg class="svg-icon-next" width="15" height="15" viewBox="0 0 6 6" fill="none" stroke="#fff" xmlns="http://www.w3.org/2000/svg">
<path d="M5.625 3H.375m5.25 0L3.375.75M5.625 3l-2.25 2.25" stroke-width=".75" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</li>
{{ end }}
</ul>
{{ end }}
{{ end }}

View File

@ -0,0 +1,7 @@
{{ $script := resources.Get "js/bundle.js" }}
{{ $processedScript := $script | default $script }}
{{ if not hugo.IsServer }}
{{ $processedScript = $script | minify | fingerprint }}
{{ end }}
<script src="{{ if hugo.IsServer }}{{ $script.RelPermalink }}{{ else }}{{ .Site.Params.cdnURL }}{{ $processedScript.RelPermalink }}{{ end }}"></script>
<script>twemoji.parse(document.body)</script>

View File

@ -0,0 +1,5 @@
{{- with .Title -}}
<header class="entry-header">
<h1 id="title" class="entry-title">{{ . }}</h1>
</header>
{{- end -}}

20
layouts/post/single.html Normal file
View File

@ -0,0 +1,20 @@
{{ define "main" }}
<div id="content" class="site-content">
<div class="ctb-content-sidebar u-wrapper">
<main id="primary" class="site-main">
<article class="ctb-article ctb-singular post type-post hentry">
<header class="entry-header">
<h1 id="title" class="entry-title-center">{{ .Title }}</h1>
</header>
<div class="ctb-content">
<div class="entry-content">
{{ .Content }}
<hr>
<p class="has-text-align-center"><i><strong><sup>Written by {{ .Params.author | default "Unknown" }}<br>Approved by {{ .Params.approvedby | default "Unknown" }}</sup></strong></i></p>
</div>
</div>
</article>
</main>
</div>
</div>
{{ end }}

12
theme.toml Normal file
View File

@ -0,0 +1,12 @@
name = "Cook The Books"
version = "2.1.0"
license = "CC BY-SA 4.0"
licenselink = "https://creativecommons.org/licenses/by-sa/4.0/"
homepage = "https://git.oldgate.org/OGS/cookthebooks-hugo"
min_version = "0.109.0"
description = "The hugo theme used by Oldgate Studios!"
repository = "https://git.oldgate.org/OGS/cookthebooks-hugo"
[authors]
name = "Oldgate & Friends Dev Team"
homepage = "https://oldgate.org"