mirror of
https://github.com/jbowdre/runtimeterror.git
synced 2024-12-24 11:52:19 +00:00
taxonomy overhaul
This commit is contained in:
parent
b05c8d5813
commit
a0ad23f4c3
77 changed files with 176 additions and 152 deletions
|
@ -58,7 +58,7 @@ enableInlineShortcodes = true
|
|||
|
||||
[taxonomies]
|
||||
tag = "tags"
|
||||
series = "series"
|
||||
category = "categories"
|
||||
|
||||
[minify]
|
||||
disableXML = true
|
||||
|
|
|
@ -5,22 +5,28 @@
|
|||
# weight = 10
|
||||
|
||||
[[main]]
|
||||
identifier = "projects"
|
||||
name = "projects"
|
||||
url = "/series/projects/"
|
||||
identifier = "posts"
|
||||
name = "posts"
|
||||
url = "/"
|
||||
weight = 1
|
||||
|
||||
[[main]]
|
||||
identifier = "tips"
|
||||
name = "tips"
|
||||
url = "/series/tips/"
|
||||
weight = 1
|
||||
identifier = "categories"
|
||||
name = "categories"
|
||||
url = "/categories/"
|
||||
weight = 2
|
||||
|
||||
[[main]]
|
||||
identifier = "code"
|
||||
name = "code"
|
||||
url = "/series/code/"
|
||||
weight = 1
|
||||
identifier = "tags"
|
||||
name = "tags"
|
||||
url = "/tags/"
|
||||
weight = 3
|
||||
|
||||
[[main]]
|
||||
identifier = "about"
|
||||
name = "about"
|
||||
url = "/about/"
|
||||
weight = 4
|
||||
|
||||
[[main]]
|
||||
identifier = "virtuallypotato"
|
||||
|
|
|
@ -11,11 +11,11 @@ You've (somehow) managed to stumble upon my dark corner of the internet[^1].
|
|||
|
||||
I've enjoyed tinkering with computers and their code since discovering I could alter variable values in [`GORILLA.BAS`](https://en.wikipedia.org/wiki/Gorillas_%28video_game%29) on my dad's work computer to imbue the thrown bananas with enough explosive power to level the entire city. I thought, "hey, that's neat," and then spent much of my childhood free time learning how *else* I could bend computers to my will.
|
||||
|
||||
Once I grew up[^2], I found a career in system administration, and I leveraged my passion for coding to write scripts to help manage systems more efficiently. While managing a global-scale VMware environment, I was tasked with implementing [vRealize Automation](/series/vra8) (now called "Aria Automation"). I didn't realize it at the time but that was the start of my DevOps transformation. I started thinking about infrastructure-as-code, and began using [HashiCorp Packer](https://github.com/jbowdre/packer-vsphere-templates) and a CI/CD pipeline to automatically build fully-up-to-date VM templates on a weekly cadence.
|
||||
Once I grew up[^2], I found a career in system administration, and I leveraged my passion for coding to write scripts to help manage systems more efficiently. While managing a global-scale VMware environment, I was tasked with implementing [vRealize Automation](/categories/vmware) (now called "Aria Automation"). I didn't realize it at the time but that was the start of my DevOps transformation. I started thinking about infrastructure-as-code, and began using [HashiCorp Packer](https://github.com/jbowdre/packer-vsphere-templates) and a CI/CD pipeline to automatically build fully-up-to-date VM templates on a weekly cadence.
|
||||
|
||||
I'm now part of a small platform engineering team within that same large corporation, focused on leveraging DevOps thinking and tools to help our internal customers modernize how they operate IT, build code, and ship products, while designing solutions to help them accomplish those goals. It's a great blend of my virtual infrastructure operations background, hobbyist development experience, and hunger for solving problems, and I really enjoy applying these skills to solve interesting challenges at scale.
|
||||
|
||||
On my off time, I tinker with new [projects](/series/projects) in my little homelab (and share some of those adventures here). I also help out on Google's product support forums as a [Product Expert](https://productexperts.withgoogle.com/what-it-is), where I support Pixel phones, earbuds, and watches, as well as Chromebooks (primarily with Linux-related queries). Helping users troubleshoot their issues scratches my problem-solving itch, and it keeps me connected with some really great like-minded tech enthusiasts.
|
||||
On my off time, I tinker with new [projects](/categories/self-hosting) in my little homelab (and share some of those adventures here). I also help out on Google's product support forums as a [Product Expert](https://productexperts.withgoogle.com/what-it-is), where I support Pixel phones, earbuds, and watches, as well as Chromebooks (primarily with Linux-related queries). Helping users troubleshoot their issues scratches my problem-solving itch, and it keeps me connected with some really great like-minded tech enthusiasts.
|
||||
|
||||
On weekends, I race my daily-driven 2014 Subaru BRZ in local [autocross events](https://l.runtimeterror.dev/my-autox-vids) or wrench on my 1974 Volkswagen Karmann Ghia.
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ date: "2020-09-14T08:34:30Z"
|
|||
thumbnail: qDTXt1jp3.png
|
||||
featureImage: qDTXt1jp3.png
|
||||
usePageBundles: true
|
||||
categories: ChromeOS
|
||||
tags:
|
||||
- linux
|
||||
- chromeos
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Tips
|
||||
categories: Tips
|
||||
date: "2020-09-24T08:34:30Z"
|
||||
thumbnail: fmLDUWjia.png
|
||||
usePageBundles: true
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: vRA8
|
||||
categories: VMware
|
||||
date: "2021-06-01T08:34:30Z"
|
||||
thumbnail: -Fuvz-GmF.png
|
||||
usePageBundles: true
|
||||
|
@ -11,7 +11,7 @@ tags:
|
|||
title: Adding VM Notes and Custom Attributes with vRA8
|
||||
---
|
||||
|
||||
*In [past posts](/series/vra8), I started by [creating a basic deployment infrastructure](/vra8-custom-provisioning-part-one) in Cloud Assembly and using tags to group those resources. I then [wrote an integration](/integrating-phpipam-with-vrealize-automation-8) to let vRA8 use phpIPAM for static address assignments. I [implemented a vRO workflow](/vra8-custom-provisioning-part-two) for generating unique VM names which fit an organization's established naming standard, and then [extended the workflow](/vra8-custom-provisioning-part-three) to avoid any naming conflicts in Active Directory and DNS. And, finally, I [created an intelligent provisioning request form in Service Broker](/vra8-custom-provisioning-part-four) to make it easy for users to get the servers they need. That's got the core functionality pretty well sorted, so moving forward I'll be detailing additions that enable new capabilities and enhance the experience.*
|
||||
*In [past posts](/categories/vmware), I started by [creating a basic deployment infrastructure](/vra8-custom-provisioning-part-one) in Cloud Assembly and using tags to group those resources. I then [wrote an integration](/integrating-phpipam-with-vrealize-automation-8) to let vRA8 use phpIPAM for static address assignments. I [implemented a vRO workflow](/vra8-custom-provisioning-part-two) for generating unique VM names which fit an organization's established naming standard, and then [extended the workflow](/vra8-custom-provisioning-part-three) to avoid any naming conflicts in Active Directory and DNS. And, finally, I [created an intelligent provisioning request form in Service Broker](/vra8-custom-provisioning-part-four) to make it easy for users to get the servers they need. That's got the core functionality pretty well sorted, so moving forward I'll be detailing additions that enable new capabilities and enhance the experience.*
|
||||
|
||||
In this post, I'll describe how to get certain details from the Service Broker request form and into the VM's properties in vCenter. The obvious application of this is adding descriptive notes so I can remember what purpose a VM serves, but I will also be using [Custom Attributes](https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vcenterhost.doc/GUID-73606C4C-763C-4E27-A1DA-032E4C46219D.html) to store the server's Point of Contact information and a record of which ticketing system request resulted in the server's creation.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Projects
|
||||
categories: Self-Hosting
|
||||
date: "2021-05-27T08:34:30Z"
|
||||
thumbnail: HRRpFOKuN.png
|
||||
usePageBundles: true
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Projects
|
||||
categories: Automation
|
||||
date: "2020-11-24T08:34:30Z"
|
||||
lastmod: "2021-03-12"
|
||||
thumbnail: Ki7jo65t3.png
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Code
|
||||
categories: Code
|
||||
date: "2021-04-29T08:34:30Z"
|
||||
usePageBundles: true
|
||||
thumbnail: 20210723-script.png
|
||||
|
@ -11,7 +11,7 @@ title: Automatic unattended expansion of Linux root LVM volume to fill disk
|
|||
toc: false
|
||||
---
|
||||
|
||||
While working on my [vRealize Automation 8 project](/series/vra8), I wanted to let users specify how large a VM's system drive should be and have vRA apply that without any further user intervention. For instance, if the template has a 60GB C: drive and the user specifies that they want it to be 80GB, vRA will embiggen the new VM's VMDK to 80GB and then expand the guest file system to fill up the new free space.
|
||||
While working on my [vRealize Automation 8 project](/categories/vmware), I wanted to let users specify how large a VM's system drive should be and have vRA apply that without any further user intervention. For instance, if the template has a 60GB C: drive and the user specifies that they want it to be 80GB, vRA will embiggen the new VM's VMDK to 80GB and then expand the guest file system to fill up the new free space.
|
||||
|
||||
I'll get into the details of how that's implemented from the vRA side #soon, but first I needed to come up with simple scripts to extend the guest file system to fill the disk.
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ alias: automating-security-camera-notifications-with-home-assistant-and-ntfy
|
|||
toc: true
|
||||
comments: true
|
||||
thumbnail: thumbnail.png
|
||||
series: Projects
|
||||
categories: Automation
|
||||
tags:
|
||||
- api
|
||||
- automation
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Projects
|
||||
categories: Self-Hosting
|
||||
date: "2018-09-26T08:34:30Z"
|
||||
lastmod: "2022-03-06"
|
||||
thumbnail: i0UKdXleC.png
|
||||
|
|
|
@ -14,7 +14,7 @@ usePageBundles: true
|
|||
thumbnail: "code.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Code
|
||||
categories: Code
|
||||
tags:
|
||||
- vmware
|
||||
- powercli
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Tips
|
||||
categories: ChromeOS
|
||||
date: "2020-12-23T08:34:30Z"
|
||||
thumbnail: -lp1-DGiM.png
|
||||
usePageBundles: true
|
||||
|
|
|
@ -14,7 +14,7 @@ usePageBundles: true
|
|||
# thumbnail: "thumbnail.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Tips # Projects, Code, vRA8, K8s on vSphere
|
||||
categories: Tips # Projects, Code, vRA8, K8s on vSphere
|
||||
tags:
|
||||
- linux
|
||||
- shell
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Projects
|
||||
categories: Self-Hosting
|
||||
date: "2021-10-28T00:00:00Z"
|
||||
thumbnail: 20211028_wireguard_in_the_cloud.jpg
|
||||
usePageBundles: true
|
||||
|
|
|
@ -14,7 +14,7 @@ usePageBundles: true
|
|||
thumbnail: "thumbnail.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Projects
|
||||
categories: ChromeOS
|
||||
tags:
|
||||
- linux
|
||||
- chromeos
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: vRA8
|
||||
categories: VMware
|
||||
date: "2021-08-13T00:00:00Z"
|
||||
lastmod: "2022-01-18"
|
||||
usePageBundles: true
|
||||
|
|
|
@ -5,7 +5,7 @@ description: "I moved my homelab from VMware vSphere to Proxmox VE, and my only
|
|||
featured: false
|
||||
toc: true
|
||||
comments: true
|
||||
series: Tips # Projects, Code
|
||||
categories: Tips # Projects, Code
|
||||
tags:
|
||||
- homelab
|
||||
- linux
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
date: "2020-09-22T08:34:30Z"
|
||||
thumbnail: 8p-PSHx1R.png
|
||||
usePageBundles: true
|
||||
categories: Tips
|
||||
tags:
|
||||
- docker
|
||||
- windows
|
||||
|
|
|
@ -6,7 +6,7 @@ description: "Deploying and configuring a self-hosted pub-sub notification handl
|
|||
featured: false
|
||||
toc: true
|
||||
comments: true
|
||||
series: Projects
|
||||
categories: Self-Hosting
|
||||
tags:
|
||||
- android
|
||||
- api
|
||||
|
|
|
@ -14,7 +14,7 @@ usePageBundles: true
|
|||
thumbnail: "tanzu-completion.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Tips
|
||||
categories: VMware
|
||||
tags:
|
||||
- vmware
|
||||
- linux
|
||||
|
|
|
@ -14,7 +14,7 @@ featureImage: "quartz64.jpg" # Sets featured image on blog post.
|
|||
thumbnail: "quartz64.jpg" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Projects
|
||||
categories: VMware
|
||||
tags:
|
||||
- vmware
|
||||
- linux
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Projects
|
||||
categories: Self-Hosting
|
||||
date: "2021-06-28T00:00:00Z"
|
||||
thumbnail: 2xe34VJym.png
|
||||
usePageBundles: true
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Tips
|
||||
categories: Tips
|
||||
date: "2020-09-13T08:34:30Z"
|
||||
usePageBundles: true
|
||||
tags:
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: vRA8
|
||||
categories: VMware
|
||||
date: "2021-11-05T00:00:00Z"
|
||||
thumbnail: 20211105_ssc_403.png
|
||||
usePageBundles: true
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
date: "2020-10-07T08:34:30Z"
|
||||
thumbnail: MnmMuA0HC.png
|
||||
usePageBundles: true
|
||||
categories: Tips
|
||||
tags:
|
||||
- windows
|
||||
- linux
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Projects
|
||||
categories: Self-Hosting
|
||||
date: "2021-08-20T00:00:00Z"
|
||||
lastmod: 2022-02-03
|
||||
usePageBundles: true
|
||||
|
|
|
@ -14,7 +14,7 @@ usePageBundles: true
|
|||
thumbnail: "thumbnail.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: vRA8 # Projects, Code, vRA8
|
||||
categories: VMware # Projects, Code, vRA8
|
||||
tags:
|
||||
- vmware
|
||||
- vra
|
||||
|
|
|
@ -14,7 +14,7 @@ usePageBundles: true
|
|||
thumbnail: "gitea-logo.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Projects
|
||||
categories: Self-Hosting
|
||||
tags:
|
||||
- caddy
|
||||
- linux
|
||||
|
|
|
@ -16,6 +16,7 @@ shareImage: "/hugo-logo-wide.png"
|
|||
# shareImage: "/images/path/share.png" # Designate a separate image for social media sharing.
|
||||
codeMaxLines: 10 # Override global value for how many lines within a code block before auto-collapsing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
categories: Blog
|
||||
tags:
|
||||
- meta
|
||||
- hugo
|
||||
|
|
|
@ -6,7 +6,7 @@ timeless: true
|
|||
description: There are no dumb questions - but there are smarter (and dumber) ways to ask them.
|
||||
featured: true
|
||||
aliases: ["how2ask"]
|
||||
series: Tips
|
||||
categories: Tips
|
||||
---
|
||||
I spend a lot of my time and energy answering technical questions, both professionally and "for fun" as a way to scratch that troubleshooting itch. How a question is asked plays a big factor in how effectively I'll be able to answer it.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: vRA8
|
||||
categories: VMware
|
||||
date: "2021-02-22T08:34:30Z"
|
||||
lastmod: 2022-07-25
|
||||
thumbnail: 7_QI-Ti8g.png
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: vRA8
|
||||
categories: VMware
|
||||
date: "2021-07-21T00:00:00Z"
|
||||
thumbnail: 20210721-successful-ad_machine.png
|
||||
usePageBundles: true
|
||||
|
|
|
@ -14,7 +14,7 @@ usePageBundles: true
|
|||
thumbnail: "thumbnail.jpg" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: K8s on vSphere
|
||||
categories: VMware
|
||||
tags:
|
||||
- vmware
|
||||
- linux
|
||||
|
|
|
@ -14,7 +14,7 @@ usePageBundles: true
|
|||
thumbnail: "ldaps_test.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
shareImage: "ldaps_test.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: K8s on vSphere
|
||||
categories: VMware
|
||||
tags:
|
||||
- vmware
|
||||
- kubernetes
|
||||
|
|
|
@ -14,7 +14,7 @@ featureImage: "tanzu.png" # Sets featured image on blog post.
|
|||
thumbnail: "tanzu.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Tips
|
||||
categories: VMware
|
||||
tags:
|
||||
- vmware
|
||||
- kubernetes
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Code
|
||||
categories: Code
|
||||
date: "2020-09-16T08:34:30Z"
|
||||
thumbnail: LJOcy2oqc.png
|
||||
usePageBundles: true
|
||||
|
|
|
@ -14,7 +14,7 @@ usePageBundles: true
|
|||
thumbnail: "nessus_login.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Tips # Projects, Code, vRA8
|
||||
categories: Self-Hosting
|
||||
tags:
|
||||
- vmware
|
||||
- kubernetes
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: vRA8
|
||||
categories: VMware
|
||||
date: "2021-08-25T00:00:00Z"
|
||||
usePageBundles: true
|
||||
tags:
|
||||
|
|
|
@ -14,7 +14,7 @@ usePageBundles: true
|
|||
thumbnail: "PowerCLI.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Code
|
||||
categories: VMware
|
||||
tags:
|
||||
- vmware
|
||||
- powercli
|
||||
|
|
|
@ -14,7 +14,7 @@ usePageBundles: true
|
|||
# thumbnail: "thumbnail.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Code
|
||||
categories: Code
|
||||
tags:
|
||||
- powershell
|
||||
- windows
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Tips
|
||||
categories: VMware
|
||||
date: "2021-01-30T08:34:30Z"
|
||||
thumbnail: XTaU9VDy8.png
|
||||
usePageBundles: true
|
||||
|
|
|
@ -14,7 +14,7 @@ usePageBundles: true
|
|||
# thumbnail: "thumbnail.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Tips # Projects, Code, vRA8, K8s on vSphere
|
||||
categories: VMware # Projects, Code, vRA8, K8s on vSphere
|
||||
tags:
|
||||
- vmware
|
||||
- powershell
|
||||
|
|
|
@ -6,7 +6,7 @@ description: "Exploring Cloudflare Tunnel as an alternative to Tailscale Funnel
|
|||
featured: false
|
||||
toc: true
|
||||
comments: true
|
||||
series: Tips # Projects, Code
|
||||
categories: Self-Hosting
|
||||
tags:
|
||||
- cloud
|
||||
- containers
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Tips
|
||||
categories: Blog
|
||||
date: "2021-07-24T16:46:00Z"
|
||||
thumbnail: 20210724-series-navigation.png
|
||||
usePageBundles: true
|
||||
|
@ -9,12 +9,12 @@ tags:
|
|||
title: Recreating Hashnode Series (Categories) in Jekyll on GitHub Pages
|
||||
---
|
||||
|
||||
I recently [migrated this site](/virtually-potato-migrated-to-github-pages) from Hashnode to GitHub Pages, and I'm really getting into the flexibility and control that managing the content through Jekyll provides. So, naturally, after finalizing the move I got to work recreating Hashnode's "Series" feature, which lets you group posts together and highlight them as a collection. One of the things I liked about the Series setup was that I could control the order of the collected posts: my posts about [building out the vRA environment in my homelab](/series/vra8) are probably best consumed in chronological order (oldest to newest) since the newer posts build upon the groundwork laid by the older ones, while posts about my [other one-off projects](/series/projects) could really be enjoyed in any order.
|
||||
I recently [migrated this site](/virtually-potato-migrated-to-github-pages) from Hashnode to GitHub Pages, and I'm really getting into the flexibility and control that managing the content through Jekyll provides. So, naturally, after finalizing the move I got to work recreating Hashnode's "Series" feature, which lets you group posts together and highlight them as a collection. One of the things I liked about the Series setup was that I could control the order of the collected posts: my posts about [building out the vRA environment in my homelab](/categories/vmware) are probably best consumed in chronological order (oldest to newest) since the newer posts build upon the groundwork laid by the older ones, while posts about my [other one-off projects](/categories/self-hosting) could really be enjoyed in any order.
|
||||
|
||||
I quickly realized that if I were hosting this pretty much anywhere *other* than GitHub Pages I could simply leverage the [`jekyll-archives`](https://github.com/jekyll/jekyll-archives) plugin to manage this for me - but, alas, that's not one of the [plugins supported by the platform](https://pages.github.com/versions/). I needed to come up with my own solution, and being still quite new to Jekyll (and this whole website design thing in general) it took me a bit of fumbling to get it right.
|
||||
|
||||
### Reviewing the theme-provided option
|
||||
The Jekyll theme I'm using ([Minimal Mistakes](https://github.com/mmistakes/minimal-mistakes)) comes with [built-in support](https://mmistakes.github.io/mm-github-pages-starter/categories/) for a [category archive page](/series), which (like the [tags page](/tags)) displays all the categorized posts on a single page. Links at the top will let you jump to an appropriate anchor to start viewing the selected category, but it's not really an elegant way to display a single category.
|
||||
The Jekyll theme I'm using ([Minimal Mistakes](https://github.com/mmistakes/minimal-mistakes)) comes with [built-in support](https://mmistakes.github.io/mm-github-pages-starter/categories/) for a [category archive page](/categories), which (like the [tags page](/tags)) displays all the categorized posts on a single page. Links at the top will let you jump to an appropriate anchor to start viewing the selected category, but it's not really an elegant way to display a single category.
|
||||
![Posts by category](20210724-posts-by-category.png)
|
||||
|
||||
It's a start, though, so I took a few minutes to check out how it's being generated. The category archive page lives at [`_pages/category-archive.md`](https://raw.githubusercontent.com/mmistakes/mm-github-pages-starter/master/_pages/category-archive.md):
|
||||
|
@ -144,7 +144,7 @@ Since I can't use a plugin to automatically generate pages for each series, I'll
|
|||
---
|
||||
title: "Adventures in vRealize Automation 8"
|
||||
layout: series
|
||||
permalink: "/series/vra8"
|
||||
permalink: "/categories/vmware"
|
||||
tag: vRA8
|
||||
sort_order: reverse
|
||||
author_profile: true
|
||||
|
@ -155,9 +155,9 @@ header:
|
|||
*Follow along as I create a flexible VMware vRealize Automation 8 environment for provisioning virtual machines - all from the comfort of my Intel NUC homelab.*
|
||||
```
|
||||
|
||||
You can see that this page is referencing the series layout I just created, and it's going to live at `http://localhost/series/vra8` - precisely where this series was on Hashnode. I've tagged it with the category I want to feature on this page, and specified that the posts will be sorted in reverse order so that anyone reading through the series will start at the beginning (I hear it's a very good place to start). I also added a teaser image which will be displayed when I link to the series from elsewhere. And I included a quick little italicized blurb to tell readers what the series is about.
|
||||
You can see that this page is referencing the series layout I just created, and it's going to live at `http://localhost/categories/vmware` - precisely where this series was on Hashnode. I've tagged it with the category I want to feature on this page, and specified that the posts will be sorted in reverse order so that anyone reading through the series will start at the beginning (I hear it's a very good place to start). I also added a teaser image which will be displayed when I link to the series from elsewhere. And I included a quick little italicized blurb to tell readers what the series is about.
|
||||
|
||||
Check it out [here](/series/vra8):
|
||||
Check it out [here](/categories/vmware):
|
||||
![vRA8 series](20210724-vra8-series.png)
|
||||
|
||||
The other series pages will be basically the same, just without the reverse sort directive. Here's `_pages/series-tips.md`:
|
||||
|
@ -202,7 +202,7 @@ author_profile: true
|
|||
```
|
||||
|
||||
### Fixing category links in posts
|
||||
The bottom of each post has a section which lists the tags and categories to which it belongs. Right now, those are still pointing to the category archive page (`/series/#vra8`) instead of the series feature pages I created (`/series/vra8`).
|
||||
The bottom of each post has a section which lists the tags and categories to which it belongs. Right now, those are still pointing to the category archive page (`/series/#vra8`) instead of the series feature pages I created (`/categories/vmware`).
|
||||
![Old category link](20210724-old-category-link.png)
|
||||
|
||||
That *works* but I'd rather it reference the fancy new pages I created. Tracking down where to make that change was a bit of a journey.
|
||||
|
@ -245,7 +245,7 @@ Okay, it looks like [`_include/category-list.html`](https://github.com/mmistakes
|
|||
{% assign categories_sorted = page.categories | sort_natural %}
|
||||
|
||||
<p class="page__taxonomy">
|
||||
<strong><i class="fas fa-fw fa-folder-open" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].categories_label | default: "series:" }} </strong>
|
||||
<strong><i class="fas fa-fw fa-folder-open" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].categories_label | default: "categories:" }} </strong>
|
||||
<span itemprop="keywords">
|
||||
{% for category_word in categories_sorted %}
|
||||
<a href="{{ category_word | slugify | prepend: path_type | prepend: site.category_archive.path | relative_url }}" class="page__taxonomy-item p-category" rel="tag">{{ category_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
|
||||
|
@ -283,9 +283,9 @@ And, finally, I'll want to update the navigation links at the top of each page t
|
|||
# torchlight! {"lineNumbers": true}
|
||||
main:
|
||||
- title: "vRealize Automation 8"
|
||||
url: /series/vra8
|
||||
url: /categories/vmware
|
||||
- title: "Projects"
|
||||
url: /series/projects
|
||||
url: /categories/self-hosting
|
||||
- title: "Code"
|
||||
url: /series/code
|
||||
- title: "Tips & Tricks"
|
||||
|
|
|
@ -14,7 +14,7 @@ featureImage: "basic-architecture.png" # Sets featured image on blog post.
|
|||
thumbnail: "basic-architecture.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Tips # Projects, Code, vRA8
|
||||
categories: VMware # Projects, Code, vRA8
|
||||
tags:
|
||||
- vmware
|
||||
- vsphere
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: vRA8
|
||||
categories: VMware
|
||||
date: "2021-09-03T00:00:00Z"
|
||||
thumbnail: 20210903_action_run_success.png
|
||||
usePageBundles: true
|
||||
|
@ -11,7 +11,7 @@ tags:
|
|||
- vmware
|
||||
title: Run scripts in guest OS with vRA ABX Actions
|
||||
---
|
||||
Thus far in my [vRealize Automation project](/series/vra8), I've primarily been handing the payload over to vRealize Orchestrator to do the heavy lifting on the back end. This approach works really well for complex multi-part workflows (like when [generating unique hostnames](/vra8-custom-provisioning-part-two#the-vro-workflow)), but it may be overkill for more linear tasks (such as just running some simple commands inside of a deployed guest OS). In this post, I'll explore how I use [vRA Action Based eXtensibility (ABX)](https://blogs.vmware.com/management/2020/09/vra-abx-flow.html) to do just that.
|
||||
Thus far in my [vRealize Automation project](/categories/vmware), I've primarily been handing the payload over to vRealize Orchestrator to do the heavy lifting on the back end. This approach works really well for complex multi-part workflows (like when [generating unique hostnames](/vra8-custom-provisioning-part-two#the-vro-workflow)), but it may be overkill for more linear tasks (such as just running some simple commands inside of a deployed guest OS). In this post, I'll explore how I use [vRA Action Based eXtensibility (ABX)](https://blogs.vmware.com/management/2020/09/vra-abx-flow.html) to do just that.
|
||||
|
||||
### The Goal
|
||||
My ABX action is going to use PowerCLI to perform a few steps inside a deployed guest OS (Windows-only for this demonstration):
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Projects
|
||||
categories: Automation
|
||||
date: "2020-11-14T08:34:30Z"
|
||||
thumbnail: aeIOr8w6k.png
|
||||
usePageBundles: true
|
||||
|
|
|
@ -6,7 +6,7 @@ description: "A hasty Salt state to deploy netdata monitoring and publish it int
|
|||
featured: false
|
||||
toc: true
|
||||
comments: true
|
||||
series: Code
|
||||
categories: Code
|
||||
tags:
|
||||
- homelab
|
||||
- iac
|
||||
|
|
|
@ -15,7 +15,7 @@ thumbnail: "thumbnail.png" # Sets thumbnail image appearing inside card on homep
|
|||
# shareImage: "/images/path/share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
codeMaxLines: 30
|
||||
series: Code
|
||||
categories: Blog
|
||||
tags:
|
||||
- hugo
|
||||
- meta
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Code
|
||||
categories: Blog
|
||||
date: "2021-07-19T16:03:30Z"
|
||||
usePageBundles: true
|
||||
tags:
|
||||
|
|
|
@ -14,7 +14,7 @@ featureImageAlt: 'Tailscale Logo' # Alternative text for featured image.
|
|||
thumbnail: "Tailscale-AppIcon.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Projects
|
||||
categories: Self-Hosting
|
||||
tags:
|
||||
- vpn
|
||||
- wireguard
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Projects
|
||||
categories: ChromeOS
|
||||
date: "2020-10-27T08:34:30Z"
|
||||
lastmod: "2021-05-20"
|
||||
thumbnail: XtmaR9Z0J.png
|
||||
|
|
|
@ -4,6 +4,7 @@ thumbnail: P-x5qEg_9.jpeg
|
|||
usePageBundles: true
|
||||
tags:
|
||||
- chromeos
|
||||
categories: ChromeOS
|
||||
title: 'Showdown: Lenovo Chromebook Duet vs. Google Pixel Slate'
|
||||
---
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ usePageBundles: true
|
|||
thumbnail: "snikket.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Projects
|
||||
categories: Self-Hosting
|
||||
tags:
|
||||
- linux
|
||||
- cloud
|
||||
|
|
|
@ -6,7 +6,7 @@ description: "Syntax highlighting powered by the Torchlight.dev API makes it eas
|
|||
featured: false
|
||||
toc: true
|
||||
comments: true
|
||||
series: Projects # Projects, Code
|
||||
categories: Blog
|
||||
tags:
|
||||
- javascript
|
||||
- hugo
|
||||
|
|
|
@ -6,7 +6,7 @@ description: "Quick notes on using `systemctl edit` to override a systemd servic
|
|||
featured: false
|
||||
toc: false
|
||||
comments: true
|
||||
series: Tips # Projects, Code
|
||||
categories: Tips # Projects, Code
|
||||
tags:
|
||||
- crostini
|
||||
- linux
|
||||
|
|
|
@ -14,7 +14,7 @@ usePageBundles: true
|
|||
thumbnail: "golinks.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Projects # Projects, Code, vRA8, K8s on vSphere
|
||||
categories: Self-Hosting # Projects, Code, vRA8, K8s on vSphere
|
||||
tags:
|
||||
- docker
|
||||
- vpn
|
||||
|
|
|
@ -14,7 +14,7 @@ usePageBundles: true
|
|||
thumbnail: "Tailscale-AppIcon.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Tips # Projects, Code, vRA8, K8s on vSphere
|
||||
categories: Tips # Projects, Code, vRA8, K8s on vSphere
|
||||
tags:
|
||||
- vmware
|
||||
- linux
|
||||
|
|
|
@ -6,7 +6,7 @@ description: "Using Docker Compose to deploy containerized applications and make
|
|||
featured: false
|
||||
toc: true
|
||||
comments: true
|
||||
series: Projects
|
||||
categories: Self-Hosting
|
||||
tags:
|
||||
- containers
|
||||
- docker
|
||||
|
|
|
@ -6,7 +6,7 @@ description: "Exploring some of my favorite Tailscale addon features: SSH, Serve
|
|||
featured: false
|
||||
toc: true
|
||||
comments: true
|
||||
series: Tips # Projects, Code
|
||||
categories: Tips # Projects, Code
|
||||
tags:
|
||||
- homelab
|
||||
- networking
|
||||
|
|
|
@ -14,7 +14,7 @@ usePageBundles: true
|
|||
thumbnail: "tanzu_community_edition.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: K8s on vSphere
|
||||
categories: VMware
|
||||
tags:
|
||||
- vmware
|
||||
- linux
|
||||
|
|
|
@ -14,7 +14,7 @@ featureImage: "esxi8.png" # Sets featured image on blog post.
|
|||
# thumbnail: "thumbnail.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Tips # Projects, Code, vRA8
|
||||
categories: VMware # Projects, Code, vRA8
|
||||
tags:
|
||||
- vmware
|
||||
- homelab
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Code
|
||||
categories: Code
|
||||
date: "2021-04-29T08:34:30Z"
|
||||
usePageBundles: true
|
||||
tags:
|
||||
|
@ -9,7 +9,7 @@ title: Using PowerShell and a Scheduled Task to apply Windows Updates
|
|||
toc: false
|
||||
---
|
||||
|
||||
In the same vein as [my script to automagically resize a Linux LVM volume to use up free space on a disk](/automatic-unattended-expansion-of-linux-root-lvm-volume-to-fill-disk), I wanted a way to automatically apply Windows updates for servers deployed by [my vRealize Automation environment](/series/vra8). I'm only really concerned with Windows Server 2019, which includes the [built-in Windows Update Provider PowerShell module](https://4sysops.com/archives/scan-download-and-install-windows-updates-with-powershell/). So this could be as simple as `Install-WUUpdates -Updates (Start-WUScan)` to scan for and install any available updates.
|
||||
In the same vein as [my script to automagically resize a Linux LVM volume to use up free space on a disk](/automatic-unattended-expansion-of-linux-root-lvm-volume-to-fill-disk), I wanted a way to automatically apply Windows updates for servers deployed by [my vRealize Automation environment](/categories/vmware). I'm only really concerned with Windows Server 2019, which includes the [built-in Windows Update Provider PowerShell module](https://4sysops.com/archives/scan-download-and-install-windows-updates-with-powershell/). So this could be as simple as `Install-WUUpdates -Updates (Start-WUScan)` to scan for and install any available updates.
|
||||
|
||||
Unfortunately, I found that this approach can take a long time to run and often exceeded the timeout limits imposed upon my ABX script, causing the PowerShell session to end and terminating the update process. I really needed a way to do this without requiring a persistent session.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: Tips
|
||||
categories: Tips
|
||||
date: "2021-02-18T08:34:30Z"
|
||||
thumbnail: PPZu_UOGO.png
|
||||
usePageBundles: true
|
||||
|
|
|
@ -14,7 +14,7 @@ featureImage: "vdt.png" # Sets featured image on blog post.
|
|||
thumbnail: "pulse2.png" # Sets thumbnail image appearing inside card on homepage.
|
||||
# shareImage: "share.png" # Designate a separate image for social media sharing.
|
||||
codeLineNumbers: false # Override global value for showing of line numbers within code block.
|
||||
series: Tips # Projects, Code, vRA8
|
||||
categories: VMware # Projects, Code, vRA8
|
||||
tags:
|
||||
- vmware
|
||||
- vsphere
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
date: "2021-07-20T22:20:00Z"
|
||||
thumbnail: 20210720-jekyll.png
|
||||
usePageBundles: true
|
||||
categories: Blog
|
||||
tags:
|
||||
- linux
|
||||
- meta
|
||||
|
@ -71,4 +72,4 @@ And there it is!
|
|||
### `git push` time
|
||||
Alright that's enough rambling for now. I'm very happy with this new setup, particularly with the automatically-generated Table of Contents to help folks navigate some of my longer posts. (I can't believe I was having to piece those together manually in this blog's previous iteration!)
|
||||
|
||||
I'll continue to make some additional tweaks in the coming weeks but for now I'll `git push` this post and get back to documenting my never-ending [vRA project](/series/vra8).
|
||||
I'll continue to make some additional tweaks in the coming weeks but for now I'll `git push` this post and get back to documenting my never-ending [vRA project](/categories/vmware).
|
|
@ -7,6 +7,7 @@ draft: false
|
|||
description: "This blog has migrated from virtuallypotato.com to runtimeterror.dev."
|
||||
toc: false
|
||||
comments: true
|
||||
categories: Blog
|
||||
tags:
|
||||
- meta
|
||||
---
|
||||
|
@ -19,7 +20,7 @@ ln -s virtuallypotato.com runtimeterror.dev
|
|||
|
||||
If you've noticed that things look a bit different around here, you might *also* have noticed that my posts about VMware products had become less and less frequent over the past year or so. That wasn't intentional, but a side-effect of some shifting priorities with a new position at work. I'm no longer on the team responsible for our VMware environment and am now more focused on cloud-native technologies and open-source DevOps solutions. The new role keeps me pretty busy, and I'm using what free time I have to learn more about and experiment with the technologies I use at work.
|
||||
|
||||
That (unfortunately) means that I won't be posting much (if at all) about VMware-related things (including the [vRA8 series of posts](/series/vra8/))[^vra8] going forward. Instead, expect to see more posts about things like [containers](/tags/containers/), [infrastructure-as-code](/tags/iac/), [self-hosting](/tags/selfhosting/), and [miscellaneous tech projects](/series/projects/) that I play with.
|
||||
That (unfortunately) means that I won't be posting much (if at all) about VMware-related things (including the [vRA8 series of posts](/categories/vmware/))[^vra8] going forward. Instead, expect to see more posts about things like [containers](/tags/containers/), [infrastructure-as-code](/tags/iac/), [self-hosting](/tags/selfhosting/), and [miscellaneous tech projects](/categories/self-hosting/) that I play with.
|
||||
|
||||
I decided to migrate, rebrand, and re-theme my blog to reflect this change in focus. virtuallypotato used a [theme heavily inspired by VMware design language](https://github.com/chipzoller/hugo-clarity), and I don't think it's a great fit for the current (and future) content anymore. That theme is also very feature-rich which provides a lot of capability out of the box but makes it a bit tricky to modify (and maintain) my personal tweaks. The new runtimeterror[^pun] site uses a [more minimal theme](https://github.com/joeroe/risotto) which takes cues from terminals and markdown formatting. It's also simpler and thus easier for me to tweak. I've done a lot of that already and anticipating doing a bit more in the coming weeks, but I wanted to go ahead and make this thing "live" for now.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: vRA8
|
||||
categories: VMware
|
||||
date: "2021-02-05T08:34:30Z"
|
||||
thumbnail: SIDah-Lag.png
|
||||
usePageBundles: true
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: vRA8
|
||||
categories: VMware
|
||||
date: "2021-05-20T08:34:30Z"
|
||||
thumbnail: wl-WPQpEl.png
|
||||
usePageBundles: true
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: vRA8
|
||||
categories: VMware
|
||||
date: "2021-05-18T08:34:30Z"
|
||||
lastmod: "2021-05-20"
|
||||
thumbnail: hFPeakMxn.png
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: vRA8
|
||||
categories: VMware
|
||||
date: "2021-03-29T08:34:30Z"
|
||||
thumbnail: VZaK4btzl.png
|
||||
usePageBundles: true
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: vRA8
|
||||
categories: VMware
|
||||
date: "2021-04-19T08:34:30Z"
|
||||
thumbnail: K6vcxpDj8.png
|
||||
usePageBundles: true
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
series: vRA8
|
||||
categories: VMware
|
||||
date: "2021-04-02T08:34:30Z"
|
||||
lastmod: "2022-03-23"
|
||||
thumbnail: HXrAMJrH.png
|
||||
|
|
|
@ -11,27 +11,38 @@
|
|||
{{ .Content }}
|
||||
</header>
|
||||
|
||||
{{- if ne .Title "Tags"}}
|
||||
{{- range (.Paginate $pages).Pages }}
|
||||
{{- $postDate := .Date.Format "2006-01-02" }}
|
||||
{{- $updateDate := .Lastmod.Format "2006-01-02" }}
|
||||
<article class="post">
|
||||
<header class="post__header">
|
||||
<h1><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h1>
|
||||
<p class="post__meta">
|
||||
<span class="date">["{{- $postDate }}"{{- if ne $postDate $updateDate }}, "{{ $updateDate }}"{{ end }}]</span>
|
||||
</p>
|
||||
</header>
|
||||
|
||||
<section class="post__summary">
|
||||
{{ .Summary }}
|
||||
</section>
|
||||
<br>
|
||||
</article>
|
||||
{{ end }}
|
||||
{{- template "_internal/pagination.html" . }}
|
||||
{{- if eq .Kind "taxonomy" }}
|
||||
{{- if eq .Title "Tags" }}
|
||||
{{- range $key, $value := .Site.Taxonomies }}
|
||||
{{- $slicedTags := ($value.ByCount) }}
|
||||
{{- range $slicedTags }}
|
||||
{{- if eq $key "tags"}}
|
||||
[<a href='/{{ $key }}/{{ (replace .Name "#" "%23") | urlize }}/' title="{{ .Name }}">{{ .Name }}</a><sup>{{ .Count }}</sup>]
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- range .Pages }}
|
||||
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a><br>
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- range .Pages.ByTitle }}
|
||||
[<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a>]
|
||||
{{- end }}
|
||||
{{- range (.Paginate $pages).Pages }}
|
||||
{{- $postDate := .Date.Format "2006-01-02" }}
|
||||
{{- $updateDate := .Lastmod.Format "2006-01-02" }}
|
||||
<article class="post">
|
||||
<header class="post__header">
|
||||
<h1><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h1>
|
||||
<p class="post__meta">
|
||||
<span class="date">["{{- $postDate }}"{{- if ne $postDate $updateDate }}, "{{ $updateDate }}"{{ end }}]</span>
|
||||
</p>
|
||||
</header>
|
||||
|
||||
<section class="post__summary">
|
||||
{{ .Summary }}
|
||||
</section>
|
||||
<br>
|
||||
</article>
|
||||
{{- end }}
|
||||
{{- template "_internal/pagination.html" . }}
|
||||
{{- end }}
|
|
@ -27,10 +27,10 @@
|
|||
{{- end }}
|
||||
{{ end }}
|
||||
|
||||
{{ if isset .Params "series" }}
|
||||
{{$related := where .Site.RegularPages ".Params.series" "eq" .Params.series }}
|
||||
{{ if isset .Params "categories" }}
|
||||
{{$related := where .Site.RegularPages ".Params.categories" "eq" .Params.categories }}
|
||||
{{- $relatedLimit := default 8 .Site.Params.numberOfRelatedPosts }}
|
||||
<h3>More {{ .Params.series }}</h3>
|
||||
<h3>More {{ .Params.categories }}</h3>
|
||||
<ul>
|
||||
{{- range first $relatedLimit $related }}
|
||||
<li>
|
||||
|
@ -39,7 +39,7 @@
|
|||
{{ end }}
|
||||
{{ if gt (len $related) $relatedLimit }}
|
||||
<li>
|
||||
<a href="/series/{{ lower .Params.series }}/"><i>See all {{ .Params.series }}</i></a>
|
||||
<a href="/categories/{{ lower .Params.categories }}/"><i>See all {{ .Params.categories }}</i></a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
|
|
|
@ -59,7 +59,7 @@ module.exports = {
|
|||
excludePatterns: [
|
||||
'/node_modules/',
|
||||
'/vendor/',
|
||||
'/series/',
|
||||
'/categories/',
|
||||
'/tags/'
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue