diff --git a/config/_default/params.toml b/config/_default/params.toml index d1295de..d4cf2db 100644 --- a/config/_default/params.toml +++ b/config/_default/params.toml @@ -51,7 +51,7 @@ smartTOC = true showViews = false showLikes = false showDateOnlyInArticle = false - showDateUpdated = false + showDateUpdated = true showAuthor = true # showAuthorBottom = false showHero = false @@ -68,14 +68,14 @@ smartTOC = true showPagination = true invertPagination = false showReadingTime = true - showTableOfContents = false + showTableOfContents = true showRelatedContent = true relatedContentLimit = 3 showTaxonomies = false showAuthorsBadges = false showWordCount = true # sharingLinks = [ "linkedin", "twitter", "reddit", "pinterest", "facebook", "email", "whatsapp", "telegram"] - showZenMode = false + showZenMode = true [list] showHero = false @@ -83,7 +83,7 @@ smartTOC = true layoutBackgroundBlur = true # only used when heroStyle equals background or thumbAndBackground layoutBackgroundHeaderSpace = true # only used when heroStyle equals background showBreadcrumbs = true - showSummary = false + showSummary = true showViews = false showLikes = false showTableOfContents = false diff --git a/content/posts/adding-content-to-taxonomy-terms/index.md b/content/posts/adding-content-to-taxonomy-terms/index.md index cf10b04..9dd4bbb 100644 --- a/content/posts/adding-content-to-taxonomy-terms/index.md +++ b/content/posts/adding-content-to-taxonomy-terms/index.md @@ -8,7 +8,7 @@ date: "2023-04-09" author: "Nick Dumas" cover: "" keywords: ["", ""] -description: "" +summary: "" showFullContent: false tags: - hugo @@ -65,7 +65,7 @@ The other half of this setup is modifying the term template at `layouts/_default

{{ i18n "tag" }}: {{ .Title }}

{{ .Content }} - {{with .Params.description}} + {{with .Params.summary}}

{{.}}

{{end}} {{partial "page-list.html" .Paginator.Pages}} @@ -101,7 +101,7 @@ The final template looks like this.

{{ i18n "interactive_graph" }}: {{ .Title }}

{{ .Content }} - {{with .Params.description}} + {{with .Params.summary}}

{{.}}

{{end}} {{partial "page-list.html" .Paginator.Pages}} diff --git a/content/posts/automating-caddy-on-my-droplet/index.md b/content/posts/automating-caddy-on-my-droplet/index.md index cf77e00..1a36802 100644 --- a/content/posts/automating-caddy-on-my-droplet/index.md +++ b/content/posts/automating-caddy-on-my-droplet/index.md @@ -7,7 +7,7 @@ authorTwitter: "" #do not include @ cover: "" tags: ["webdev", "devops"] keywords: ["", ""] -description: "Automation ambitions fall flat" +summary: "Automation ambitions fall flat" showFullContent: false --- diff --git a/content/posts/beautiful-builds-with-bazel/index.md b/content/posts/beautiful-builds-with-bazel/index.md index 2f745eb..73629c3 100644 --- a/content/posts/beautiful-builds-with-bazel/index.md +++ b/content/posts/beautiful-builds-with-bazel/index.md @@ -7,7 +7,7 @@ series_order: 1 date: "2023-08-25" author: "Nick Dumas" cover: "" -description: "bzlmod makes bazel extremely appealing and isn't hard to grasp for anyone already familiar with go modules. My frustration with make for complex builds led me to bazel." +summary: "bzlmod makes bazel extremely appealing and isn't hard to grasp for anyone already familiar with go modules. My frustration with make for complex builds led me to bazel." showFullContent: false tags: - bazel diff --git a/content/posts/data-interfaces/index.md b/content/posts/data-interfaces/index.md index d152252..fff2195 100644 --- a/content/posts/data-interfaces/index.md +++ b/content/posts/data-interfaces/index.md @@ -5,7 +5,7 @@ aliases: ["Data Interfaces in Go"] series: [] author: "Nick Dumas" cover: "" -description: "Playing with interfaces" +summary: "Playing with interfaces" showFullContent: false tags: - genesis diff --git a/content/posts/drone-and-hugo/index.md b/content/posts/drone-and-hugo/index.md index ae38416..74dd343 100644 --- a/content/posts/drone-and-hugo/index.md +++ b/content/posts/drone-and-hugo/index.md @@ -9,7 +9,7 @@ authorTwitter: "" cover: "" tags: ["drone", "gitea", "obsidian", "devops"] keywords: ["drone", "gitea", "obsidian", "devops"] -description: "How I built a drone instance and pipeline to publish my blog" +summary: "How I built a drone instance and pipeline to publish my blog" showFullContent: false --- diff --git a/content/posts/filtering-hugo-pages-by-type/index.md b/content/posts/filtering-hugo-pages-by-type/index.md index 6baee48..5e370a5 100644 --- a/content/posts/filtering-hugo-pages-by-type/index.md +++ b/content/posts/filtering-hugo-pages-by-type/index.md @@ -8,7 +8,7 @@ date: "2023-04-08" author: "Nick Dumas" cover: "" keywords: ["", ""] -description: "More complex Hugo sites sometimes require creating markdown files you don't want displayed in specific listings." +summary: "More complex Hugo sites sometimes require creating markdown files you don't want displayed in specific listings." showFullContent: false tags: - hugo diff --git a/content/posts/first-aardwolf-remort/index.md b/content/posts/first-aardwolf-remort/index.md index 22cb5ef..abcd8e1 100644 --- a/content/posts/first-aardwolf-remort/index.md +++ b/content/posts/first-aardwolf-remort/index.md @@ -10,7 +10,7 @@ author: "Nick Dumas" cover: "" tags: ["games", "aardwolf"] keywords: ["games", "aardwolf"] -description: "MUDding, reflection" +summary: "MUDding, reflection" showFullContent: false --- diff --git a/content/posts/first-post/index.md b/content/posts/first-post/index.md index 26691ab..88302c6 100644 --- a/content/posts/first-post/index.md +++ b/content/posts/first-post/index.md @@ -4,7 +4,7 @@ aliases: ["First Post"] series: [] author: "Nick Dumas" cover: "" -description: "" +summary: "" showFullContent: false title: "First Post" date: "2018-02-10" diff --git a/content/posts/gardening-with-quartz/index.md b/content/posts/gardening-with-quartz/index.md index c65766f..41809cc 100644 --- a/content/posts/gardening-with-quartz/index.md +++ b/content/posts/gardening-with-quartz/index.md @@ -10,7 +10,7 @@ authorTwitter : "" cover : "" tags : ["drone", "hugo", "devops", "obsidian", "quartz"] keywords : ["drone", "hugo", "devops", "obsidian", "quartz"] -description : "When you want a container built right, you have to do it yourself." +summary : "When you want a container built right, you have to do it yourself." showFullContent : false --- diff --git a/content/posts/genesis-flags/index.md b/content/posts/genesis-flags/index.md index 529b864..f2d5469 100644 --- a/content/posts/genesis-flags/index.md +++ b/content/posts/genesis-flags/index.md @@ -6,7 +6,7 @@ series: ["genesis-development"] series_order: 2 author: "Nick Dumas" cover: "" -description: "Using Cobra to accept a huge amount of inputs" +summary: "Using Cobra to accept a huge amount of inputs" tags: - genesis - golang diff --git a/content/posts/genesis-roadmap/index.md b/content/posts/genesis-roadmap/index.md index 095edb6..430af4f 100644 --- a/content/posts/genesis-roadmap/index.md +++ b/content/posts/genesis-roadmap/index.md @@ -6,7 +6,7 @@ series: ["genesis-development"] series_order: 1 author: "Nick Dumas" cover: "" -description: "Planning out a creative asset creation toolkit" +summary: "Planning out a creative asset creation toolkit" showFullContent: false tags: - genesis diff --git a/content/posts/gitea-lfs-and-syncing-obsidian-vaults/index.md b/content/posts/gitea-lfs-and-syncing-obsidian-vaults/index.md index 0cc3f78..0cf2bfc 100644 --- a/content/posts/gitea-lfs-and-syncing-obsidian-vaults/index.md +++ b/content/posts/gitea-lfs-and-syncing-obsidian-vaults/index.md @@ -7,7 +7,7 @@ author: "Nick Dumas" cover: "" tags: ["obsidian", "git", "gitea"] keywords: ["obsidian", "git", "gitea"] -description: "A brief overview of how I stood up a gitea instance for the purpose of backing up and syncing my Obsidian vault." +summary: "A brief overview of how I stood up a gitea instance for the purpose of backing up and syncing my Obsidian vault." showFullContent: false --- diff --git a/content/posts/golang-quantize/index.md b/content/posts/golang-quantize/index.md index 2539a7f..b3ee554 100644 --- a/content/posts/golang-quantize/index.md +++ b/content/posts/golang-quantize/index.md @@ -6,7 +6,7 @@ series: ["genesis-development"] series_order: 3 author: "Nick Dumas" cover: "" -description: "Implementing float interpolation for fun and profit" +summary: "Implementing float interpolation for fun and profit" showFullContent: false tags: - genesis diff --git a/content/posts/integrating-cobra-and-lipgloss/index.md b/content/posts/integrating-cobra-and-lipgloss/index.md index 719a225..7705ff3 100644 --- a/content/posts/integrating-cobra-and-lipgloss/index.md +++ b/content/posts/integrating-cobra-and-lipgloss/index.md @@ -7,7 +7,7 @@ date: "2023-05-08" author: "Nick Dumas" cover: "" keywords: ["", ""] -description: "Using lipgloss to abstract away the specifics of nice terminal output." +summary: "Using lipgloss to abstract away the specifics of nice terminal output." showFullContent: false tags: - golang diff --git a/content/posts/making-noise/index.md b/content/posts/making-noise/index.md index 09257c8..90e1934 100644 --- a/content/posts/making-noise/index.md +++ b/content/posts/making-noise/index.md @@ -6,7 +6,7 @@ series: ["genesis-development"] series_order: 4 author: "Nick Dumas" cover: "" -description: "Pseudorandom noise and making it fit your domain." +summary: "Pseudorandom noise and making it fit your domain." showFullContent: false date: "2019-02-28" images: diff --git a/content/posts/mapping-aardwolf-with-graphviz/index.md b/content/posts/mapping-aardwolf-with-graphviz/index.md index bd2b537..574d91b 100644 --- a/content/posts/mapping-aardwolf-with-graphviz/index.md +++ b/content/posts/mapping-aardwolf-with-graphviz/index.md @@ -8,7 +8,7 @@ date: "2023-04-06" author: "Nick Dumas" cover: "" keywords: [""] -description: "Maxing out your CPU for fun and profit with dense graphs, or how I'm attempting to follow through on my plan to work on projects with more visual outputs" +summary: "Maxing out your CPU for fun and profit with dense graphs, or how I'm attempting to follow through on my plan to work on projects with more visual outputs" showFullContent: false tags: - graphviz diff --git a/content/posts/non-mechanical-ttrpg-fundamentals/index.md b/content/posts/non-mechanical-ttrpg-fundamentals/index.md index fc1059b..27dfcbd 100644 --- a/content/posts/non-mechanical-ttrpg-fundamentals/index.md +++ b/content/posts/non-mechanical-ttrpg-fundamentals/index.md @@ -7,7 +7,7 @@ date: "2024-04-24" author: "Nick Dumas" cover: "" keywords: ["", ""] -description: "A non-exhaustive list of tips and rules that elevate my tabletop gaming." +summary: "A non-exhaustive list of tips and rules that elevate my tabletop gaming." showFullContent: false tags: - dnd diff --git a/content/posts/notes-as-tools/index.md b/content/posts/notes-as-tools/index.md index 59a71d6..963afd6 100644 --- a/content/posts/notes-as-tools/index.md +++ b/content/posts/notes-as-tools/index.md @@ -7,7 +7,7 @@ date: "2024-04-24" author: "Nick Dumas" cover: "" keywords: ["", ""] -description: "Note-taking and the tools we use to do it can present an overwhelming abundance of possibility. Explicitly modelling your notes as tools can grant clarity when creating and organizing your knowledge." +summary: "Note-taking and the tools we use to do it can present an overwhelming abundance of possibility. Explicitly modelling your notes as tools can grant clarity when creating and organizing your knowledge." showFullContent: false tags: - obsidian diff --git a/content/posts/one-dimensional-automata-and-you/index.md b/content/posts/one-dimensional-automata-and-you/index.md index bb88cf0..0299317 100644 --- a/content/posts/one-dimensional-automata-and-you/index.md +++ b/content/posts/one-dimensional-automata-and-you/index.md @@ -7,7 +7,7 @@ date: "2024-04-11" author: "Nick Dumas" cover: "" keywords: ["", ""] -description: "" +summary: "" showFullContent: false tags: - golang diff --git a/content/posts/pagerduty-synthetic-retrigger-loop/index.md b/content/posts/pagerduty-synthetic-retrigger-loop/index.md index 0ebb7ad..e7c5037 100644 --- a/content/posts/pagerduty-synthetic-retrigger-loop/index.md +++ b/content/posts/pagerduty-synthetic-retrigger-loop/index.md @@ -7,7 +7,7 @@ date: "2023-03-05" author: "Nick Dumas" cover: "" keywords: ["", ""] -description: "Making sure PagerDuty leaves you alone" +summary: "Making sure PagerDuty leaves you alone" showFullContent: false tags: - pagerduty diff --git a/content/posts/path-of-market/index.md b/content/posts/path-of-market/index.md index 39f7c43..8cd06bf 100644 --- a/content/posts/path-of-market/index.md +++ b/content/posts/path-of-market/index.md @@ -6,7 +6,7 @@ series: ["path-of-market"] series_order: 1 author: "Nick Dumas" cover: "" -description: "Tracking market trends in Path of Exile with Prometheus" +summary: "Tracking market trends in Path of Exile with Prometheus" showFullContent: false date: "2019-07-08" tags: diff --git a/content/posts/pragmatic-projections-primer/index.md b/content/posts/pragmatic-projections-primer/index.md index 79968fd..03d69d5 100644 --- a/content/posts/pragmatic-projections-primer/index.md +++ b/content/posts/pragmatic-projections-primer/index.md @@ -7,7 +7,7 @@ date: "2024-04-15" author: "Nick Dumas" cover: "" keywords: ["", ""] -description: "Projections are abstract, but abstractions are a powerful tool for helping us model the world." +summary: "Projections are abstract, but abstractions are a powerful tool for helping us model the world." showFullContent: false tags: - note-taking diff --git a/content/posts/prom-primer/index.md b/content/posts/prom-primer/index.md index d2f3bbc..c32f971 100644 --- a/content/posts/prom-primer/index.md +++ b/content/posts/prom-primer/index.md @@ -5,7 +5,7 @@ aliases: ["Prometheus Primer: the first few pages of the documentation"] series: [] author: "Nick Dumas" cover: "" -description: "I'm trying to teach myself Prometheus, so I'm writing about it." +summary: "I'm trying to teach myself Prometheus, so I'm writing about it." showFullContent: false date: "2019-07-04" tags: diff --git a/content/posts/selinux-and-nginx/index.md b/content/posts/selinux-and-nginx/index.md index 777220c..c5c3808 100644 --- a/content/posts/selinux-and-nginx/index.md +++ b/content/posts/selinux-and-nginx/index.md @@ -5,7 +5,7 @@ aliases: ["Fighting with SELinux yet again"] series: [] author: "Nick Dumas" cover: "" -description: "Extending Quartz's single.html to link between posts." +summary: "Extending Quartz's single.html to link between posts." showFullContent: false date: "2018-04-13" tags: diff --git a/content/posts/series-and-navigation/index.md b/content/posts/series-and-navigation/index.md index 1353fe3..774186f 100644 --- a/content/posts/series-and-navigation/index.md +++ b/content/posts/series-and-navigation/index.md @@ -7,7 +7,7 @@ series_order: 3 date: "2023-03-07" author: "Nick Dumas" cover: "" -description: "Extending Quartz's single.html to link between posts." +summary: "Extending Quartz's single.html to link between posts." showFullContent: false keywords: - quartz diff --git a/content/posts/stamping-builds-with-bazel/index.md b/content/posts/stamping-builds-with-bazel/index.md index ac5c5b7..e52cd6a 100644 --- a/content/posts/stamping-builds-with-bazel/index.md +++ b/content/posts/stamping-builds-with-bazel/index.md @@ -8,7 +8,8 @@ date: "2024-05-15" author: "Nick Dumas" cover: "" keywords: ["", ""] -description: "Versioning is a critical part of delivering software to users. With bazel, you can derive per-build values and inject them anywhere in your build process." +summary: "Versioning is a critical part of delivering software to users. With bazel, you can derive per-build values and inject them anywhere in your build process." +summary: "Versioning is a critical part of delivering software to users. With bazel, you can derive per-build values and inject them anywhere in your build process." showFullContent: false tags: - bazel @@ -20,22 +21,22 @@ In my [last post](/2024/09/the-joy-of-versioning/) I spent some time talking abo That post was pretty light on direct `bazel` usage but I promise, it'll pay off. Here, we're going to cover how to use these tags *in* your builds to tag docker images or inject build information into compiled binaries. -I'm assuming that you've read the [first bazel post](/2023/08/beautiful-builds-with-bazel/) in this series, or that you've already got your bazel + bzlmod setup going. +I'm assuming that you've read the [first bazel post](/2023/08/beautiful-builds-with-bazel/) in this series, or that you've already got your bazel + bzlmod setup going. ## Stamping and you -Bazel includes functionality that it calls "stamping". Bazel has to separate this into its own conceptual space because one of the core design principles is build reproducibility: for bazel's caching to work, inputs have to be deterministic and ideally change infrequently between runs. +Bazel includes functionality that it calls "stamping". Bazel has to separate this into its own conceptual space because one of the core design principles is build reproducibility: for bazel's caching to work, inputs have to be deterministic and ideally change infrequently between runs. Bazel's [documentation](https://bazel.build/docs/user-manual#workspace-status) covers the bare essentials, with a small caveat. Stamping requires a script , the "workplace status" script, that emits space-separated key-value pairs, e.g. `STABLE_KEY_NAME VALUE`. An example script is included below. ```bash {title="tools/workspace_status.sh"} -#! /usr/bin/env bash - -set -o errexit -set -o nounset -set -o pipefail - -echo "STABLE_STAMP_VERSION $(git describe --tags --dirty=-dev)" -echo "STABLE_STAMP_COMMIT $(git rev-parse HEAD)" +#! /usr/bin/env bash + +set -o errexit +set -o nounset +set -o pipefail + +echo "STABLE_STAMP_VERSION $(git describe --tags --dirty=-dev)" +echo "STABLE_STAMP_COMMIT $(git rev-parse HEAD)" echo "STABLE_STAMP_BRANCH $(git rev-parse --abbrev-ref HEAD)" ``` @@ -46,52 +47,52 @@ One important detail that the documentation doesn't cover is that your workspace Still not sure why, but if you simply do `bazel --workplace_status_command=status.sh`, `bazel` will *only* look for it in your `$PATH`. ## Build Injection -Using the variables created by your workspace status script ends up being incredibly simple, if you're using `rules_go`. the `x_defs` parameter lets you override values at compile-time, exactly for cases like this. +Using the variables created by your workspace status script ends up being incredibly simple, if you're using `rules_go`. the `x_defs` parameter lets you override values at compile-time, exactly for cases like this. ``` -x_defs = { -       "Version": "{STABLE_STAMP_VERSION}", -       "Build": "{STABLE_STAMP_COMMIT}", +x_defs = { +       "Version": "{STABLE_STAMP_VERSION}", +       "Build": "{STABLE_STAMP_COMMIT}",    }, ``` -This is equivalent to the Go build flag `-ldflags "-X PACKAGENAME.Version=whatever -X PACKAGENAME.BUILD=whatever"`. It's important to note that the raw Go flags require a fully qualified package name be specified. Bazel is smart enough to derive the necessary package name on its own, all you have to do is tell it which variable needs to be overriden with what value. +This is equivalent to the Go build flag `-ldflags "-X PACKAGENAME.Version=whatever -X PACKAGENAME.BUILD=whatever"`. It's important to note that the raw Go flags require a fully qualified package name be specified. Bazel is smart enough to derive the necessary package name on its own, all you have to do is tell it which variable needs to be overriden with what value. ## Putting it all together The final, full invocation for stamping your builds should look something like this. ``` -wikilink-obsidian-resolver on  main [⇡] via 🐹 v1.22.2 -❯ bazel run --stamp --workspace_status_command=tools/workspace_status.sh //cmd/version -INFO: Analyzed target //cmd/version:version (0 packages loaded, 0 targets configured). -INFO: Found 1 target... -Target //cmd/version:version up-to-date: -dist/bin/cmd/version/version_/version -INFO: Elapsed time: 1.262s, Critical Path: 1.10s -INFO: 2 processes: 1 internal, 1 darwin-sandbox. -INFO: Build completed successfully, 2 total actions -INFO: Running command line: dist/bin/cmd/version/version_/version -Version: v0.1.4-1-g5792d62 -Build: 5792d623fc9fc1852aeb09dd008eabb640cb6711 +wikilink-obsidian-resolver on  main [⇡] via 🐹 v1.22.2 +❯ bazel run --stamp --workspace_status_command=tools/workspace_status.sh //cmd/version +INFO: Analyzed target //cmd/version:version (0 packages loaded, 0 targets configured). +INFO: Found 1 target... +Target //cmd/version:version up-to-date: +dist/bin/cmd/version/version_/version +INFO: Elapsed time: 1.262s, Critical Path: 1.10s +INFO: 2 processes: 1 internal, 1 darwin-sandbox. +INFO: Build completed successfully, 2 total actions +INFO: Running command line: dist/bin/cmd/version/version_/version +Version: v0.1.4-1-g5792d62 +Build: 5792d623fc9fc1852aeb09dd008eabb640cb6711 ``` Bazel runs your binary, injects variables generated by your workspace_status script, and it all finally comes together. The stamping also works for builds: ``` - -wikilink-obsidian-resolver on  main [⇡] via 🐹 v1.22.2 -❯ bazel build --stamp --workspace_status_command=tools/workspace_status.sh //cmd/version -INFO: Analyzed target //cmd/version:version (0 packages loaded, 0 targets configured). -INFO: Found 1 target... -Target //cmd/version:version up-to-date: -dist/bin/cmd/version/version_/version -INFO: Elapsed time: 0.246s, Critical Path: 0.06s -INFO: 1 process: 1 internal. -INFO: Build completed successfully, 1 total action - -wikilink-obsidian-resolver on  main [⇡] via 🐹 v1.22.2 -❯ ./dist/bin/cmd/version/version_/version -Version: v0.1.4-1-g5792d62 + +wikilink-obsidian-resolver on  main [⇡] via 🐹 v1.22.2 +❯ bazel build --stamp --workspace_status_command=tools/workspace_status.sh //cmd/version +INFO: Analyzed target //cmd/version:version (0 packages loaded, 0 targets configured). +INFO: Found 1 target... +Target //cmd/version:version up-to-date: +dist/bin/cmd/version/version_/version +INFO: Elapsed time: 0.246s, Critical Path: 0.06s +INFO: 1 process: 1 internal. +INFO: Build completed successfully, 1 total action + +wikilink-obsidian-resolver on  main [⇡] via 🐹 v1.22.2 +❯ ./dist/bin/cmd/version/version_/version +Version: v0.1.4-1-g5792d62 Build: 5792d623fc9fc1852aeb09dd008eabb640cb6711 ``` @@ -100,5 +101,5 @@ Stamping is not going to accomplish any of my goals on its own, but it was an im ## Notes, Warnings, Caveats - Important: the `workspace-status-script` *cannot* live in the root of the bazel project. It has to be in a subdirectory for some reason. -- If you're defining `x_defs` on a `rules_go` `go_library`, you cannot fully qualify the variable names. -- To find where bazel places artifacts, use `bazel cquery --output=files` \ No newline at end of file +- If you're defining `x_defs` on a `rules_go` `go_library`, you cannot fully qualify the variable names. +- To find where bazel places artifacts, use `bazel cquery --output=files` diff --git a/content/posts/standing-up-gogs/index.md b/content/posts/standing-up-gogs/index.md index 64279d9..036ffc8 100644 --- a/content/posts/standing-up-gogs/index.md +++ b/content/posts/standing-up-gogs/index.md @@ -5,7 +5,7 @@ aliases: ["Standing up Gogs and fighting with SELinux"] author: "Nick Dumas" series: [] cover: "" -description: "SELinux like all security tools end up getting in the way of users who know what they're doing." +summary: "SELinux like all security tools end up getting in the way of users who know what they're doing." showFullContent: false date: "2018-02-20" tags: diff --git a/content/posts/the-joy-of-versioning/index.md b/content/posts/the-joy-of-versioning/index.md index 6118218..1f800ec 100644 --- a/content/posts/the-joy-of-versioning/index.md +++ b/content/posts/the-joy-of-versioning/index.md @@ -10,7 +10,7 @@ date: "2023-09-02" author: Nick Dumas cover: "" keywords: [] -description: "Investing in tooling makes adhering to good practices almost easy enough to be joyful." +summary: "Investing in tooling makes adhering to good practices almost easy enough to be joyful." showFullContent: false tags: - bazel diff --git a/content/posts/validating-yaml-frontmatter-with-jsonschema/index.md b/content/posts/validating-yaml-frontmatter-with-jsonschema/index.md index 5af01cf..43bc442 100644 --- a/content/posts/validating-yaml-frontmatter-with-jsonschema/index.md +++ b/content/posts/validating-yaml-frontmatter-with-jsonschema/index.md @@ -7,7 +7,7 @@ date: "2023-06-01" author: "Nick Dumas" cover: "" keywords: ["", ""] -description: "As a collection of Markdown documents grows organically, maintaining consistency is important. JSONSchema offers a way to automatically ensure frontmatter stays up to spec." +summary: "As a collection of Markdown documents grows organically, maintaining consistency is important. JSONSchema offers a way to automatically ensure frontmatter stays up to spec." showFullContent: false tags: - yaml @@ -21,7 +21,7 @@ Over my time using Obsidian, I've independently authored around 400 notes. Over ```markdown --- publish: false -description: "" +summary: "" aliases: [] title: "" source: [] @@ -90,12 +90,12 @@ func Validate(schemaURL string, r io.Reader) error { go run cmd/obp/*.go validate -s https://schemas.ndumas.com/obsidian/note.schema.json -t Resources/blog/published/ 2023/06/01 10:31:27 scanning "mapping-aardwolf.md" 2023/06/01 10:31:27 scanning "schema-bad.md" -2023/06/01 10:31:27 validation error: &fmt.wrapError{msg:"error validating target: jsonschema: '' does not validate with https://schemas.ndumas.com/obsidian/note.schema.json#/required: missing properties: 'title', 'description', 'tags'", err:(*jsonschema.ValidationError)(0xc0000b3740)} +2023/06/01 10:31:27 validation error: &fmt.wrapError{msg:"error validating target: jsonschema: '' does not validate with https://schemas.ndumas.com/obsidian/note.schema.json#/required: missing properties: 'title', 'summary', 'tags'", err:(*jsonschema.ValidationError)(0xc0000b3740)} 2023/06/01 10:31:27 error count for "schema-bad.md": 1 2023/06/01 10:31:27 scanning "schema-good.md" ``` -You get a relatively detailed description of why validation failed and a non-zero exit code, exactly what you need to prevent malformed data from entering your pipeline. +You get a relatively detailed summary of why validation failed and a non-zero exit code, exactly what you need to prevent malformed data from entering your pipeline. ### how to schema library? You might notice that when I specify a schema, it's hosted at `schemas.ndumas.com`. [Here](https://code.ndumas.com/ndumas/json-schemas) you can find the repository powering that domain.