mirror of
https://github.com/Extroonie/extroonie.com.git
synced 2026-07-07 07:06:42 -07:00
feat: various site enhancements
This commit is contained in:
parent
688445f9ad
commit
09997f333f
10 changed files with 954 additions and 950 deletions
1322
assets/css/style.css
1322
assets/css/style.css
File diff suppressed because it is too large
Load diff
|
|
@ -1,4 +1,4 @@
|
|||
---
|
||||
title: "My Writing"
|
||||
title: 'My Writing'
|
||||
description: "I wouldn't exactly call it a blog, given the lack of a regular posting schedule, but there are times when I put pen to paper (or fingers to keys), and the result is worth sharing. You might find something enjoyable in one of these musings."
|
||||
---
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ This can be problematic because it means each workspace must install its own cop
|
|||
> 2. You don't use the "workspaces" feature of the package manager whatsoever. It's very annoying to have to remember to put in workspace-related command-line flags whenever e.g. adding a new dep. This brings parity between "normal" single-project repos and monorepos.
|
||||
> 3. You don't have to worry about making somewhat-arbitrary distinctions between "ESLint-like" deps that should apply to the entire mono-repo, and "library-like" deps that should only apply to specific packages. Everything just goes into the root as a normal dep or a dev dep (in the same way that a normal/single repo does it).
|
||||
> 4. Updating dependencies becomes ultra simple - you don't need some over-engineered monorepo tool to do it! You can just run conventional tools like [`npm-check-updates`](https://github.com/raineorshine/npm-check-updates), and then after updating a single "package.json" file, you can simply run `npm/yarn/pnpm install`.
|
||||
> - And checking for breaking changes after a new dep update also becomes easy. After updating, we can trigger a commit, and TypeScript will take over and let you know in CI in any of the new API changes broke one of your existing packages. Then we can revert the commit if needed, or continue to go on and make another commit to fix to the individual broken packages (or coordinate with other teams, if necessary).
|
||||
> - In some monorepos, some packages are published to npm, so they need their own individual "package.json" files. Nx offers the option to automatically create package.json files when publishing, but sometimes you will want more control over them, and will choose to manually manage them yourself. (Does Turborepo have an analogous feature?) If you do manually manage "package.json" files, then you need an additional tool to propagate version changes downward from the root "package.json". With that said, even in this situation, I think it is preferable to use simple tools like [`syncpack`](https://github.com/JamieMason/syncpack) to do this, rather than complicated tools like e.g. `lerna`. (`syncpack` is essentially just a glorified copy-paster, so even in this situation, we are still maintaining the simple mental model of how dependencies work.)
|
||||
> - And checking for breaking changes after a new dep update also becomes easy. After updating, we can trigger a commit, and TypeScript will take over and let you know in CI in any of the new API changes broke one of your existing packages. Then we can revert the commit if needed, or continue to go on and make another commit to fix to the individual broken packages (or coordinate with other teams, if necessary).
|
||||
> - In some monorepos, some packages are published to npm, so they need their own individual "package.json" files. Nx offers the option to automatically create package.json files when publishing, but sometimes you will want more control over them, and will choose to manually manage them yourself. (Does Turborepo have an analogous feature?) If you do manually manage "package.json" files, then you need an additional tool to propagate version changes downward from the root "package.json". With that said, even in this situation, I think it is preferable to use simple tools like [`syncpack`](https://github.com/JamieMason/syncpack) to do this, rather than complicated tools like e.g. `lerna`. (`syncpack` is essentially just a glorified copy-paster, so even in this situation, we are still maintaining the simple mental model of how dependencies work.)
|
||||
|
||||
[Source](https://github.com/vercel/turbo/issues/2060#issuecomment-1416135197)
|
||||
|
|
|
|||
10
hugo.toml
10
hugo.toml
|
|
@ -25,11 +25,11 @@ author = 'Ishmaam Khan'
|
|||
description = "Hi, I'm Ishmaam! I'm a student who spends most of my time developing software and exploring the frontiers of science and philosophy."
|
||||
|
||||
keywords = [
|
||||
"software development",
|
||||
"science",
|
||||
"philosophy",
|
||||
"student",
|
||||
"programming",
|
||||
"software development",
|
||||
"science",
|
||||
"philosophy",
|
||||
"student",
|
||||
"programming",
|
||||
]
|
||||
images = ["/images/Pale_Blue_Dot.png"]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,74 +1,58 @@
|
|||
<!doctype html>
|
||||
<html
|
||||
lang="{{ .Site.LanguageCode }}"
|
||||
itemscope
|
||||
itemtype="http://schema.org/WebSite"
|
||||
>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<html lang="{{ .Site.LanguageCode }}" itemscope itemtype="http://schema.org/WebSite">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="darkreader-lock" content="true" />
|
||||
|
||||
{{ block "title" . }}
|
||||
<title>
|
||||
{{ if .IsHome }}{{ .Site.Title }}{{ else if .Title }}{{ .Title }} | {{
|
||||
.Site.Title }}{{ else }}{{ .Site.Title }}{{ end }}
|
||||
</title>
|
||||
{{ end }}
|
||||
{{ block "title" . }}
|
||||
<title>
|
||||
{{ if .IsHome }}{{ .Site.Title }}{{ else if .Title }}{{ .Title }} | {{ .Site.Title }}{{ else }}{{
|
||||
.Site.Title }}{{ end }}
|
||||
</title>
|
||||
{{ end }}
|
||||
|
||||
<meta
|
||||
name="description"
|
||||
content="{{ .Description | default .Site.Params.description }}"
|
||||
/>
|
||||
<meta name="author" content="{{ .Site.Params.author }}" />
|
||||
<meta name="generator" content="Hugo {{ hugo.Version }}" />
|
||||
<meta name="description" content="{{ .Description | default .Site.Params.description }}" />
|
||||
<meta name="author" content="{{ .Site.Params.author }}" />
|
||||
<meta name="generator" content="Hugo {{ hugo.Version }}" />
|
||||
|
||||
<meta
|
||||
property="og:title"
|
||||
content="{{ if .IsHome }}{{ .Site.Params.author }}{{ else }}{{ .Title }}{{ end }}"
|
||||
/>
|
||||
<meta
|
||||
property="og:description"
|
||||
content="{{ .Description | default .Site.Params.description }}"
|
||||
/>
|
||||
<meta
|
||||
property="og:type"
|
||||
content="{{ if .IsPage }}article{{ else }}website{{ end }}"
|
||||
/>
|
||||
<meta property="og:url" content="{{ .Permalink }}" />
|
||||
{{ with .Site.Params.images }}
|
||||
<meta property="og:image" content="{{ $.Site.BaseURL }}{{ index . 0 }}" />
|
||||
{{ end }}
|
||||
<meta property="og:title" content="{{ if .IsHome }}{{ .Site.Params.author }}{{ else }}{{ .Title }}{{ end }}" />
|
||||
<meta property="og:description" content="{{ .Description | default .Site.Params.description }}" />
|
||||
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}" />
|
||||
<meta property="og:url" content="{{ .Permalink }}" />
|
||||
{{ with .Site.Params.images }}
|
||||
<meta property="og:image" content="{{ $.Site.BaseURL }}{{ index . 0 }}" />
|
||||
{{ end }}
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="@{{ .Site.Params.social.twitter }}" />
|
||||
<meta name="twitter:creator" content="@{{ .Site.Params.social.twitter }}" />
|
||||
{{ with .Site.Params.images }}
|
||||
<meta name="twitter:image" content="{{ $.Site.BaseURL }}{{ index . 0 }}" />
|
||||
{{ end }}
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="@{{ .Site.Params.social.twitter }}" />
|
||||
<meta name="twitter:creator" content="@{{ .Site.Params.social.twitter }}" />
|
||||
{{ with .Site.Params.images }}
|
||||
<meta name="twitter:image" content="{{ $.Site.BaseURL }}{{ index . 0 }}" />
|
||||
{{ end }}
|
||||
|
||||
<link rel="canonical" href="{{ .Permalink }}" />
|
||||
<link rel="canonical" href="{{ .Permalink }}" />
|
||||
|
||||
{{ $style := resources.Get "css/style.css" | resources.Minify |
|
||||
resources.Fingerprint }}
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="{{ $style.Permalink }}"
|
||||
integrity="{{ $style.Data.Integrity }}"
|
||||
/>
|
||||
<link rel="preconnect" href="https://github.githubassets.com" />
|
||||
<link rel="stylesheet" href="https://github.githubassets.com/assets/primitives-363ec1831693.css" />
|
||||
<link rel="stylesheet" href="https://github.githubassets.com/assets/github-b64b0b078eab.css" />
|
||||
|
||||
<link rel="icon" href="/images/Pale_Blue_Dot.png" />
|
||||
<link rel="apple-touch-icon" href="/images/Pale_Blue_Dot.png" />
|
||||
{{ $style := resources.Get "css/style.css" | resources.Minify | resources.Fingerprint }}
|
||||
<link rel="stylesheet" href="{{ $style.Permalink }}" integrity="{{ $style.Data.Integrity }}" />
|
||||
|
||||
{{ with .OutputFormats.Get "rss" -}} {{ printf `
|
||||
<link rel="%s" type="%s" href="%s" title="%s" />
|
||||
` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }} {{ end -}} {{
|
||||
partial "structured-data.html" . }} {{ block "head" . }}{{ end }}
|
||||
</head>
|
||||
<body>
|
||||
{{ block "header" . }}{{ end }}
|
||||
<link rel="icon" href="/images/Pale_Blue_Dot.png" />
|
||||
<link rel="apple-touch-icon" href="/images/Pale_Blue_Dot.png" />
|
||||
|
||||
<main id="main" role="main">{{ block "main" . }}{{ end }}</main>
|
||||
{{ with .OutputFormats.Get "rss" -}} {{ printf `
|
||||
<link rel="%s" type="%s" href="%s" title="%s" />
|
||||
` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }} {{ end -}} {{ partial "structured-data.html" . }}
|
||||
{{ block "head" . }}{{ end }}
|
||||
</head>
|
||||
<body>
|
||||
{{ block "header" . }}{{ end }}
|
||||
|
||||
{{ block "footer" . }}{{ end }}
|
||||
</body>
|
||||
<main id="main" role="main">{{ block "main" . }}{{ end }}</main>
|
||||
|
||||
{{ block "footer" . }}{{ end }}
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -1,51 +1,86 @@
|
|||
{{ define "main" }}
|
||||
<div class="layout">
|
||||
{{ partial "logo-heading.html" . }}
|
||||
{{ partial "logo-heading.html" . }}
|
||||
|
||||
<div class="content">
|
||||
<p>
|
||||
Hi! I'm Ishmaam. I'm a 20-year-old student and software developer. You may
|
||||
enjoy reading some of the
|
||||
<a href="/writing">articles</a> I've written.
|
||||
</p>
|
||||
<div class="content">
|
||||
<p>
|
||||
Hi! I'm Ishmaam. I'm a 20-year-old student and software developer. You may enjoy reading some of the
|
||||
<a href="/writing">articles</a> I've written.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Reach out:</strong> <a
|
||||
href="mailto:ishmaam@extroonie.com"
|
||||
>ishmaam@extroonie.com</a
|
||||
>
|
||||
or Extroonie on Discord and Extroonie.01 on Signal<br />
|
||||
<strong>Find me:</strong>
|
||||
<a
|
||||
href="https://github.com/Extroonie"
|
||||
rel="noopener noreferrer"
|
||||
target="_blank"
|
||||
>GitHub</a
|
||||
>
|
||||
<a
|
||||
href="https://twitter.com/Extroonie"
|
||||
rel="noopener noreferrer"
|
||||
target="_blank"
|
||||
>Twitter</a
|
||||
>
|
||||
</p>
|
||||
<p>
|
||||
<strong>Reach out:</strong>
|
||||
<a href="mailto:ishmaam@extroonie.com" title="Email: ishmaam@extroonie.com">
|
||||
<img
|
||||
src="/images/icons/envelope-fill.svg"
|
||||
alt="Email"
|
||||
width="18"
|
||||
height="18"
|
||||
style="vertical-align: middle"
|
||||
class="icon"
|
||||
/> </a
|
||||
>
|
||||
<a title="Discord: Extroonie">
|
||||
<img
|
||||
src="/images/icons/discord.svg"
|
||||
alt="Discord"
|
||||
width="18"
|
||||
height="18"
|
||||
style="vertical-align: middle"
|
||||
class="icon"
|
||||
/> </a
|
||||
>
|
||||
<a
|
||||
href="https://signal.me/#eu/ZowsAT4NJCOyeG4SrCxT_02-yCidvGI73x3GycgIt1SdfH3J_o1NpYBnFGZua8Lk"
|
||||
rel="noopener noreferrer"
|
||||
target="_blank"
|
||||
title="Signal: Extroonie.01"
|
||||
>
|
||||
<img
|
||||
src="/images/icons/signal.svg"
|
||||
alt="Signal"
|
||||
width="18"
|
||||
height="18"
|
||||
style="vertical-align: middle"
|
||||
class="icon"
|
||||
/> </a
|
||||
><br />
|
||||
<strong>Find me:</strong>
|
||||
<a href="https://github.com/Extroonie" rel="noopener noreferrer" target="_blank" title="GitHub">
|
||||
<img
|
||||
src="/images/icons/github.svg"
|
||||
alt="GitHub"
|
||||
width="18"
|
||||
height="18"
|
||||
style="vertical-align: middle"
|
||||
class="icon"
|
||||
/> </a
|
||||
>
|
||||
<a href="https://twitter.com/Extroonie" rel="noopener noreferrer" target="_blank" title="Twitter">
|
||||
<img
|
||||
src="/images/icons/twitter.svg"
|
||||
alt="Twitter"
|
||||
width="18"
|
||||
height="18"
|
||||
style="vertical-align: middle"
|
||||
class="icon"
|
||||
/>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
I have 6 years of experience as a backend software developer. My expertise
|
||||
is in TypeScript and Node.js for building server-side applications, with
|
||||
working knowledge of Rust and Go gained through self-directed learning.
|
||||
Currently, most of my projects are closed-source, but I plan to publish
|
||||
many of them and work on more complex portfolio projects in the near
|
||||
future.
|
||||
</p>
|
||||
<p>
|
||||
I have 6 years of experience as a backend software developer. My expertise is in TypeScript and Node.js for
|
||||
building server-side applications, with working knowledge of Rust and Go gained through self-directed
|
||||
learning. Currently, most of my projects are closed-source, but I plan to publish many of them and work on
|
||||
more complex portfolio projects in the near future.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
I enjoy learning about science, especially physics. I have also developed
|
||||
an appreciation for philosophy and enjoy discussing metaphysical
|
||||
questions, how we know things, free will controversies, logical puzzles,
|
||||
and more. I'm also into learning about theology and different faiths to
|
||||
get more insightful takes. I simply enjoy learning — beyond the horizon.
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
I enjoy learning about science, especially physics. I have also developed an appreciation for philosophy and
|
||||
enjoy discussing metaphysical questions, how we know things, free will controversies, logical puzzles, and
|
||||
more. I'm also into learning about theology and different faiths to get more insightful takes. I simply
|
||||
enjoy learning — beyond the horizon.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
<div class="logo-heading">
|
||||
<h1><a href="/">{{ .Site.Title }}</a></h1>
|
||||
<h1><a href="/">{{ .Site.Title }}</a></h1>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,69 +1,69 @@
|
|||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
{{ if .IsHome }}
|
||||
"@type": "Person",
|
||||
"name": "{{ .Site.Params.author }}",
|
||||
"url": "{{ .Site.BaseURL }}",
|
||||
"description": "{{ .Site.Params.description }}",
|
||||
"jobTitle": "Software Developer",
|
||||
"knowsAbout": ["Software Development", "TypeScript", "Node.js", "Physics", "Philosophy"],
|
||||
"sameAs": [
|
||||
"https://twitter.com/{{ .Site.Params.social.twitter }}",
|
||||
"https://github.com/{{ .Site.Params.social.github }}"
|
||||
],
|
||||
"contactPoint": {
|
||||
"@type": "ContactPoint",
|
||||
"email": "{{ .Site.Params.social.email }}",
|
||||
"contactType": "personal"
|
||||
}
|
||||
{{ else if and .IsPage (eq .Section "writing") }}
|
||||
"@type": "BlogPosting",
|
||||
"headline": "{{ .Title }}",
|
||||
"description": "{{ .Description | default .Summary }}",
|
||||
"datePublished": "{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}",
|
||||
{{ if .Lastmod }}"dateModified": "{{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" }}",{{ end }}
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "{{ .Site.Params.author }}"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Person",
|
||||
"name": "{{ .Site.Params.author }}"
|
||||
},
|
||||
"url": "{{ .Permalink }}",
|
||||
"wordCount": {{ .WordCount }}{{ if .Params.tags }},
|
||||
"keywords": [{{ range $index, $tag := .Params.tags }}{{ if $index }}, {{ end }}"{{ $tag }}"{{ end }}]{{ end }}
|
||||
{{ else if and .IsSection (eq .Section "writing") }}
|
||||
"@type": "Blog",
|
||||
"name": "{{ .Site.Title }} - Writing",
|
||||
"description": "{{ .Description | default .Site.Params.description }}",
|
||||
"url": "{{ .Permalink }}",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "{{ .Site.Params.author }}"
|
||||
},
|
||||
"blogPost": [
|
||||
{{ range $index, $page := .Pages }}
|
||||
{{ if $index }},{{ end }}
|
||||
{
|
||||
"@type": "BlogPosting",
|
||||
"headline": "{{ .Title }}",
|
||||
"datePublished": "{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}",
|
||||
"url": "{{ .Permalink }}",
|
||||
"description": "{{ .Description | default .Summary }}"
|
||||
}
|
||||
{{ end }}
|
||||
]
|
||||
{{ else }}
|
||||
"@type": "WebSite",
|
||||
"name": "{{ .Site.Title }}",
|
||||
"url": "{{ .Site.BaseURL }}",
|
||||
"description": "{{ .Site.Params.description }}",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "{{ .Site.Params.author }}"
|
||||
}
|
||||
{{ end }}
|
||||
}
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
{{ if .IsHome }}
|
||||
"@type": "Person",
|
||||
"name": "{{ .Site.Params.author }}",
|
||||
"url": "{{ .Site.BaseURL }}",
|
||||
"description": "{{ .Site.Params.description }}",
|
||||
"jobTitle": "Software Developer",
|
||||
"knowsAbout": ["Software Development", "TypeScript", "Node.js", "Physics", "Philosophy"],
|
||||
"sameAs": [
|
||||
"https://twitter.com/{{ .Site.Params.social.twitter }}",
|
||||
"https://github.com/{{ .Site.Params.social.github }}"
|
||||
],
|
||||
"contactPoint": {
|
||||
"@type": "ContactPoint",
|
||||
"email": "{{ .Site.Params.social.email }}",
|
||||
"contactType": "personal"
|
||||
}
|
||||
{{ else if and .IsPage (eq .Section "writing") }}
|
||||
"@type": "BlogPosting",
|
||||
"headline": "{{ .Title }}",
|
||||
"description": "{{ .Description | default .Summary }}",
|
||||
"datePublished": "{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}",
|
||||
{{ if .Lastmod }}"dateModified": "{{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" }}",{{ end }}
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "{{ .Site.Params.author }}"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Person",
|
||||
"name": "{{ .Site.Params.author }}"
|
||||
},
|
||||
"url": "{{ .Permalink }}",
|
||||
"wordCount": {{ .WordCount }}{{ if .Params.tags }},
|
||||
"keywords": [{{ range $index, $tag := .Params.tags }}{{ if $index }}, {{ end }}"{{ $tag }}"{{ end }}]{{ end }}
|
||||
{{ else if and .IsSection (eq .Section "writing") }}
|
||||
"@type": "Blog",
|
||||
"name": "{{ .Site.Title }} - Writing",
|
||||
"description": "{{ .Description | default .Site.Params.description }}",
|
||||
"url": "{{ .Permalink }}",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "{{ .Site.Params.author }}"
|
||||
},
|
||||
"blogPost": [
|
||||
{{ range $index, $page := .Pages }}
|
||||
{{ if $index }},{{ end }}
|
||||
{
|
||||
"@type": "BlogPosting",
|
||||
"headline": "{{ .Title }}",
|
||||
"datePublished": "{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}",
|
||||
"url": "{{ .Permalink }}",
|
||||
"description": "{{ .Description | default .Summary }}"
|
||||
}
|
||||
{{ end }}
|
||||
]
|
||||
{{ else }}
|
||||
"@type": "WebSite",
|
||||
"name": "{{ .Site.Title }}",
|
||||
"url": "{{ .Site.BaseURL }}",
|
||||
"description": "{{ .Site.Params.description }}",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "{{ .Site.Params.author }}"
|
||||
}
|
||||
{{ end }}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,60 +1,48 @@
|
|||
{{ define "main" }}
|
||||
<div class="layout">
|
||||
<header class="global-header">
|
||||
<nav role="navigation" aria-label="Main navigation">
|
||||
<a class="header-link-home" href="/" aria-label="Go to homepage">Home</a>
|
||||
</nav>
|
||||
</header>
|
||||
<header class="global-header">
|
||||
<nav role="navigation" aria-label="Main navigation">
|
||||
<a class="header-link-home" href="/" aria-label="Go to homepage">Home</a>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<div class="content">
|
||||
<header class="page-header">
|
||||
<h1>My Writing</h1>
|
||||
<p>
|
||||
I wouldn't exactly call it a blog, given the lack of a regular posting
|
||||
schedule, but there are times when I put pen to paper (or fingers to
|
||||
keys), and the result is worth sharing. You might find something
|
||||
enjoyable in one of these musings.
|
||||
</p>
|
||||
</header>
|
||||
<div class="content">
|
||||
<header class="page-header">
|
||||
<h1>My Writing</h1>
|
||||
<p>
|
||||
I wouldn't exactly call it a blog, given the lack of a regular posting schedule, but there are times
|
||||
when I put pen to paper (or fingers to keys), and the result is worth sharing. You might find something
|
||||
enjoyable in one of these musings.
|
||||
</p>
|
||||
</header>
|
||||
|
||||
{{ if .Pages }}
|
||||
<ol class="post-list" role="list">
|
||||
{{ range .Pages }} {{ $dateISO := .Date.Format "2006-01-02T15:04:05Z07:00"
|
||||
}} {{ $dateHuman := .Date.Format "January 2, 2006" }}
|
||||
<li role="listitem">
|
||||
<a
|
||||
href="{{ .Permalink }}"
|
||||
class="post-list-item-link"
|
||||
aria-label="Read {{ .Title }}"
|
||||
>
|
||||
<article
|
||||
class="post-list-item"
|
||||
itemscope
|
||||
itemtype="http://schema.org/BlogPosting"
|
||||
>
|
||||
<header>
|
||||
<h2>
|
||||
<span itemprop="headline">{{ .Title }}</span>
|
||||
</h2>
|
||||
<time datetime="{{ $dateISO }}" itemprop="datePublished">
|
||||
{{ $dateHuman }}
|
||||
</time>
|
||||
<meta itemprop="author" content="{{ .Site.Params.author }}" />
|
||||
</header>
|
||||
<section>
|
||||
<p itemprop="description">
|
||||
{{ if .Params.description }}{{ .Params.description }}{{ else
|
||||
}}{{ .Summary }}{{ end }}
|
||||
</p>
|
||||
</section>
|
||||
</article>
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ol>
|
||||
{{ else }}
|
||||
<p>No posts available at the moment.</p>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ if .Pages }}
|
||||
<ol class="post-list" role="list">
|
||||
{{ range .Pages }} {{ $dateISO := .Date.Format "2006-01-02T15:04:05Z07:00" }} {{ $dateHuman := .Date.Format
|
||||
"January 2, 2006" }}
|
||||
<li role="listitem">
|
||||
<a href="{{ .Permalink }}" class="post-list-item-link" aria-label="Read {{ .Title }}">
|
||||
<article class="post-list-item" itemscope itemtype="http://schema.org/BlogPosting">
|
||||
<header>
|
||||
<h2>
|
||||
<span itemprop="headline">{{ .Title }}</span>
|
||||
</h2>
|
||||
<time datetime="{{ $dateISO }}" itemprop="datePublished"> {{ $dateHuman }} </time>
|
||||
<meta itemprop="author" content="{{ .Site.Params.author }}" />
|
||||
</header>
|
||||
<section>
|
||||
<p itemprop="description">
|
||||
{{ if .Params.description }}{{ .Params.description }}{{ else }}{{ .Summary }}{{ end }}
|
||||
</p>
|
||||
</section>
|
||||
</article>
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ol>
|
||||
{{ else }}
|
||||
<p>No posts available at the moment.</p>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
|
|
|||
|
|
@ -1,68 +1,53 @@
|
|||
{{ define "main" }}
|
||||
<div class="layout">
|
||||
{{ $dateISO := .Date.Format "2006-01-02T15:04:05Z07:00" }} {{ $dateHuman :=
|
||||
.Date.Format "January 2, 2006" }}
|
||||
{{ $dateISO := .Date.Format "2006-01-02T15:04:05Z07:00" }} {{ $dateHuman := .Date.Format "January 2, 2006" }}
|
||||
|
||||
<header class="global-header">
|
||||
<nav role="navigation" aria-label="Main navigation">
|
||||
<a class="header-link-home" href="/" aria-label="Go to homepage">Home</a>
|
||||
<a
|
||||
class="header-link-all-posts"
|
||||
href="/writing/"
|
||||
aria-label="View all posts"
|
||||
>All Posts</a
|
||||
>
|
||||
</nav>
|
||||
</header>
|
||||
<header class="global-header">
|
||||
<nav role="navigation" aria-label="Main navigation">
|
||||
<a class="header-link-home" href="/" aria-label="Go to homepage">Home</a>
|
||||
<a class="header-link-all-posts" href="/writing/" aria-label="View all posts">All Posts</a>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
|
||||
<header class="post-header">
|
||||
<h1 itemprop="headline">{{ .Title }}</h1>
|
||||
<div class="post-meta">
|
||||
<time datetime="{{ $dateISO }}" itemprop="datePublished">
|
||||
{{ $dateHuman }}
|
||||
</time>
|
||||
{{ if .Lastmod }} {{ $lastmodISO := .Lastmod.Format
|
||||
"2006-01-02T15:04:05Z07:00" }}
|
||||
<meta itemprop="dateModified" content="{{ $lastmodISO }}" />
|
||||
{{ end }}
|
||||
<meta itemprop="author" content="{{ .Site.Params.author }}" />
|
||||
{{ if .Params.description }}
|
||||
<meta itemprop="description" content="{{ .Params.description }}" />
|
||||
{{ end }}
|
||||
</div>
|
||||
</header>
|
||||
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
|
||||
<header class="post-header">
|
||||
<h1 itemprop="headline">{{ .Title }}</h1>
|
||||
<div class="post-meta">
|
||||
<time datetime="{{ $dateISO }}" itemprop="datePublished"> {{ $dateHuman }} </time>
|
||||
{{ if .Lastmod }} {{ $lastmodISO := .Lastmod.Format "2006-01-02T15:04:05Z07:00" }}
|
||||
<meta itemprop="dateModified" content="{{ $lastmodISO }}" />
|
||||
{{ end }}
|
||||
<meta itemprop="author" content="{{ .Site.Params.author }}" />
|
||||
{{ if .Params.description }}
|
||||
<meta itemprop="description" content="{{ .Params.description }}" />
|
||||
{{ end }}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<section class="post-content" itemprop="articleBody">
|
||||
{{ .Content }}
|
||||
</section>
|
||||
</article>
|
||||
<section class="post-content" itemprop="articleBody">{{ .Content }}</section>
|
||||
</article>
|
||||
|
||||
<nav class="post-nav" role="navigation" aria-label="Post navigation">
|
||||
<ul>
|
||||
<li class="post-nav-prev">
|
||||
{{ if .NextInSection }}
|
||||
<a
|
||||
href="{{ .NextInSection.Permalink }}"
|
||||
rel="prev"
|
||||
aria-label="Previous post: {{ .NextInSection.Title }}"
|
||||
>
|
||||
← {{ .NextInSection.Title }}
|
||||
</a>
|
||||
{{ end }}
|
||||
</li>
|
||||
<li class="post-nav-next">
|
||||
{{ if .PrevInSection }}
|
||||
<a
|
||||
href="{{ .PrevInSection.Permalink }}"
|
||||
rel="next"
|
||||
aria-label="Next post: {{ .PrevInSection.Title }}"
|
||||
>
|
||||
{{ .PrevInSection.Title }} →
|
||||
</a>
|
||||
{{ end }}
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<nav class="post-nav" role="navigation" aria-label="Post navigation">
|
||||
<ul>
|
||||
<li class="post-nav-prev">
|
||||
{{ if .NextInSection }}
|
||||
<a
|
||||
href="{{ .NextInSection.Permalink }}"
|
||||
rel="prev"
|
||||
aria-label="Previous post: {{ .NextInSection.Title }}"
|
||||
>
|
||||
← {{ .NextInSection.Title }}
|
||||
</a>
|
||||
{{ end }}
|
||||
</li>
|
||||
<li class="post-nav-next">
|
||||
{{ if .PrevInSection }}
|
||||
<a href="{{ .PrevInSection.Permalink }}" rel="next" aria-label="Next post: {{ .PrevInSection.Title }}">
|
||||
{{ .PrevInSection.Title }} →
|
||||
</a>
|
||||
{{ end }}
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue