aboutsummaryrefslogtreecommitdiff
path: root/templates
diff options
context:
space:
mode:
authorGabriel A. Giovanini <mail@gabrielgio.me>2022-05-07 00:29:01 +0200
committerGabriel A. Giovanini <mail@gabrielgio.me>2022-05-07 00:29:01 +0200
commita16e8a21bb83325f8e40c13ef2d052393e2f6489 (patch)
tree9ce727b225308953e397a284d4f1fcd5cab75e63 /templates
parente7c5dc01cf3bf382c82dd6984808bd3ca21d33a5 (diff)
downloadmacroblog.rs-a16e8a21bb83325f8e40c13ef2d052393e2f6489.tar.gz
macroblog.rs-a16e8a21bb83325f8e40c13ef2d052393e2f6489.tar.bz2
macroblog.rs-a16e8a21bb83325f8e40c13ef2d052393e2f6489.zip
feat: Add early blog implementation
It is just a really crappy implementation to get it running until a figure the pieces of the project out.
Diffstat (limited to 'templates')
-rw-r--r--templates/head.html6
-rw-r--r--templates/header.html18
-rw-r--r--templates/index.html41
-rw-r--r--templates/pico.min.css888
-rw-r--r--templates/post.html13
-rw-r--r--templates/simple_header.html12
6 files changed, 942 insertions, 36 deletions
diff --git a/templates/head.html b/templates/head.html
new file mode 100644
index 0000000..cc1bdb8
--- /dev/null
+++ b/templates/head.html
@@ -0,0 +1,6 @@
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<title>Yet Another Blog</title>
+<style>
+ <% include!("pico.min.css"); %>
+</style>
diff --git a/templates/header.html b/templates/header.html
new file mode 100644
index 0000000..e55cebe
--- /dev/null
+++ b/templates/header.html
@@ -0,0 +1,18 @@
+<header class="container">
+ <nav class="container-fluid">
+ <ul>
+ <li><strong>Yet Another Blog</strong></li>
+ </ul>
+ <ul>
+ <li><a class="secondary">Posts</a></li>
+ <li><a class="secondary">Projects</a></li>
+ <li><a class="secondary">Resume</a></li>
+ </ul>
+ </nav>
+ <hgroup>
+ <h2>
+ A gathering of information about some things I do on my spare time. You can find me on gitlab , twitter and
+ linkedin .
+ </h2>
+ </hgroup>
+</header>
diff --git a/templates/index.html b/templates/index.html
index 90826de..3558e06 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -1,49 +1,18 @@
<!DOCTYPE html>
<html data-theme="light" lang="en">
<head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>Yet Another Blog</title>
- <style>
- <%- pico %>
- </style>
+ <% include!("head.html"); %>
</head>
<body>
-<header class="container">
- <nav class="container-fluid">
- <ul>
- <li><strong>Yet Another Blog</strong></li>
- </ul>
- <ul>
- <li><a class="secondary">Posts</a></li>
- <li><a class="secondary">Projects</a></li>
- <li><a class="secondary">Resume</a></li>
- </ul>
- </nav>
- <hgroup>
- <h2>
- A gathering of information about some things I do on my spare time. You can find me on gitlab , twitter and
- linkedin .
- </h2>
- </hgroup>
-</header>
-
+<% include!("header.html"); %>
<main class="container">
<section>
<ul>
- <li><a>K8S private gitlab registry using podman</a></li>
- <li><a>K8S private gitlab registry using podman</a></li>
+ <% for p in &posts { %>
+ <li><a href="/post/<%- p.0 %>"><%- p.1 %></a></li>
+ <% } %>
</ul>
</section>
- <section>
- <h2>Title</h2>
- <p>
- Nice content
- <code>
- My code here
- </code>
- </p>
- </section>
</main>
</body>
</html> \ No newline at end of file
diff --git a/templates/pico.min.css b/templates/pico.min.css
new file mode 100644
index 0000000..1179471
--- /dev/null
+++ b/templates/pico.min.css
@@ -0,0 +1,888 @@
+@charset "UTF-8";
+:root {
+ --font-family: system-ui, -apple-system, "Segoe UI", "Roboto", "Ubuntu", "Cantarell", "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+ --line-height: 1.5;
+ --font-weight: 400;
+ --font-size: 16px;
+ --border-radius: 0.25rem;
+ --border-width: 1px;
+ --outline-width: 3px;
+ --spacing: 1rem;
+ --typography-spacing-vertical: 1.5rem;
+ --block-spacing-vertical: calc(var(--spacing) * 2);
+ --block-spacing-horizontal: var(--spacing);
+ --grid-spacing-vertical: 0;
+ --grid-spacing-horizontal: var(--spacing);
+ --form-element-spacing-vertical: 0.75rem;
+ --form-element-spacing-horizontal: 1rem;
+ --nav-element-spacing-vertical: 1rem;
+ --nav-element-spacing-horizontal: 0.5rem;
+ --nav-link-spacing-vertical: 0.5rem;
+ --nav-link-spacing-horizontal: 0.5rem;
+ --form-label-font-weight: var(--font-weight);
+ --transition: 0.2s ease-in-out
+}
+
+@media (min-width: 576px) {
+ :root {
+ --font-size: 17px
+ }
+}
+
+@media (min-width: 768px) {
+ :root {
+ --font-size: 18px
+ }
+}
+
+@media (min-width: 992px) {
+ :root {
+ --font-size: 19px
+ }
+}
+
+@media (min-width: 1200px) {
+ :root {
+ --font-size: 20px
+ }
+}
+
+@media (min-width: 576px) {
+ body > footer, body > header, body > main, section {
+ --block-spacing-vertical: calc(var(--spacing) * 2.5)
+ }
+}
+
+@media (min-width: 768px) {
+ body > footer, body > header, body > main, section {
+ --block-spacing-vertical: calc(var(--spacing) * 3)
+ }
+}
+
+@media (min-width: 992px) {
+ body > footer, body > header, body > main, section {
+ --block-spacing-vertical: calc(var(--spacing) * 3.5)
+ }
+}
+
+@media (min-width: 1200px) {
+ body > footer, body > header, body > main, section {
+ --block-spacing-vertical: calc(var(--spacing) * 4)
+ }
+}
+
+@media (min-width: 576px) {
+ article {
+ --block-spacing-horizontal: calc(var(--spacing) * 1.25)
+ }
+}
+
+@media (min-width: 768px) {
+ article {
+ --block-spacing-horizontal: calc(var(--spacing) * 1.5)
+ }
+}
+
+@media (min-width: 992px) {
+ article {
+ --block-spacing-horizontal: calc(var(--spacing) * 1.75)
+ }
+}
+
+@media (min-width: 1200px) {
+ article {
+ --block-spacing-horizontal: calc(var(--spacing) * 2)
+ }
+}
+
+a {
+ --text-decoration: none
+}
+
+h1, h2, h3, h4, h5, h6 {
+ --font-weight: 700
+}
+
+h1 {
+ --font-size: 2rem;
+ --typography-spacing-vertical: 3rem
+}
+
+h2 {
+ --font-size: 1.75rem;
+ --typography-spacing-vertical: 2.625rem
+}
+
+h3 {
+ --font-size: 1.5rem;
+ --typography-spacing-vertical: 2.25rem
+}
+
+h4 {
+ --font-size: 1.25rem;
+ --typography-spacing-vertical: 1.874rem
+}
+
+h5 {
+ --font-size: 1.125rem;
+ --typography-spacing-vertical: 1.6875rem
+}
+
+:root:not([data-theme=dark]), [data-theme=light] {
+ color-scheme: light;
+ --background-color: #fff;
+ --color: #415462;
+ --h1-color: #1b2832;
+ --h2-color: #24333e;
+ --h3-color: #2c3d49;
+ --h4-color: #374956;
+ --h5-color: #415462;
+ --h6-color: #4d606d;
+ --muted-color: #73828c;
+ --muted-border-color: #edf0f3;
+ --primary: #1095c1;
+ --primary-hover: #08769b;
+ --primary-focus: rgba(16, 149, 193, 0.125);
+ --primary-inverse: #fff;
+ --secondary: #596b78;
+ --secondary-hover: #415462;
+ --secondary-focus: rgba(89, 107, 120, 0.125);
+ --secondary-inverse: #fff;
+ --contrast: #1b2832;
+ --contrast-hover: #000;
+ --contrast-focus: rgba(89, 107, 120, 0.125);
+ --contrast-inverse: #fff;
+ --mark-background-color: #fff2ca;
+ --mark-color: #543a26;
+ --ins-color: #388e3c;
+ --del-color: #c62828;
+ --blockquote-border-color: var(--muted-border-color);
+ --blockquote-footer-color: var(--muted-color);
+ --button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
+ --button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
+ --form-element-background-color: transparent;
+ --form-element-border-color: #a2afb9;
+ --form-element-color: var(--color);
+ --form-element-placeholder-color: var(--muted-color);
+ --form-element-active-background-color: transparent;
+ --form-element-active-border-color: var(--primary);
+ --form-element-focus-color: var(--primary-focus);
+ --form-element-disabled-background-color: #d5dce2;
+ --form-element-disabled-border-color: #a2afb9;
+ --form-element-disabled-opacity: 0.5;
+ --form-element-invalid-border-color: #c62828;
+ --form-element-invalid-active-border-color: #d32f2f;
+ --form-element-invalid-focus-color: rgba(211, 47, 47, 0.125);
+ --form-element-valid-border-color: #388e3c;
+ --form-element-valid-active-border-color: #43a047;
+ --form-element-valid-focus-color: rgba(67, 160, 71, 0.125);
+ --switch-background-color: #bbc6ce;
+ --switch-color: var(--primary-inverse);
+ --switch-checked-background-color: var(--primary);
+ --range-border-color: #d5dce2;
+ --range-active-border-color: #bbc6ce;
+ --range-thumb-border-color: var(--background-color);
+ --range-thumb-color: var(--secondary);
+ --range-thumb-hover-color: var(--secondary-hover);
+ --range-thumb-active-color: var(--primary);
+ --table-border-color: var(--muted-border-color);
+ --table-row-stripped-background-color: #f6f8f9;
+ --code-background-color: #edf0f3;
+ --code-color: var(--muted-color);
+ --code-kbd-background-color: var(--contrast);
+ --code-kbd-color: var(--contrast-inverse);
+ --code-tag-color: #b34d80;
+ --code-property-color: #3d888f;
+ --code-value-color: #998866;
+ --code-comment-color: #a2afb9;
+ --accordion-border-color: var(--muted-border-color);
+ --accordion-close-summary-color: var(--color);
+ --accordion-open-summary-color: var(--muted-color);
+ --card-background-color: var(--background-color);
+ --card-border-color: var(--muted-border-color);
+ --card-box-shadow: 0 0.125rem 1rem rgba(27, 40, 50, 0.04), 0 0.125rem 2rem rgba(27, 40, 50, 0.08), 0 0 0 0.0625rem rgba(27, 40, 50, 0.024);
+ --card-sectionning-background-color: #fbfbfc;
+ --dropdown-background-color: #fbfbfc;
+ --dropdown-border-color: #e1e6eb;
+ --dropdown-box-shadow: var(--card-box-shadow);
+ --dropdown-color: var(--color);
+ --dropdown-hover-background-color: #edf0f3;
+ --modal-overlay-background-color: rgba(213, 220, 226, 0.8);
+ --progress-background-color: #d5dce2;
+ --progress-color: var(--primary);
+ --loading-spinner-opacity: 0.5;
+ --tooltip-background-color: var(--contrast);
+ --tooltip-color: var(--contrast-inverse);
+ --icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(255, 255, 255, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(255, 255, 255, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(115, 130, 140, 0.999)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
+ --icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
+ --icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(198, 40, 40, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
+ --icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFF' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
+ --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
+ --icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(65, 84, 98, 0.999)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
+ --icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(56, 142, 60, 0.999)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E")
+}
+
+*, ::after, ::before {
+ box-sizing: border-box;
+ background-repeat: no-repeat
+}
+
+::after, ::before {
+ text-decoration: inherit;
+ vertical-align: inherit
+}
+
+:where(:root) {
+ -webkit-tap-highlight-color: transparent;
+ -webkit-text-size-adjust: 100%;
+ -moz-text-size-adjust: 100%;
+ text-size-adjust: 100%;
+ text-rendering: optimizeLegibility;
+ background-color: var(--background-color);
+ color: var(--color);
+ font-weight: var(--font-weight);
+ font-size: var(--font-size);
+ line-height: var(--line-height);
+ font-family: var(--font-family);
+ overflow-wrap: break-word;
+ cursor: default;
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4
+}
+
+main {
+ display: block
+}
+
+body {
+ width: 100%;
+ margin: 0
+}
+
+body > footer, body > header, body > main {
+ width: 100%;
+ margin-right: auto;
+ margin-left: auto;
+ padding: 1rem
+}
+
+.container, .container-fluid {
+ width: 100%;
+ margin-right: auto;
+ margin-left: auto;
+ padding-right: var(--spacing);
+ padding-left: var(--spacing)
+}
+
+@media (min-width: 576px) {
+ .container {
+ max-width: 510px;
+ padding-right: 0;
+ padding-left: 0
+ }
+}
+
+@media (min-width: 768px) {
+ .container {
+ max-width: 700px
+ }
+}
+
+@media (min-width: 992px) {
+ .container {
+ max-width: 800px
+ }
+}
+
+section {
+ margin-bottom: var(--block-spacing-vertical)
+}
+
+.grid {
+ grid-column-gap: var(--grid-spacing-horizontal);
+ grid-row-gap: var(--grid-spacing-vertical);
+ display: grid;
+ grid-template-columns:1fr;
+ margin: 0
+}
+
+@media (min-width: 992px) {
+ .grid {
+ grid-template-columns:repeat(auto-fit, minmax(0%, 1fr))
+ }
+}
+
+.grid > * {
+ min-width: 0
+}
+
+b, strong {
+ font-weight: bolder
+}
+
+address, blockquote, dl, figure, form, ol, p, pre, table, ul {
+ margin-top: 0;
+ margin-bottom: var(--typography-spacing-vertical);
+ color: var(--color);
+ font-style: normal;
+ font-weight: var(--font-weight);
+ font-size: var(--font-size)
+}
+
+[role=link], a {
+ --color: var(--primary);
+ --background-color: transparent;
+ outline: 0;
+ background-color: var(--background-color);
+ color: var(--color);
+ -webkit-text-decoration: var(--text-decoration);
+ text-decoration: var(--text-decoration);
+ transition: background-color var(--transition), color var(--transition), box-shadow var(--transition), -webkit-text-decoration var(--transition);
+ transition: background-color var(--transition), color var(--transition), text-decoration var(--transition), box-shadow var(--transition);
+ transition: background-color var(--transition), color var(--transition), text-decoration var(--transition), box-shadow var(--transition), -webkit-text-decoration var(--transition)
+}
+
+[role=link]:is([aria-current],:hover,:active,:focus), a:is([aria-current],:hover,:active,:focus) {
+ --color: var(--primary-hover);
+ --text-decoration: underline
+}
+
+[role=link]:focus, a:focus {
+ --background-color: var(--primary-focus)
+}
+
+[role=link].secondary, a.secondary {
+ --color: var(--secondary)
+}
+
+[role=link].secondary:is([aria-current],:hover,:active,:focus), a.secondary:is([aria-current],:hover,:active,:focus) {
+ --color: var(--secondary-hover)
+}
+
+[role=link].secondary:focus, a.secondary:focus {
+ --background-color: var(--secondary-focus)
+}
+
+[role=link].contrast, a.contrast {
+ --color: var(--contrast)
+}
+
+[role=link].contrast:is([aria-current],:hover,:active,:focus), a.contrast:is([aria-current],:hover,:active,:focus) {
+ --color: var(--contrast-hover)
+}
+
+[role=link].contrast:focus, a.contrast:focus {
+ --background-color: var(--contrast-focus)
+}
+
+h1, h2, h3, h4, h5, h6 {
+ margin-top: 0;
+ margin-bottom: var(--typography-spacing-vertical);
+ color: var(--color);
+ font-weight: var(--font-weight);
+ font-size: var(--font-size);
+ font-family: var(--font-family)
+}
+
+h1 {
+ --color: var(--h1-color)
+}
+
+h2 {
+ --color: var(--h2-color)
+}
+
+h3 {
+ --color: var(--h3-color)
+}
+
+h4 {
+ --color: var(--h4-color)
+}
+
+h5 {
+ --color: var(--h5-color)
+}
+
+h6 {
+ --color: var(--h6-color)
+}
+
+:where(address,blockquote,dl,figure,form,ol,p,pre,table,ul) ~ :is(h1,h2,h3,h4,h5,h6) {
+ margin-top: var(--typography-spacing-vertical)
+}
+
+.headings, hgroup {
+ margin-bottom: var(--typography-spacing-vertical)
+}
+
+.headings > *, hgroup > * {
+ margin-bottom: 0
+}
+
+.headings > :last-child, hgroup > :last-child {
+ --color: var(--muted-color);
+ --font-weight: unset;
+ font-size: 1rem;
+ font-family: unset
+}
+
+p {
+ margin-bottom: var(--typography-spacing-vertical)
+}
+
+:where(dl,ol,ul) {
+ padding-right: 0;
+ padding-left: var(--spacing);
+ -webkit-padding-start: var(--spacing);
+ padding-inline-start: var(--spacing);
+ -webkit-padding-end: 0;
+ padding-inline-end: 0
+}
+
+:where(dl,ol,ul) li {
+ margin-bottom: calc(var(--typography-spacing-vertical) * .25)
+}
+
+:where(dl,ol,ul):is(dl,ol,ul) {
+ margin: calc(var(--typography-spacing-vertical) * .25) 0 0
+}
+
+ul li {
+ list-style: none
+}
+
+mark {
+ padding: 0.125rem 0.25rem;
+ background-color: var(--mark-background-color);
+ color: var(--mark-color);
+ vertical-align: baseline
+}
+
+abbr[title] {
+ border-bottom: 1px dotted;
+ text-decoration: none;
+ cursor: help
+}
+
+::-moz-selection {
+ background-color: var(--primary-focus)
+}
+
+::selection {
+ background-color: var(--primary-focus)
+}
+
+:where(audio,canvas,iframe,img,svg,video) {
+ vertical-align: middle
+}
+
+legend {
+ max-width: 100%;
+ padding: 0;
+ color: inherit;
+ white-space: normal
+}
+
+::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
+ height: auto
+}
+
+fieldset legend, label {
+ display: block;
+ margin-bottom: calc(var(--spacing) * .25);
+ font-weight: var(--form-label-font-weight, var(--font-weight))
+}
+
+[type=color]::-webkit-color-swatch-wrapper {
+ padding: 0
+}
+
+code, kbd, pre, samp {
+ font-size: 0.875em;
+ font-family: var(--font-family)
+}
+
+pre {
+ -ms-overflow-style: scrollbar;
+ overflow: auto
+}
+
+code, kbd, pre {
+ border-radius: var(--border-radius);
+ background: var(--code-background-color);
+ color: var(--code-color);
+ font-weight: var(--font-weight);
+ line-height: initial
+}
+
+code, kbd {
+ display: inline-block;
+ padding: 0.375rem 0.5rem
+}
+
+pre {
+ display: block;
+ margin-bottom: var(--spacing);
+ overflow-x: auto
+}
+
+pre > code {
+ display: block;
+ padding: var(--spacing);
+ background: 0 0;
+ font-size: 14px;
+ line-height: var(--line-height)
+}
+
+code b {
+ color: var(--code-tag-color);
+ font-weight: var(--font-weight)
+}
+
+code i {
+ color: var(--code-property-color);
+ font-style: normal
+}
+
+code u {
+ color: var(--code-value-color);
+ text-decoration: none
+}
+
+code em {
+ color: var(--code-comment-color);
+ font-style: normal
+}
+
+kbd {
+ background-color: var(--code-kbd-background-color);
+ color: var(--code-kbd-color);
+ vertical-align: baseline
+}
+
+hr {
+ height: 0;
+ border: 0;
+ border-top: 1px solid var(--muted-border-color);
+ color: inherit
+}
+
+[hidden], template {
+ display: none !important
+}
+
+article {
+ margin: var(--block-spacing-vertical) 0;
+ padding: var(--block-spacing-vertical) var(--block-spacing-horizontal);
+ border-radius: var(--border-radius);
+ background: var(--card-background-color);
+ box-shadow: var(--card-box-shadow)
+}
+
+article > footer, article > header {
+ margin-right: calc(var(--block-spacing-horizontal) * -1);
+ margin-left: calc(var(--block-spacing-horizontal) * -1);
+ padding: calc(var(--block-spacing-vertical) * .66) var(--block-spacing-horizontal);
+ background-color: var(--card-sectionning-background-color)
+}
+
+article > header {
+ margin-top: calc(var(--block-spacing-vertical) * -1);
+ margin-bottom: var(--block-spacing-vertical);
+ border-bottom: var(--border-width) solid var(--card-border-color)
+}
+
+article > footer {
+ margin-top: var(--block-spacing-vertical);
+ margin-bottom: calc(var(--block-spacing-vertical) * -1);
+ border-top: var(--border-width) solid var(--card-border-color)
+}
+
+:root {
+ --scrollbar-width: 0
+}
+
+dialog article {
+ max-height: calc(100vh - var(--spacing) * 2);
+ overflow: auto
+}
+
+@media (min-width: 576px) {
+ dialog article {
+ max-width: 510px
+ }
+}
+
+@media (min-width: 768px) {
+ dialog article {
+ max-width: 700px
+ }
+}
+
+dialog article > footer, dialog article > header {
+ padding: calc(var(--block-spacing-vertical) * .5) var(--block-spacing-horizontal)
+}
+
+dialog article > header .close {
+ margin: 0 0 0 var(--spacing);
+ float: right
+}
+
+dialog article > footer {
+ text-align: right
+}
+
+dialog article > footer [role=button] {
+ margin-bottom: 0
+}
+
+dialog article > footer [role=button]:not(:first-of-type) {
+ margin-left: calc(var(--spacing) * .5)
+}
+
+dialog article p:last-of-type {
+ margin: 0
+}
+
+dialog article .close {
+ display: block;
+ width: 1rem;
+ height: 1rem;
+ margin-top: calc(var(--block-spacing-vertical) * -.5);
+ margin-bottom: var(--typography-spacing-vertical);
+ margin-left: auto;
+ background-image: var(--icon-close);
+ background-position: center;
+ background-size: auto 1rem;
+ background-repeat: no-repeat;
+ opacity: 0.5;
+ transition: opacity var(--transition)
+}
+
+dialog article .close:is([aria-current],:hover,:active,:focus) {
+ opacity: 1
+}
+
+dialog:not([open]), dialog[open=false] {
+ display: none
+}
+
+.modal-is-open {
+ padding-right: var(--scrollbar-width, 0);
+ overflow: hidden;
+ pointer-events: none
+}
+
+.modal-is-open dialog {
+ pointer-events: auto
+}
+
+:where(.modal-is-opening,.modal-is-closing) dialog, :where(.modal-is-opening,.modal-is-closing) dialog > article {
+ -webkit-animation-duration: 0.2s;
+ animation-duration: 0.2s;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both
+}
+
+:where(.modal-is-opening,.modal-is-closing) dialog {
+ -webkit-animation-duration: 0.8s;
+ animation-duration: 0.8s;
+ -webkit-animation-name: fadeIn;
+ animation-name: fadeIn
+}
+
+:where(.modal-is-opening,.modal-is-closing) dialog > article {
+ -webkit-animation-delay: 0.2s;
+ animation-delay: 0.2s;
+ -webkit-animation-name: slideInDown;
+ animation-name: slideInDown
+}
+
+.modal-is-closing dialog, .modal-is-closing dialog > article {
+ -webkit-animation-delay: 0s;
+ animation-delay: 0s;
+ animation-direction: reverse
+}
+
+:where(nav li)::before {
+ float: left;
+ content: "​"
+}
+
+nav, nav ul {
+ display: flex
+}
+
+nav {
+ justify-content: space-between
+}
+
+nav ol, nav ul {
+ align-items: center;
+ margin-bottom: 0;
+ padding: 0;
+ list-style: none
+}
+
+nav ol:first-of-type, nav ul:first-of-type {
+ margin-left: calc(var(--nav-element-spacing-horizontal) * -1)
+}
+
+nav ol:last-of-type, nav ul:last-of-type {
+ margin-right: calc(var(--nav-element-spacing-horizontal) * -1)
+}
+
+nav li {
+ display: inline-block;
+ margin: 0;
+ padding: var(--nav-element-spacing-vertical) var(--nav-element-spacing-horizontal)
+}
+
+nav li > * {
+ --spacing: 0
+}
+
+nav:where(a,[role=link]) {
+ display: inline-block;
+ margin: calc(var(--nav-link-spacing-vertical) * -1) calc(var(--nav-link-spacing-horizontal) * -1);
+ padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);
+ border-radius: var(--border-radius);
+ text-decoration: none
+}
+
+nav:where(a,[role=link]):is([aria-current],:hover,:active,:focus) {
+ text-decoration: none
+}
+
+nav [role=button] {
+ margin-right: inherit;
+ margin-left: inherit;
+ padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal)
+}
+
+details[role=list], li[role=list] {
+ position: relative
+}
+
+details[role=list] summary + ul, li[role=list] > ul {
+ display: flex;
+ z-index: 99;
+ position: absolute;
+ top: auto;
+ right: 0;
+ left: 0;
+ flex-direction: column;
+ margin: 0;
+ padding: 0;
+ border: var(--border-width) solid var(--dropdown-border-color);
+ border-radius: var(--border-radius);
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+ background-color: var(--dropdown-background-color);
+ box-shadow: var(--card-box-shadow);
+ color: var(--dropdown-color);
+ white-space: nowrap
+}
+
+details[role=list] summary + ul li, li[role=list] > ul li {
+ width: 100%;
+ margin-bottom: 0;
+ padding: calc(var(--form-element-spacing-vertical) * .5) var(--form-element-spacing-horizontal);
+ list-style: none
+}
+
+details[role=list] summary + ul li:first-of-type, li[role=list] > ul li:first-of-type {
+ margin-top: calc(var(--form-element-spacing-vertical) * .5)
+}
+
+details[role=list] summary + ul li:last-of-type, li[role=list] > ul li:last-of-type {
+ margin-bottom: calc(var(--form-element-spacing-vertical) * .5)
+}
+
+details[role=list] summary + ul li a, li[role=list] > ul li a {
+ display: block;
+ margin: calc(var(--form-element-spacing-vertical) * -.5) calc(var(--form-element-spacing-horizontal) * -1);
+ padding: calc(var(--form-element-spacing-vertical) * .5) var(--form-element-spacing-horizontal);
+ overflow: hidden;
+ color: var(--dropdown-color);
+ text-decoration: none;
+ text-overflow: ellipsis
+}
+
+details[role=list] summary + ul li a:hover, li[role=list] > ul li a:hover {
+ background-color: var(--dropdown-hover-background-color)
+}
+
+details[role=list] summary::after, li[role=list] > a::after {
+ display: block;
+ width: 1rem;
+ height: calc(1rem * var(--line-height, 1.5));
+ -webkit-margin-start: 0.5rem;
+ margin-inline-start: 0.5rem;
+ float: right;
+ transform: rotate(0);
+ background-position: right center;
+ background-size: 1rem auto;
+ background-repeat: no-repeat;
+ content: ""
+}
+
+nav details[role=list] summary + ul, nav li[role=list] > ul {
+ min-width: -webkit-fit-content;
+ min-width: -moz-fit-content;
+ min-width: fit-content;
+ border-radius: var(--border-radius)
+}
+
+nav details[role=list] summary + ul li a, nav li[role=list] > ul li a {
+ border-radius: 0
+}
+
+nav details[role=list] summary, nav details[role=list] summary:not([role]) {
+ height: auto;
+ padding: var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal)
+}
+
+nav details[role=list][open] summary {
+ border-radius: var(--border-radius)
+}
+
+nav details[role=list] summary + ul {
+ margin-top: var(--outline-width);
+ -webkit-margin-start: 0;
+ margin-inline-start: 0
+}
+
+nav details[role=list] summary[role=link] {
+ margin-bottom: calc(var(--nav-link-spacing-vertical) * -1);
+ line-height: var(--line-height)
+}
+
+nav details[role=list] summary[role=link] + ul {
+ margin-top: calc(var(--nav-link-spacing-vertical) + var(--outline-width));
+ -webkit-margin-start: calc(var(--nav-link-spacing-horizontal) * -1);
+ margin-inline-start: calc(var(--nav-link-spacing-horizontal) * -1)
+}
+
+li[role=list] a:active ~ ul, li[role=list] a:focus ~ ul, li[role=list]:hover > ul {
+ display: flex
+}
+
+li[role=list] > ul {
+ display: none;
+ margin-top: calc(var(--nav-link-spacing-vertical) + var(--outline-width));
+ -webkit-margin-start: calc(var(--nav-element-spacing-horizontal) - var(--nav-link-spacing-horizontal));
+ margin-inline-start: calc(var(--nav-element-spacing-horizontal) - var(--nav-link-spacing-horizontal))
+}
+
+li[role=list] > a::after {
+ background-image: var(--icon-chevron)
+}
diff --git a/templates/post.html b/templates/post.html
new file mode 100644
index 0000000..68211c1
--- /dev/null
+++ b/templates/post.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html data-theme="light" lang="en">
+<head>
+ <% include!("head.html"); %>
+</head>
+<body>
+<% include!("simple_header.html"); %>
+<main class="container">
+ <%- content %>
+</section>
+</main>
+</body>
+</html>
diff --git a/templates/simple_header.html b/templates/simple_header.html
new file mode 100644
index 0000000..0132334
--- /dev/null
+++ b/templates/simple_header.html
@@ -0,0 +1,12 @@
+<header class="container">
+ <nav class="container-fluid">
+ <ul>
+ <li><strong><a href="/">Yet Another Blog</a></strong></li>
+ </ul>
+ <ul>
+ <li><a class="secondary">Posts</a></li>
+ <li><a class="secondary">Projects</a></li>
+ <li><a class="secondary">Resume</a></li>
+ </ul>
+ </nav>
+</header>