Update content pages and port juice templates to this site
parent
e787fb7714
commit
975529bcf4
|
@ -7,8 +7,6 @@ compile_sass = true
|
||||||
# Whether to build a search index to be used later on by a JavaScript library
|
# Whether to build a search index to be used later on by a JavaScript library
|
||||||
build_search_index = true
|
build_search_index = true
|
||||||
|
|
||||||
theme = "juice"
|
|
||||||
|
|
||||||
taxonomies = [
|
taxonomies = [
|
||||||
{ name = "tags", paginate_by = 10 },
|
{ name = "tags", paginate_by = 10 },
|
||||||
]
|
]
|
||||||
|
@ -17,6 +15,7 @@ taxonomies = [
|
||||||
# Whether to do syntax highlighting
|
# Whether to do syntax highlighting
|
||||||
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
|
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
|
||||||
highlight_code = true
|
highlight_code = true
|
||||||
|
highlight_theme = "inspired-github"
|
||||||
|
|
||||||
[extra]
|
[extra]
|
||||||
juice_logo_name = "penguincoder"
|
juice_logo_name = "penguincoder"
|
||||||
|
@ -24,6 +23,5 @@ juice_logo_path = "tux.png"
|
||||||
juice_exclude_menu = []
|
juice_exclude_menu = []
|
||||||
juice_extra_menu = [
|
juice_extra_menu = [
|
||||||
{ title = "Blog", link = "/blog" },
|
{ title = "Blog", link = "/blog" },
|
||||||
{ title = "Resume", link = "/resume" },
|
|
||||||
]
|
]
|
||||||
repository_url = "https://git.penguincoder.org/penguincoder/penguincoder-org"
|
repository_url = "https://git.penguincoder.org/penguincoder/penguincoder-org"
|
|
@ -1,25 +1,43 @@
|
||||||
+++
|
+++
|
||||||
title = "penguincoder"
|
title = "penguincoder"
|
||||||
description = "About me"
|
description = "About me"
|
||||||
|
sort_by = "weight"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
This is my personal site. Check out my [resume](/resume) if you need an experienced software engineer. You can also read about the software and open-source licenses I used to produce this site on the [about](/about) page.
|
||||||
|
|
||||||
# Social Media
|
# Social Media
|
||||||
|
|
||||||
[{{ icon(name="git-alt") }}](https://git.penguincoder.org/penguincoder)
|
<div id="social-media-links">
|
||||||
[{{ icon(name="github") }}](https://github.com/penguincoder)
|
<a href="https://git.penguincoder.org/penguincoder" title="Gitea">
|
||||||
[{{ icon(name="stack-overflow") }}](https://stackoverflow.com/users/812879/penguincoder)
|
<img src="/gitea-logo.svg" alt="Gitea" />
|
||||||
[{{ icon(name="keybase") }}](https://keybase.io/penguincoder)
|
</a>
|
||||||
[{{ icon(name="reddit") }}](https://reddit.com/u/therealpenguincoder)
|
<a href="https://github.com/penguincoder" title="Github">
|
||||||
[{{ icon(name="twitter") }}](https://twitter.com/penguincoder)
|
<img src="/icons8-github.svg" alt="Github" />
|
||||||
[{{ icon(name="mastodon") }}](https://hachyderm.io/@penguincoder)
|
</a>
|
||||||
[{{ icon(name="linkedin") }}](https://www.linkedin.com/in/andrew-coleman-1238834/)
|
<a href="https://stackoverflow.com/users/812879/penguincoder" title="Stack Overflow">
|
||||||
[{{ icon(name="instagram") }}](https://www.instagram.com/penguincoder)
|
<img src="/icons8-stack-overflow.svg" alt="Stack Overflow" />
|
||||||
|
</a>
|
||||||
|
<a href="https://keybase.io/penguincoder" title="Keybase">
|
||||||
|
<img src="/icons8-keybase2.svg" alt="Keybase" />
|
||||||
|
</a>
|
||||||
|
<a href="https://reddit.com/u/therealpenguincoder" title="Reddit">
|
||||||
|
<img src="/icons8-reddit.svg" alt="Reddit" />
|
||||||
|
</a>
|
||||||
|
<a href="https://twitter.com/penguincoder" title="Twitter">
|
||||||
|
<img src="/icons8-twitter-circled.svg" alt="Twitter" />
|
||||||
|
</a>
|
||||||
|
<a href="https://hachyderm.io/@penguincoder" title="Mastodon">
|
||||||
|
<img src="/icons8-mastodon.svg" alt="Mastodon" />
|
||||||
|
</a>
|
||||||
|
<a href="https://www.linkedin.com/in/andrew-coleman-1238834/" title="LinkedIn">
|
||||||
|
<img src="/icons8-linkedin.svg" alt="LinkedIn" />
|
||||||
|
</a>
|
||||||
|
<a href="https://www.instagram.com/penguincoder" title="Instagram">
|
||||||
|
<img src="/icons8-instagram.svg" alt="Instagram" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
# Github Activity
|
# Github Activity
|
||||||
|
|
||||||
![Github Activity](https://github-readme-stats.vercel.app/api?username=penguincoder&count_private=true&theme=transparent&show_icons=true)
|
![Github Activity](https://github-readme-stats.vercel.app/api?username=penguincoder&count_private=true&theme=transparent&show_icons=true)
|
||||||
|
|
||||||
# [Resume](/resume)
|
|
||||||
|
|
||||||
# [Blog](/blog)
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
+++
|
||||||
|
title = "About"
|
||||||
|
description = "About"
|
||||||
|
weight = 10
|
||||||
|
+++
|
||||||
|
|
||||||
|
# Juice
|
||||||
|
|
||||||
|
**[Juice](https://juice.huhu.io/)** is an intuitive, elegant, and responsive Zola theme for product sites.
|
||||||
|
Built by [Huhu.io](https://huhu.io), adopted by a several product sites.
|
||||||
|
|
||||||
|
Juice is released under the MIT license.
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2020 Huhu
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
# Zola
|
||||||
|
|
||||||
|
[Zola](https://www.getzola.org) is a fast static site generator in a single binary with everything built-in.
|
||||||
|
|
||||||
|
# icons8
|
||||||
|
|
||||||
|
We use several [icons8](https://icons8.com) images throughout the site.
|
|
@ -0,0 +1,84 @@
|
||||||
|
+++
|
||||||
|
title = "Resume"
|
||||||
|
description = "A history of professional, educational, and personal interests"
|
||||||
|
weight = 1
|
||||||
|
+++
|
||||||
|
|
||||||
|
# Summary
|
||||||
|
|
||||||
|
I am a polyglot developer with considerable experience in Ruby and Rails and bash. I excel at documenting critical technical processes for other engineers, being a force multiplier, and mentoring other developers. I am very passionate about finding new and creative ways to automate deployments in cloud environments so that business value can be delivered quickly and efficiently.
|
||||||
|
|
||||||
|
# Work History
|
||||||
|
|
||||||
|
## OysterHR, Remote
|
||||||
|
|
||||||
|
### Tech Lead & Staff Software Engineer
|
||||||
|
|
||||||
|
September 2021 - 20 January 2023
|
||||||
|
|
||||||
|
* Designed and implemented a reproducible and identical local stack across Linux and macOS using `nix`, `direnv`, `just`, and `supervisord`
|
||||||
|
* Single-handedly reduced new engineer onboarding time to about 2 hours
|
||||||
|
* Supported the entire engineering department with the local development environment in both Linux and macOS
|
||||||
|
* Rewrote the git-hosted markdown documentation into a complete tutorial and walkthrough to onboard new developers using Notion
|
||||||
|
* Designed complex data structures for use in all countries serviced by Oyster
|
||||||
|
* Developed policies and best practices for features across multiple teams and stakeholders, including product
|
||||||
|
* Participated in many technical interviews, resulting in hiring many new engineers including other Staff level engineers
|
||||||
|
|
||||||
|
## Consolo Services / WellSky, Remote
|
||||||
|
|
||||||
|
### Principal Software Architect
|
||||||
|
|
||||||
|
June 2006 - August 2021
|
||||||
|
|
||||||
|
* Founding engineer of the team; one of four initial employees
|
||||||
|
* Led product from a tiny startup of about 7 customers to over 30 M requests / month
|
||||||
|
* Led migration of the core application from pre-beta Ruby on Rails all the way to Kubernetes deployments using Helm charts first in AWS and later in GCP
|
||||||
|
* Implemented one of the most sophisticated billing systems for hospice and Medicare
|
||||||
|
* Spearheaded a platform-wide documentation project to share knowledge
|
||||||
|
* Designed benchmarks to improve system response times across the entire platform
|
||||||
|
* Committed bug fixes to `vagrant`, the open source development tool
|
||||||
|
* We sold the Consolo IP to WellSky in 2019 at a $50M valuation
|
||||||
|
* Contributed in some way to each of the 20+ microservices
|
||||||
|
* Fostered new developers
|
||||||
|
|
||||||
|
## Performance Support, Montgomery, AL
|
||||||
|
|
||||||
|
### Systems Operator
|
||||||
|
|
||||||
|
October 2004 - June 2006
|
||||||
|
|
||||||
|
* Maintained an interim Secret clearance
|
||||||
|
* Managed Department of Defense computer systems at Maxwell Air Force base
|
||||||
|
* Developed tools to automate system maintenance tasks and shift duties
|
||||||
|
* Reduced a process from 3 hours per shift to an automated email every 15 minutes
|
||||||
|
* Administered machines running HP-UX on PA-RISC processors
|
||||||
|
|
||||||
|
# Technologies
|
||||||
|
|
||||||
|
{{ capsule(item="Ruby") }} {{ capsule(item="Ruby-on-Rails") }} {{ capsule(item="Rust") }} {{ capsule(item="Kubernetes") }} {{ capsule(item="Helm") }} {{ capsule(item="Cloud infrastructure (AWS & GCP)") }} {{ capsule(item="Github Actions") }} {{ capsule(item="Google Cloud Build") }} {{ capsule(item="Heroku") }} {{ capsule(item="DataDog") }} {{ capsule(item="NewRelic") }} {{ capsule(item="Prometheus") }} {{ capsule(item="Alertmanager") }} {{ capsule(item="Grafana") }} {{ capsule(item="Nix") }} {{ capsule(item="Docker") }} {{ capsule(item="Podman") }} {{ capsule(item="Terraform") }} {{ capsule(item="Ansible") }} {{ capsule(item="bash / sh scripting") }} {{ capsule(item="JavaScript") }} {{ capsule(item="TypeScript") }} {{ capsule(item="Notion") }} {{ capsule(item="mdbook") }} {{ capsule(item="Erlang") }} {{ capsule(item="Elixir") }} {{ capsule(item="PostgreSQL") }} {{ capsule(item="SQLite") }} {{ capsule(item="Linux") }} {{ capsule(item="FreeBSD") }} {{ capsule(item="GNU Make") }} {{ capsule(item="just") }} {{ capsule(item="nginx") }} {{ capsule(item="caddy") }} {{ capsule(item="JSON") }} {{ capsule(item="YAML") }} {{ capsule(item="TOML") }} {{ capsule(item="REST") }} {{ capsule(item="GraphQL") }} {{ capsule(item="HTTP(S)") }}
|
||||||
|
|
||||||
|
# Education
|
||||||
|
|
||||||
|
## Tennessee Tech University
|
||||||
|
|
||||||
|
### Computer Science, B.S.
|
||||||
|
|
||||||
|
August 2001 - December 2009
|
||||||
|
|
||||||
|
# Personal
|
||||||
|
|
||||||
|
* I am the cook of the house.
|
||||||
|
* I make most meals in the house and I can also make some killer baked goods.
|
||||||
|
* I enjoy overlanding, offroading, and camping.
|
||||||
|
* My family has a farm.
|
||||||
|
* A _real_ farm with more than 75 animals.
|
||||||
|
* I do not need a gym membership: I have a farm. It is hard work, but rewarding.
|
||||||
|
* My partner grows cut flowers professionally.
|
||||||
|
* My tractor is more expensive than my truck.
|
||||||
|
* I self-host most of the services I use online (but not email).
|
||||||
|
* I enjoy playing video games.
|
||||||
|
* I learn new programming languages that seem interesting.
|
||||||
|
* My favorite method is to use the [Advent of Code](https://adventofcode.com) puzzles.
|
||||||
|
* My family recently developed a shared interest in Pokemon TCG (Trading Card Game).
|
||||||
|
* My partner and I have travelled to Japan 5 times together.
|
||||||
|
* COVID has been hard on travel, hopefully the price of the tickets will come down now that the borders are open to tourists again (2023-01-12).
|
|
@ -1,12 +0,0 @@
|
||||||
+++
|
|
||||||
title = "Resume"
|
|
||||||
description = "A history of professional, educational, and personal interests"
|
|
||||||
+++
|
|
||||||
|
|
||||||
# Technical Skills
|
|
||||||
|
|
||||||
# Work History
|
|
||||||
|
|
||||||
# Education
|
|
||||||
|
|
||||||
# Personal
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
{% macro render_header() %}
|
||||||
|
{% set section = get_section(path="_index.md") %}
|
||||||
|
<a href="{{ section.permalink | safe }}">
|
||||||
|
<div class="logo">
|
||||||
|
<img src="{{ get_url(path=config.extra.juice_logo_path) }}" alt="logo">
|
||||||
|
{{ config.extra.juice_logo_name }}
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<nav>
|
||||||
|
{% for page in section.pages %}
|
||||||
|
{% if config.extra.juice_exclude_menu is not containing(page.title) %}
|
||||||
|
<a class="nav-item subtitle-text" href="{{ page.permalink | safe }}">{{ page.title }}</a>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% if config.extra.juice_extra_menu %}
|
||||||
|
{% for menu in config.extra.juice_extra_menu %}
|
||||||
|
<a class="nav-item subtitle-text" href="{{ menu.link | safe }}">{{ menu.title }}</a>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
</nav>
|
||||||
|
{% endmacro render_header %}
|
|
@ -1,30 +1,152 @@
|
||||||
{% extends "juice/templates/index.html" %}
|
{% import "_macros.html" as macros %}
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
{% block head %}
|
<head>
|
||||||
<link rel="stylesheet" href="{{ get_url(path="pc.css") }}" />
|
<meta charset="UTF-8">
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.2.0/css/all.min.css" integrity="sha256-AbA177XfpSnFEvgpYu1jMygiLabzPCJCRIBtR5jGc0k=" crossorigin="anonymous">
|
<title>{% block title %}{{ config.title }}{% endblock title %}</title>
|
||||||
{% endblock head %}
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
{% block favicon %}
|
||||||
|
<link rel="icon" sizes="16x16 32x32" type="image/png" href="/icons8-developer-ddara-lineal-color-32.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="76x76" href="/icons8-developer-ddara-lineal-color-76.png">
|
||||||
|
{% endblock favicon %}
|
||||||
|
{% include "_variables.html" %}
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Alfa+Slab+One&display=swap" rel="stylesheet">
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Fira+Sans:400,500,600&display=swap" rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="/normalize.css">
|
||||||
|
<link rel="stylesheet" href="{{ get_url(path="juice.css") }}">
|
||||||
|
{% block head %}
|
||||||
|
{% endblock head %}
|
||||||
|
</head>
|
||||||
|
|
||||||
{% block hero %}
|
<body>
|
||||||
<section class="text-center">
|
{% block header %}
|
||||||
|
|
||||||
|
<header class="pos-absolute" style="background-color: transparent">
|
||||||
|
{{ macros::render_header() }}
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="hero">
|
||||||
|
{% block hero %}
|
||||||
|
<section class="text-center">
|
||||||
<h1 class="heading-text" style="font-size: 50px;">
|
<h1 class="heading-text" style="font-size: 50px;">
|
||||||
Andrew Coleman
|
Andrew Coleman
|
||||||
</h1>
|
</h1>
|
||||||
<h3 class="title-text">
|
<h3 class="title-text">
|
||||||
An experienced software engineer and architect. <br />Sometimes posting about hobbies and farming, too.
|
An experienced software engineer and architect. <br />
|
||||||
|
Sometimes posting about hobbies and farming, too.
|
||||||
</h3>
|
</h3>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<div class="explore-more text"
|
<div class="explore-more text"
|
||||||
onclick="document.getElementById('overview').scrollIntoView({behavior: 'smooth'})">
|
onclick="document.getElementById('overview').scrollIntoView({behavior: 'smooth'})">
|
||||||
Explore More ⇩
|
Explore More ⇩
|
||||||
</div>
|
</div>
|
||||||
{% endblock hero %}
|
|
||||||
|
|
||||||
{% block footer %}
|
<img class="hero-image" style="max-width: 512px;" src="{{ get_url(path="2020-11-11_07-52-28.jpg") }}">
|
||||||
<footer>
|
|
||||||
|
<div class="explore-more text"
|
||||||
|
onclick="document.getElementById('features').scrollIntoView({behavior: 'smooth'})">
|
||||||
|
Explore More ⇩
|
||||||
|
</div>
|
||||||
|
<style>
|
||||||
|
.hero section {
|
||||||
|
padding: 0 5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 768px) {
|
||||||
|
.hero section {
|
||||||
|
padding: 0 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-image {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#social-media-links img {
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#social-media-links a, #social-media-links a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
{% endblock hero %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock header %}
|
||||||
|
|
||||||
|
<main>
|
||||||
|
{% block toc %}
|
||||||
|
{% if section.toc %}
|
||||||
|
{% set toc = section.toc %}
|
||||||
|
{% elif page.toc %}
|
||||||
|
{% set toc = page.toc %}
|
||||||
|
{% endif %}
|
||||||
|
{% if toc %}
|
||||||
|
<div class="toc">
|
||||||
|
<div class="toc-sticky">
|
||||||
|
{% for h in toc %}
|
||||||
|
<div class="toc-item">
|
||||||
|
<a class="subtext" href="{{h.permalink | safe}}">{{ h.title }}</a>
|
||||||
|
</div>
|
||||||
|
{% if h.children %}
|
||||||
|
{% for h2 in h.children %}
|
||||||
|
<div class="toc-item-child">
|
||||||
|
<a class="subtext" href="{{h2.permalink | safe}}"><small>- {{ h2.title }}</small></a>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endblock toc %}
|
||||||
|
|
||||||
|
<div class="content text">
|
||||||
|
{% block content %}
|
||||||
|
<div id="features" class="heading-text">Overview</div>
|
||||||
|
{{ section.content | safe }}
|
||||||
|
{% endblock content %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% block sidebar %}
|
||||||
|
{% endblock sidebar %}
|
||||||
|
</main>
|
||||||
|
|
||||||
|
{% block footer %}
|
||||||
|
<footer>
|
||||||
<small class="subtext text-center">
|
<small class="subtext text-center">
|
||||||
© Andrew Coleman 2023 <br />
|
Made with <img src="/icons8-code-16.png" alt="Code" /> and <img src="/icons8-heart-16.png" alt="heart" /> © Andrew Coleman 2023
|
||||||
Made with ❤️ using <a href="https://juice.huhu.io">Juice</a> and <a href="ihttps://www.getzola.org">Zola</a>.
|
|
||||||
</small>
|
</small>
|
||||||
{% endblock footer %}
|
</footer>
|
||||||
|
{% endblock footer %}
|
||||||
|
</body>
|
||||||
|
<script>
|
||||||
|
const scrollHandler = entries => {
|
||||||
|
// Find the first entry which intersecting and ratio > 0.9 to highlight.
|
||||||
|
let entry = entries.find(entry => {
|
||||||
|
return entry.isIntersecting && entry.intersectionRatio > 0.9;
|
||||||
|
});
|
||||||
|
if (!entry) return;
|
||||||
|
|
||||||
|
document.querySelectorAll(".toc a").forEach((item) => {
|
||||||
|
item.classList.remove("active");
|
||||||
|
});
|
||||||
|
|
||||||
|
// let url = new URL(`#${entry.target.id}`);
|
||||||
|
let link = document.querySelector(`.toc a[href$="${decodeURIComponent(`#${entry.target.id}`)}"]`)
|
||||||
|
if (link) {
|
||||||
|
link.classList.add("active");
|
||||||
|
link.scrollIntoView({ behavior: "auto", block: "nearest" });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
// Set -100px root margin to improve highlight experience.
|
||||||
|
const observer = new IntersectionObserver(scrollHandler, { threshold: 1 });
|
||||||
|
let items = document.querySelectorAll('h1,h2,h3,h4,h5,h6');
|
||||||
|
items.forEach(item => observer.observe(item));
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</html>
|
|
@ -1,7 +1,15 @@
|
||||||
{% extends "juice/templates/page.html" %}
|
{% import "_macros.html" as macros %}
|
||||||
|
{% extends "index.html" %}
|
||||||
|
|
||||||
{% block head %}
|
{% block title %}{{ page.title }} | {{ super() }} {% endblock title %}
|
||||||
<link rel="stylesheet" href="{{ get_url(path="pc.css") }}" />
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.2.0/css/all.min.css" integrity="sha256-AbA177XfpSnFEvgpYu1jMygiLabzPCJCRIBtR5jGc0k=" crossorigin="anonymous">
|
|
||||||
{% endblock head %}
|
|
||||||
|
|
||||||
|
{% block header %}
|
||||||
|
<header class="box-shadow">
|
||||||
|
{{ macros::render_header() }}
|
||||||
|
</header>
|
||||||
|
{% endblock header %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="heading-text">{{ page.description }}</div>
|
||||||
|
{{ page.content | safe }}
|
||||||
|
{% endblock content %}
|
|
@ -0,0 +1 @@
|
||||||
|
<span class="capsule">{{ item }}</span>
|
Loading…
Reference in New Issue