<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Posts tagged: note</title>
  <id>https://pype.dev/tags/note/atom.xml</id>
  <updated>2026-10-06T19:30:00Z</updated>
  <subtitle>All posts with the tag &#34;note&#34;</subtitle>
  <link href="https://pype.dev/tags/note/" rel="alternate" type="text/html"></link>
  <link href="https://pype.dev/tags/note/atom.xml" rel="self" type="application/atom+xml"></link>
  <author>
    <name>Nic Payne</name>
  </author>
  <generator uri="https://github.com/WaylonWalker/markata-go">markata-go</generator>
  <entry>
    <title>markata-go Migration Research</title>
    <id>https://pype.dev/markata-go-migration-research/</id>
    <updated>2026-10-06T19:30:00Z</updated>
    <published>2026-10-06T19:30:00Z</published>
    <link href="https://pype.dev/markata-go-migration-research/" rel="alternate" type="text/html"></link>
    <summary type="text">Research on markata-go, the Go rewrite of the Python markata static site generator, to support migrating pype.dev. All sources are primary: the GitHub repo...</summary>
    <content type="html">&lt;p&gt;Research on &lt;a href=&#34;https://github.com/WaylonWalker/markata-go&#34;&gt;markata-go&lt;/a&gt;, the Go rewrite of the Python &lt;a href=&#34;https://markata.dev&#34;&gt;markata&lt;/a&gt; static site generator, to support migrating pype.dev. All sources are primary: the GitHub repo (README, &lt;code&gt;docs/&lt;/code&gt;, &lt;code&gt;spec/&lt;/code&gt;, releases, issues, commit history), pkg.go.dev, and Waylon&amp;rsquo;s own sites (waylonwalker.com now runs on markata-go; &lt;code&gt;go.waylonwalker.com&lt;/code&gt; is the deployment).&lt;/p&gt;&#xA;&lt;p&gt;Repo state as of research date: &lt;strong&gt;v0.13.0, &amp;ldquo;Beta (0.x) - API may change between minor versions&amp;rdquo;&lt;/strong&gt;, created 2026-01-22, 2 stars, 51 open issues, essentially solo-maintained by WaylonWalker (853 contributions) + dependabot. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go&#34;&gt;Source&lt;/a&gt;, &lt;a href=&#34;https://pkg.go.dev/github.com/WaylonWalker/markata-go&#34;&gt;pkg.go.dev&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Important caveat:&lt;/strong&gt; the project is &amp;ldquo;open source but &lt;strong&gt;not open contribution&lt;/strong&gt;&amp;rdquo; — PRs are not reviewed or merged; bugs/feature requests go through issues only. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/CONTRIBUTING.md&#34;&gt;CONTRIBUTING.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-installation-cli&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;1. Installation + CLI&lt;/span&gt; &lt;a href=&#34;#1-installation-cli&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;install-options&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Install options&lt;/span&gt; &lt;a href=&#34;#install-options&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/installation.md&#34;&gt;docs/installation.md&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go&#34;&gt;README&lt;/a&gt;&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# One-liner (Linux/macOS)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -sSL https://raw.githubusercontent.com/WaylonWalker/markata-go/main/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# (also published at https://waylonwalker.github.io/markata-go/install.sh)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# jpillora installer&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -sL https://i.jpillora.com/WaylonWalker/markata-go &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# eget&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;eget WaylonWalker/markata-go&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# mise (from GitHub releases)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mise use -g github:WaylonWalker/markata-go&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Go install (Go 1.22+; v0.13.0 toolchain reports Go 1.26)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;go install github.com/WaylonWalker/markata-go/cmd/markata-go@latest&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# or pinned: ...@v0.13.0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Distributed as a single dependency-free binary. &lt;code&gt;markata-go update&lt;/code&gt; is a built-in self-update command. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/releases/tag/v0.5.0&#34;&gt;v0.5.0 release notes&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;cli-commands&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;CLI commands&lt;/span&gt; &lt;a href=&#34;#cli-commands&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/cli.md&#34;&gt;docs/reference/cli.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Global flags: &lt;code&gt;-c/--config&lt;/code&gt;, &lt;code&gt;-m/--merge-config&lt;/code&gt; (repeatable), &lt;code&gt;-o/--output&lt;/code&gt;, &lt;code&gt;-q/--quiet&lt;/code&gt;, &lt;code&gt;-v/--verbose&lt;/code&gt;, &lt;code&gt;--color/--no-color&lt;/code&gt;, &lt;code&gt;--log-format&lt;/code&gt;, &lt;code&gt;--no-input&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&lt;thead&gt;&#xA;&lt;tr&gt;&#xA;&lt;th&gt;Command&lt;/th&gt;&#xA;&lt;th&gt;What it does&lt;/th&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/thead&gt;&#xA;&lt;tbody&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;build&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;Full build. Flags: &lt;code&gt;--clean&lt;/code&gt;, &lt;code&gt;--dry-run&lt;/code&gt;, &lt;code&gt;--fast&lt;/code&gt; (skip minify/CSS purge/Tailwind/Pagefind), &lt;code&gt;--benchmark-json&lt;/code&gt;, &lt;code&gt;--benchmark-detailed&lt;/code&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;serve&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;Dev server + live reload. &lt;code&gt;-p/--port&lt;/code&gt;, &lt;code&gt;-H/--host&lt;/code&gt;, &lt;code&gt;--no-reload&lt;/code&gt;, &lt;code&gt;--no-watch&lt;/code&gt;, &lt;code&gt;--open&lt;/code&gt;, &lt;code&gt;--fast&lt;/code&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;new [title]&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;Create post. &lt;code&gt;--dir&lt;/code&gt;, &lt;code&gt;--draft&lt;/code&gt;, &lt;code&gt;--tags&lt;/code&gt;; interactive mode via charmbracelet/huh. Built-in content templates: post, page, docs, article, note, photo, video, link, quote, guide, inline, contact, author&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;init&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;Scaffold a new site&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;config show/get/set/validate/init&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;Resolved config in YAML/JSON/TOML; dot-notation get (&lt;code&gt;feeds.defaults.items_per_page&lt;/code&gt;); &lt;code&gt;set&lt;/code&gt; preserves formatting&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;migrate&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;strong&gt;Python-markata migration tool&lt;/strong&gt; (see §2)&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;tui&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;k9s-style interactive TUI: posts/tags/feeds views, &lt;code&gt;/&lt;/code&gt; filter expressions&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;lsp&lt;/code&gt; / &lt;code&gt;lsp setup --editor helix&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;Language server: wikilink completion, frontmatter completion/hover, diagnostics&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;list&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;List posts/tags/feeds (`&amp;ndash;format table&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;search&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;Content search: &lt;code&gt;--filter&lt;/code&gt;, &lt;code&gt;--fields&lt;/code&gt;, &lt;code&gt;--fuzzy&lt;/code&gt;, &lt;code&gt;--limit&lt;/code&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;lint&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;Frontmatter/content checks with fixers (incl. natural-language datetime fixing)&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;explain &amp;lt;topic&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;Built-in docs, e.g. &lt;code&gt;markata-go explain feeds&lt;/code&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;benchmark&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;Build benchmarks + pprof&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;import&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;Import external content (PESOS pattern)&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;encryption&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;code&gt;check&lt;/code&gt;, &lt;code&gt;generate-password&lt;/code&gt;, &lt;code&gt;encrypt-posts&lt;/code&gt; subcommands&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;aesthetic&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;Theme/aesthetic tooling&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;agent&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;Install/doctor bundled agent-skill integrations (&lt;code&gt;agent doctor&lt;/code&gt; drift-checks installed skill)&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;blogroll&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;Blogroll commands incl. &lt;code&gt;blogroll update&lt;/code&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;version&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;code&gt;--short&lt;/code&gt; supported&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;2-config-format&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;2. Config format&lt;/span&gt; &lt;a href=&#34;#2-config-format&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;file-discovery&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;File discovery&lt;/span&gt; &lt;a href=&#34;#file-discovery&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;markata-go does &lt;strong&gt;not&lt;/strong&gt; auto-read &lt;code&gt;markata.toml&lt;/code&gt;. It looks for (first found wins): &lt;code&gt;./markata-go.toml&lt;/code&gt;, &lt;code&gt;./markata-go.yaml&lt;/code&gt;, &lt;code&gt;./markata-go.yml&lt;/code&gt;, &lt;code&gt;./markata-go.json&lt;/code&gt;, &lt;code&gt;.markata-go.*&lt;/code&gt;, &lt;code&gt;~/.config/markata-go/config.toml&lt;/code&gt;, or &lt;code&gt;--config&lt;/code&gt;/&lt;code&gt;--merge-config&lt;/code&gt;. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/configuration.md&#34;&gt;configuration.md&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/cli.md&#34;&gt;cli.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;All config is namespaced under &lt;code&gt;[markata-go]&lt;/code&gt; (also accepts YAML/JSON). Env overrides use &lt;code&gt;MARKATA_GO_&lt;/code&gt; prefix (e.g. &lt;code&gt;MARKATA_GO_OUTPUT_DIR=dist&lt;/code&gt;). Config &lt;code&gt;include = [...]&lt;/code&gt; supports splitting config across files; &lt;code&gt;[[markata-go.feeds]]&lt;/code&gt; merges by &lt;code&gt;slug&lt;/code&gt;. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/configuration.md&#34;&gt;configuration.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;core-schema-markata-go&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Core schema (&lt;/span&gt;&lt;code&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;[markata-go]&lt;/span&gt;&lt;/code&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;)&lt;/span&gt; &lt;a href=&#34;#core-schema-markata-go&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;output_dir&lt;/code&gt; (default &lt;code&gt;&amp;quot;output&amp;quot;&lt;/code&gt;), &lt;code&gt;url&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;description&lt;/code&gt;, &lt;code&gt;author&lt;/code&gt;, &lt;code&gt;license&lt;/code&gt;, &lt;code&gt;assets_dir&lt;/code&gt; (default &lt;code&gt;&amp;quot;static&amp;quot;&lt;/code&gt;), &lt;code&gt;templates_dir&lt;/code&gt; (default &lt;code&gt;&amp;quot;templates&amp;quot;&lt;/code&gt;), &lt;code&gt;hooks&lt;/code&gt; (default &lt;code&gt;[&amp;quot;default&amp;quot;]&lt;/code&gt;), &lt;code&gt;disabled_hooks&lt;/code&gt;, &lt;code&gt;concurrency&lt;/code&gt; (0=auto). PWA-ish fields also present in the schema: &lt;code&gt;icon&lt;/code&gt;, &lt;code&gt;lang&lt;/code&gt;, &lt;code&gt;theme_color&lt;/code&gt;, &lt;code&gt;background_color&lt;/code&gt;, &lt;code&gt;start_url&lt;/code&gt;, &lt;code&gt;display&lt;/code&gt;, &lt;code&gt;short_name&lt;/code&gt;, &lt;code&gt;site_name&lt;/code&gt;, &lt;code&gt;repo_url&lt;/code&gt;, &lt;code&gt;repo_branch&lt;/code&gt;, &lt;code&gt;twitter_card&lt;/code&gt;, &lt;code&gt;twitter_handle&lt;/code&gt;/&lt;code&gt;twitter_site&lt;/code&gt;, &lt;code&gt;rss_description&lt;/code&gt;, &lt;code&gt;site_version&lt;/code&gt;. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/configuration.md&#34;&gt;configuration.md&lt;/a&gt; + this repo&amp;rsquo;s own &lt;code&gt;markata-go.toml&lt;/code&gt; which already carries them.&lt;/p&gt;&#xA;&lt;p&gt;Other sections seen in docs: &lt;code&gt;[markata-go.glob]&lt;/code&gt; (&lt;code&gt;patterns&lt;/code&gt; default &lt;code&gt;[&amp;quot;pages/**/*.md&amp;quot;,&amp;quot;posts/**/*.md&amp;quot;]&lt;/code&gt;, &lt;code&gt;use_gitignore&lt;/code&gt;, &lt;code&gt;slug_mode&lt;/code&gt;, &lt;code&gt;slug_rules&lt;/code&gt;), &lt;code&gt;[markata-go.markdown]&lt;/code&gt; + &lt;code&gt;[markata-go.markdown.highlight]&lt;/code&gt;, &lt;code&gt;[markata-go.wikilinks]&lt;/code&gt; (&lt;code&gt;warn_broken&lt;/code&gt;, &lt;code&gt;strict_wikilinks&lt;/code&gt; under &lt;code&gt;[markata-go]&lt;/code&gt;), &lt;code&gt;[markata-go.theme]&lt;/code&gt;, &lt;code&gt;[markata-go.feed_defaults]&lt;/code&gt;, &lt;code&gt;[[markata-go.feeds]]&lt;/code&gt;, &lt;code&gt;[[markata-go.nav]]&lt;/code&gt; (&lt;code&gt;label&lt;/code&gt;, &lt;code&gt;url&lt;/code&gt;, &lt;code&gt;external&lt;/code&gt;), &lt;code&gt;[markata-go.components.nav]&lt;/code&gt;, &lt;code&gt;[markata-go.sidebar]&lt;/code&gt;/&lt;code&gt;[[markata-go.sidebar.nav]]&lt;/code&gt;, &lt;code&gt;[markata-go.encryption]&lt;/code&gt;, &lt;code&gt;[embeds]&lt;/code&gt;, &lt;code&gt;[markata-go.head]&lt;/code&gt; + &lt;code&gt;[[markata-go.head.alternate_feeds]]&lt;/code&gt;, &lt;code&gt;[markata-go.blogroll]&lt;/code&gt;, &lt;code&gt;[content_templates]&lt;/code&gt;. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/configuration.md&#34;&gt;configuration.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;migration-tooling-markata-go-migrate&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Migration tooling — &lt;/span&gt;&lt;code&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;markata-go migrate&lt;/span&gt;&lt;/code&gt; &lt;a href=&#34;#migration-tooling-markata-go-migrate&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/cli.md&#34;&gt;cli.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;markata-go migrate                          &lt;span class=&#34;c1&#34;&gt;# full analysis&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;markata-go migrate --dry-run&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;markata-go migrate config -i markata.toml -o markata-go.toml   &lt;span class=&#34;c1&#34;&gt;# also accepts pyproject.toml&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;markata-go migrate filter &lt;span class=&#34;s2&#34;&gt;&amp;#34;templateKey in [&amp;#39;blog&amp;#39;, &amp;#39;til&amp;#39;]&amp;#34;&lt;/span&gt;     &lt;span class=&#34;c1&#34;&gt;# check a filter expression&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;markata-go migrate templates &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;path&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;                           &lt;span class=&#34;c1&#34;&gt;# check pongo2 compat&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Exit codes: 0 clean, 1 warnings, 2 incompatibilities, 3 error. There is a &lt;code&gt;docs/guides/migration.md&lt;/code&gt; in the repo.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Known bug:&lt;/strong&gt; the migrate tool has emitted invalid TOML (nested &lt;code&gt;[markata-go.description.description]&lt;/code&gt; tables from a &lt;code&gt;[markata.auto_description.description]&lt;/code&gt;-style Python config) — &lt;a href=&#34;https://github.com/WaylonWalker/waylonwalker.com/issues/20&#34;&gt;WaylonWalker/waylonwalker.com issue #20&lt;/a&gt;, supposedly fixed by &lt;code&gt;fix(migrate): generate valid TOML for string fields (#208)&lt;/code&gt; in &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/releases/tag/v0.5.0&#34;&gt;v0.5.0&lt;/a&gt;. Always run &lt;code&gt;markata-go config validate&lt;/code&gt; after migrating.&lt;/p&gt;&#xA;&lt;p&gt;This repo&amp;rsquo;s &lt;code&gt;markata-go.toml&lt;/code&gt; already exists and appears to be migrate-tool output — feed filter strings carried over verbatim, &lt;code&gt;page_size&lt;/code&gt; preserved.&lt;/p&gt;&#xA;&lt;h2 id=&#34;3-markdown-features&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;3. Markdown features&lt;/span&gt; &lt;a href=&#34;#3-markdown-features&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Engine: &lt;strong&gt;goldmark&lt;/strong&gt; (deps include &lt;code&gt;yuin/goldmark&lt;/code&gt;, &lt;code&gt;goldmark-highlighting&lt;/code&gt;, &lt;code&gt;goldmark-emoji&lt;/code&gt;, &lt;code&gt;goldmark-figure&lt;/code&gt;, &lt;code&gt;goldmark-anchor&lt;/code&gt;, CJK ext, &lt;code&gt;abhg.dev/goldmark/*&lt;/code&gt;). &lt;a href=&#34;https://pkg.go.dev/github.com/WaylonWalker/markata-go&#34;&gt;pkg.go.dev deps&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/compare/v0.9.0...v0.10.0&#34;&gt;v0.10.0 changelog&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Config: &lt;code&gt;[markata-go.markdown] extensions = [&amp;quot;tables&amp;quot;,&amp;quot;strikethrough&amp;quot;,&amp;quot;autolinks&amp;quot;,&amp;quot;tasklist&amp;quot;]&lt;/code&gt;; spec also lists &lt;code&gt;typographer&lt;/code&gt; (smart quotes, &lt;strong&gt;default true&lt;/strong&gt;), &lt;code&gt;definition_list&lt;/code&gt;, &lt;code&gt;footnote&lt;/code&gt;. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/configuration.md&#34;&gt;configuration.md&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/spec/spec/CONTENT.md&#34;&gt;spec/CONTENT.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Admonitions &lt;code&gt;!!!&lt;/code&gt;:&lt;/strong&gt; supported via a goldmark extension in the render stage. &lt;strong&gt;Verified against source: types are a hardcoded whitelist&lt;/strong&gt; — &lt;code&gt;note, info, tip, hint, success, warning, caution, important, danger, error, bug, example, quote, abstract, aside, seealso, reminder, attention, todo, settings, vsplit, chat, chat-reply&lt;/code&gt; (&lt;code&gt;admonitionTypes&lt;/code&gt; map in &lt;code&gt;pkg/plugins/admonitions.go&lt;/code&gt;). Unknown types are NOT parsed — they render as literal paragraphs. &lt;code&gt;!!! scripture&lt;/code&gt; / &lt;code&gt;!!! background-thought&lt;/code&gt; do &lt;strong&gt;not&lt;/strong&gt; work. Confirmed live: &lt;code&gt;???+ success&lt;/code&gt; in this repo rendered &lt;code&gt;&amp;lt;details class=&amp;quot;admonition success&amp;quot; open&amp;gt;&lt;/code&gt; while &lt;code&gt;!!! scripture&lt;/code&gt; rendered literal text. No config option for custom types exists. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/markdown.md&#34;&gt;markdown.md&lt;/a&gt;, &lt;code&gt;pkg/plugins/admonitions.go:17&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Collapsible &lt;code&gt;???&lt;/code&gt; / &lt;code&gt;???+&lt;/code&gt;:&lt;/strong&gt; supported (&lt;code&gt;???&lt;/code&gt; collapsed, &lt;code&gt;???+&lt;/code&gt; open), renders native &lt;code&gt;&amp;lt;details&amp;gt;/&amp;lt;summary&amp;gt;&lt;/code&gt;. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/markdown.md&#34;&gt;markdown.md&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Wikilinks:&lt;/strong&gt; &lt;code&gt;[[slug]]&lt;/code&gt;, &lt;code&gt;[[slug|text]]&lt;/code&gt;, &lt;code&gt;[[slug#fragment]]&lt;/code&gt;, &lt;code&gt;[[slug#frag|text]]&lt;/code&gt;; case-insensitive slug lookup, then &lt;code&gt;aliases&lt;/code&gt; frontmatter (synonyms: &lt;code&gt;alias&lt;/code&gt;, &lt;code&gt;handle&lt;/code&gt;, &lt;code&gt;handles&lt;/code&gt;); unresolved → rendered literal + &lt;code&gt;wikilink_warnings&lt;/code&gt; in &lt;code&gt;post.Extra&lt;/code&gt;; &lt;code&gt;strict_wikilinks = true&lt;/code&gt; fails the build. &lt;strong&gt;&lt;code&gt;[[ slug ]]&lt;/code&gt; WITH SPACES WORKS&lt;/strong&gt; — &lt;code&gt;wikilinks.go:151&lt;/code&gt; does &lt;code&gt;strings.TrimSpace(groups[1])&lt;/code&gt;, verified against this repo&amp;rsquo;s build output (spaced daily-note links resolve with full hover-preview data attributes). &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;, &lt;code&gt;pkg/plugins/wikilinks.go:151&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Attrs &lt;code&gt;{#id .class}&lt;/code&gt;:&lt;/strong&gt; supported — spec shows &lt;code&gt;![alt](img.png){.shadow .bordered}&lt;/code&gt;, &lt;code&gt;*em*{.accent}&lt;/code&gt;, &lt;code&gt;`code`{.inline-code}&lt;/code&gt;, &lt;code&gt;[[link]]{.wikilink-pill}&lt;/code&gt;, &lt;code&gt;{#hero-image}&lt;/code&gt;. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/spec/spec/CONTENT.md&#34;&gt;spec/CONTENT.md&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Code highlighting:&lt;/strong&gt; goldmark-highlighting (chroma); &lt;code&gt;[markata-go.markdown.highlight] theme = &amp;quot;dracula&amp;quot;&lt;/code&gt;, &lt;code&gt;line_numbers&lt;/code&gt;. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/markdown.md&#34;&gt;markdown.md&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tables:&lt;/strong&gt; via &lt;code&gt;tables&lt;/code&gt; extension. Typographer/smart quotes: &lt;code&gt;typographer = true&lt;/code&gt; default in spec. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/configuration.md&#34;&gt;configuration.md&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/spec/spec/CONTENT.md&#34;&gt;spec/CONTENT.md&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Heading anchors/permalinks:&lt;/strong&gt; &lt;code&gt;heading_anchors&lt;/code&gt; plugin + &lt;code&gt;goldmark-anchor&lt;/code&gt;; TOC plugin (&lt;code&gt;toc&lt;/code&gt;, &lt;code&gt;post.Extra.toc_html&lt;/code&gt;). &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Markdown containers:&lt;/strong&gt; generic &lt;code&gt;::: name&lt;/code&gt; fenced divs with &lt;code&gt;{#id .class data-attr}&lt;/code&gt; — a possible escape hatch for admonition-like custom blocks (no title/collapse semantics). &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/markdown-containers.md&#34;&gt;markdown-containers.md&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Extras present:&lt;/strong&gt; mermaid (incl. lightbox/pan-zoom, CLI/Chromium pre-render), chartjs fenced blocks, &lt;code&gt;contribution-graph&lt;/code&gt; fenced block, csv_fence, glossary, webawesome components, Obsidian-style &lt;code&gt;&amp;lt;!-- embed not found: attachment --&amp;gt; ![[attachment]]&lt;/code&gt; embeds, oEmbed external link cards. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/releases/tag/v0.7.0&#34;&gt;v0.7.0&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;4-frontmatter&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;4. Frontmatter&lt;/span&gt; &lt;a href=&#34;#4-frontmatter&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/frontmatter.md&#34;&gt;frontmatter.md&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md load section&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/spec/spec/DATA_MODEL.md&#34;&gt;spec/DATA_MODEL.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Built-in fields: &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;slug&lt;/code&gt;, &lt;code&gt;date&lt;/code&gt; (+ &lt;code&gt;modified&lt;/code&gt;, and date aliases for cross-SSG compat), &lt;code&gt;published&lt;/code&gt; (default &lt;strong&gt;false&lt;/strong&gt;), &lt;code&gt;draft&lt;/code&gt; (never rendered), &lt;code&gt;skip&lt;/code&gt;, &lt;code&gt;tags&lt;/code&gt;, &lt;code&gt;description&lt;/code&gt; (auto-generated if absent), &lt;code&gt;template&lt;/code&gt; (default &lt;code&gt;post.html&lt;/code&gt;; also object form &lt;code&gt;{default:, card:, feed:}&lt;/code&gt;), &lt;code&gt;aliases&lt;/code&gt;, &lt;code&gt;authors&lt;/code&gt;/&lt;code&gt;author&lt;/code&gt;/&lt;code&gt;writer&lt;/code&gt;, &lt;code&gt;image&lt;/code&gt;/&lt;code&gt;video&lt;/code&gt;/&lt;code&gt;cover_image&lt;/code&gt;/&lt;code&gt;thumbnail&lt;/code&gt;/&lt;code&gt;og_image&lt;/code&gt;/&lt;code&gt;hero_video&lt;/code&gt;, &lt;code&gt;private&lt;/code&gt;, &lt;code&gt;jinja&lt;/code&gt; (bool gate for jinja_md), &lt;code&gt;config_overrides&lt;/code&gt;, &lt;code&gt;css_class&lt;/code&gt;. Unknown fields land in &lt;code&gt;Extra&lt;/code&gt; and are filterable (&lt;code&gt;Extra.series == &#39;X&#39;&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;published&lt;/code&gt; semantics match Python markata:&lt;/strong&gt; &lt;code&gt;false&lt;/code&gt; = rendered but excluded from feeds/sitemap/RSS (&amp;ldquo;shadow page&amp;rdquo;); &lt;code&gt;true&lt;/code&gt; = included. &lt;code&gt;draft: true&lt;/code&gt; = not rendered at all.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;templateKey&lt;/code&gt;:&lt;/strong&gt; still a real field — filters like &lt;code&gt;templateKey in [&#39;blog-post&#39;]&lt;/code&gt; are used in migrate docs, and &lt;code&gt;encryption.private_tags&lt;/code&gt; matches against templateKey as well as tags. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/cli.md&#34;&gt;cli.md migrate section&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/releases/tag/v0.8.0&#34;&gt;v0.8.0 changelog&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Slugs:&lt;/strong&gt; auto-generated from filename by default (&lt;code&gt;flat&lt;/code&gt; mode): lowercase, spaces→hyphens, strip special chars, collapse hyphens. &lt;code&gt;[markata-go.glob] slug_mode = &amp;quot;flat&amp;quot; | &amp;quot;path&amp;quot;&lt;/code&gt; plus per-prefix &lt;code&gt;[[markata-go.glob.slug_rules]]&lt;/code&gt; (longest prefix wins) — the &amp;ldquo;hybrid&amp;rdquo; v0.9.0 capability. &lt;code&gt;index.md&lt;/code&gt;/&lt;code&gt;README.md&lt;/code&gt; map to directory root; &lt;code&gt;slug: &amp;quot;&amp;quot;&lt;/code&gt; or &lt;code&gt;/&lt;/code&gt; = homepage; frontmatter &lt;code&gt;slug&lt;/code&gt; always wins; nested &lt;code&gt;slug: &amp;quot;a/b&amp;quot;&lt;/code&gt; allowed; leading/trailing slashes stripped. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/configuration.md&#34;&gt;configuration.md&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/spec/spec/DATA_MODEL.md&#34;&gt;spec/DATA_MODEL.md&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Dates:&lt;/strong&gt; accepts RFC3339, &lt;code&gt;YYYY-MM-DD HH:MM:SS&lt;/code&gt;, &lt;code&gt;YYYY-MM-DD&lt;/code&gt;, US &lt;code&gt;01/15/2024&lt;/code&gt;, European &lt;code&gt;15-01-2024&lt;/code&gt;, &lt;code&gt;January 15, 2024&lt;/code&gt;, &lt;code&gt;Jan 15, 2024&lt;/code&gt;. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;5-feeds-filter-language&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;5. Feeds + filter language&lt;/span&gt; &lt;a href=&#34;#5-feeds-filter-language&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Filters are Python-like expressions — the same syntax family as Python markata.&lt;/strong&gt; This site&amp;rsquo;s existing filters port verbatim. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/frontmatter.md&#34;&gt;frontmatter.md&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/spec/spec/DATA_MODEL.md&#34;&gt;spec/DATA_MODEL.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;filter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;published == True&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;filter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;draft == False&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;filter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#39;go&amp;#39; in tags&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;filter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;date &amp;gt;= &amp;#39;2024-01-01&amp;#39; and date &amp;lt; &amp;#39;2025-01-01&amp;#39;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;filter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;slug.startswith(&amp;#39;tutorials/&amp;#39;)&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;filter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;template == &amp;#39;tutorial.html&amp;#39;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;filter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Extra.series == &amp;#39;Web Scraping with Go&amp;#39;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;filter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;published == True and (&amp;#39;go&amp;#39; in tags or &amp;#39;python&amp;#39; in tags)&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;filter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;not draft&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Operators: &lt;code&gt;==&lt;/code&gt; &lt;code&gt;!=&lt;/code&gt; &lt;code&gt;&amp;gt;&lt;/code&gt; &lt;code&gt;&amp;gt;=&lt;/code&gt; &lt;code&gt;&amp;lt;&lt;/code&gt; &lt;code&gt;&amp;lt;=&lt;/code&gt; &lt;code&gt;in&lt;/code&gt; &lt;code&gt;and&lt;/code&gt; &lt;code&gt;or&lt;/code&gt; &lt;code&gt;not&lt;/code&gt;; string methods &lt;code&gt;startswith&lt;/code&gt;, &lt;code&gt;lower().contains(...)&lt;/code&gt;; built-ins &lt;code&gt;today&lt;/code&gt;, &lt;code&gt;now&lt;/code&gt;, &lt;code&gt;True&lt;/code&gt;, &lt;code&gt;False&lt;/code&gt;, &lt;code&gt;None&lt;/code&gt;; &lt;code&gt;date(2024,1,1)&lt;/code&gt; constructor in spec. (Python markata extras &lt;code&gt;timedelta&lt;/code&gt;/&lt;code&gt;parse&lt;/code&gt; not confirmed — check &lt;code&gt;migrate filter&lt;/code&gt;.) Note the TUI/CLI search uses a slightly different dialect (&lt;code&gt;tags contains &amp;quot;go&amp;quot;&lt;/code&gt;, &lt;code&gt;title startswith &amp;quot;How&amp;quot;&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;h3 id=&#34;feed-config&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Feed config&lt;/span&gt; &lt;a href=&#34;#feed-config&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pkg.go.dev/github.com/WaylonWalker/markata-go&#34;&gt;pkg.go.dev README&lt;/a&gt;&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata-go&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;feed_defaults&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;items_per_page&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;orphan_threshold&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata-go&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;feed_defaults&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;formats&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;html&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;rss&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;atom&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;json&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata-go&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;feed_defaults&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;templates&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;html&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;feed.html&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;card&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;card.html&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata-go&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;feeds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;slug&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;blog&amp;#34;&lt;/span&gt;            &lt;span class=&#34;c&#34;&gt;# slug = &amp;#34;&amp;#34; → homepage index.html&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Blog&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;description&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;All blog posts&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;filter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;published == True&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;sort&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;date&amp;#34;&lt;/span&gt;            &lt;span class=&#34;c&#34;&gt;# or &amp;#34;Extra.series_order&amp;#34; etc.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;reverse&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;items_per_page&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata-go&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;feeds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;formats&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;html&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;rss&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;atom&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;json&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Formats per feed: &lt;code&gt;html&lt;/code&gt; → &lt;code&gt;/{slug}/index.html&lt;/code&gt; (paginated), &lt;code&gt;rss&lt;/code&gt; → &lt;code&gt;/{slug}/rss.xml&lt;/code&gt;, &lt;code&gt;atom&lt;/code&gt; → &lt;code&gt;atom.xml&lt;/code&gt;, &lt;code&gt;json&lt;/code&gt; → &lt;code&gt;feed.json&lt;/code&gt;, &lt;code&gt;markdown&lt;/code&gt; → &lt;code&gt;index.md&lt;/code&gt;, &lt;code&gt;text&lt;/code&gt; → &lt;code&gt;index.txt&lt;/code&gt;, plus a &lt;code&gt;sitemap&lt;/code&gt; per-feed format. Pagination via &lt;code&gt;items_per_page&lt;/code&gt;/&lt;code&gt;page_size&lt;/code&gt;, &lt;code&gt;orphan_threshold&lt;/code&gt;. &lt;code&gt;auto_feeds&lt;/code&gt; generates per-tag feeds automatically. &lt;a href=&#34;https://pkg.go.dev/github.com/WaylonWalker/markata-go&#34;&gt;pkg.go.dev&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/releases/tag/v0.10.0&#34;&gt;v0.10.0 changelog&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;6-templates&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;6. Templates&lt;/span&gt; &lt;a href=&#34;#6-templates&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Engine: &lt;strong&gt;pongo2&lt;/strong&gt; (&amp;ldquo;Jinja2-like&amp;rdquo;) — &lt;code&gt;{{ }}&lt;/code&gt;, &lt;code&gt;{% %}&lt;/code&gt; syntax, &lt;code&gt;|safe&lt;/code&gt; etc. &lt;a href=&#34;https://pkg.go.dev/github.com/WaylonWalker/markata-go&#34;&gt;pkg.go.dev&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Lookup order for &lt;code&gt;post.template&lt;/code&gt;: project &lt;code&gt;templates/&lt;/code&gt; dir → theme templates → default theme fallback. Missing template → raw &lt;code&gt;article_html&lt;/code&gt;. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/frontmatter.md&#34;&gt;frontmatter.md&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Template context: &lt;code&gt;post&lt;/code&gt;, &lt;code&gt;body&lt;/code&gt; (= &lt;code&gt;post.ArticleHTML&lt;/code&gt;), &lt;code&gt;config&lt;/code&gt;, &lt;code&gt;core&lt;/code&gt;; in jinja_md content templates also &lt;code&gt;posts&lt;/code&gt;, &lt;code&gt;filter&lt;/code&gt;, &lt;code&gt;map&lt;/code&gt;, &lt;code&gt;today&lt;/code&gt;, &lt;code&gt;now&lt;/code&gt;. Field access is Go-style exported names in examples (&lt;code&gt;post.Title&lt;/code&gt;, &lt;code&gt;post.Date.Format&lt;/code&gt;, &lt;code&gt;post.Extra.toc_html&lt;/code&gt;) — but template-variable casing has been a moving target (documented in agent-skill commit c7923e3); pongo2 generally resolves case-insensitively. Custom filters: &lt;code&gt;media_url&lt;/code&gt;, &lt;code&gt;is_video&lt;/code&gt;, &lt;code&gt;length/first/last/sort/reverse/selectattr/map/join/default/upper/lower/title&lt;/code&gt;, &lt;code&gt;forloop&lt;/code&gt; vars. Template helpers &lt;code&gt;render_feed&lt;/code&gt;/&lt;code&gt;feed_posts&lt;/code&gt; exist. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/frontmatter.md&#34;&gt;frontmatter.md media fields&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/spec/spec/CONTENT.md&#34;&gt;spec/CONTENT.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;{%&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;post.Extra.toc_html&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;%}&lt;/span&gt;&lt;span class=&#34;x&#34;&gt;&amp;lt;aside&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;{{&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;post.Extra.toc_html&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;safe&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;x&#34;&gt;&amp;lt;/aside&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;{%&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;endif&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;%}&lt;/span&gt;&lt;span class=&#34;x&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;{%&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;p&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;filter&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;published == true&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)[:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;%}&lt;/span&gt;&lt;span class=&#34;x&#34;&gt;- &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;{{&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;p.Title&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;}}{%&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;endfor&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;%}&lt;/span&gt;&lt;span class=&#34;x&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;{%&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;post.image&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;media_url&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;post.video&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;m&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;%}{%&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;is_video&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;%}&lt;/span&gt;&lt;span class=&#34;x&#34;&gt;&amp;lt;video src=&amp;#34;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;{{&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;m&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;x&#34;&gt;&amp;#34;&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;{%&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;endif&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;%}{%&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;endwith&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;%}&lt;/span&gt;&lt;span class=&#34;x&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;jinja_md&lt;/code&gt; plugin = jinja-in-markdown equivalent; gated per-post by &lt;code&gt;jinja: true&lt;/code&gt; frontmatter. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/spec/spec/CONTENT.md&#34;&gt;spec/CONTENT.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Migration note:&lt;/strong&gt; &lt;code&gt;markata-go migrate templates&lt;/code&gt; checks pongo2 compat, but Jinja2↔pongo2 differences (e.g. &lt;code&gt;{% with %}&lt;/code&gt;, macro support gaps, different autoescape behavior) mean the 30 templates in &lt;code&gt;templates/&lt;/code&gt; need manual review. Verified live: &lt;code&gt;templates/base_head.html&lt;/code&gt; &lt;code&gt;{% include &amp;quot;head.html&amp;quot; %}&lt;/code&gt; fails (file absent — Python markata may have supplied it) and poisons the whole project-template chain → 697 parse errors → every page falls back to built-in theme.&lt;/p&gt;&#xA;&lt;h2 id=&#34;7-feature-parity-vs-this-site-s-python-plugins&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;7. Feature parity vs this site’s Python plugins&lt;/span&gt; &lt;a href=&#34;#7-feature-parity-vs-this-site-s-python-plugins&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;&lt;thead&gt;&#xA;&lt;tr&gt;&#xA;&lt;th&gt;Python markata feature/plugin&lt;/th&gt;&#xA;&lt;th&gt;markata-go equivalent&lt;/th&gt;&#xA;&lt;th&gt;Source&lt;/th&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/thead&gt;&#xA;&lt;tbody&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;plugins.password_protection&lt;/code&gt; (client-side decrypt)&lt;/td&gt;&#xA;&lt;td&gt;&lt;strong&gt;&lt;code&gt;encryption&lt;/code&gt; plugin + CLI.&lt;/strong&gt; &lt;code&gt;[markata-go.encryption]&lt;/code&gt;, &lt;code&gt;private_tags&lt;/code&gt; map tag/&lt;strong&gt;templateKey&lt;/strong&gt;→key name, keys from env vars, &lt;code&gt;enforce_strength&lt;/code&gt;, &lt;code&gt;min_password_length&lt;/code&gt;, &lt;code&gt;default_key&lt;/code&gt;; &lt;code&gt;markata-go encryption check/generate-password/encrypt-posts&lt;/code&gt;; &lt;code&gt;private: true&lt;/code&gt; frontmatter + robots.txt; encrypted cards on feed pages; plaintext-leak sealing. Configured in this repo&amp;rsquo;s &lt;code&gt;markata-go.toml&lt;/code&gt; (&lt;code&gt;protected-post = &amp;quot;default&amp;quot;&lt;/code&gt;, key via &lt;code&gt;MARKATA_GO_ENCRYPTION_KEY_DEFAULT&lt;/code&gt;); both protected posts verified encrypted in &lt;code&gt;markout-go&lt;/code&gt;.&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/releases/tag/v0.7.0&#34;&gt;v0.7.0&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/releases/tag/v0.8.0&#34;&gt;v0.8.0&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/encryption.md&#34;&gt;encryption.md&lt;/a&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;plugins.wikilinks_hover&lt;/code&gt; (disabled here)&lt;/td&gt;&#xA;&lt;td&gt;&lt;strong&gt;&lt;code&gt;wikilink_hover&lt;/code&gt; — built-in, enabled by default&lt;/strong&gt; since v0.7.0; renders &lt;code&gt;data-title&lt;/code&gt;/&lt;code&gt;data-description&lt;/code&gt;/&lt;code&gt;data-date&lt;/code&gt; on &lt;code&gt;.wikilink&lt;/code&gt; anchors. Verified in this site&amp;rsquo;s build output.&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/releases/tag/v0.7.0&#34;&gt;v0.7.0&lt;/a&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;plugins.md_video&lt;/code&gt; (&lt;code&gt;![]()&lt;/code&gt;→&lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt;)&lt;/td&gt;&#xA;&lt;td&gt;&lt;strong&gt;Built-in &lt;code&gt;md_video&lt;/code&gt; plugin&lt;/strong&gt; (same name) exists in markata-go; also &lt;code&gt;youtube&lt;/code&gt; plugin (URL-on-own-line → lite/nocookie embed), &lt;code&gt;embeds&lt;/code&gt; (oEmbed, Obsidian `&lt;!-- embed not found: file --&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;![[file]]&lt;code&gt;), &lt;/code&gt;is_video&lt;code&gt;/&lt;/code&gt;media_url` filters.&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;plugins.analytics&lt;/code&gt; (disabled here)&lt;/td&gt;&#xA;&lt;td&gt;&lt;code&gt;stats&lt;/code&gt; plugin (post/feed/site stats), &lt;code&gt;contribution-graph&lt;/code&gt; fenced block, chartjs blocks; analytics guide at &lt;code&gt;docs/guides/analytics.md&lt;/code&gt;.&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;plugins.build_thoughts&lt;/code&gt; (custom: builds thoughts feed from external API)&lt;/td&gt;&#xA;&lt;td&gt;&lt;strong&gt;No equivalent.&lt;/strong&gt; &lt;code&gt;import&lt;/code&gt; command only does RSS/Atom/JSONFeed — thoughts API has no feed endpoint (verified: &lt;code&gt;/feed.json&lt;/code&gt; → 404). Port as pre-build script generating &lt;code&gt;pages/thoughts/*.md&lt;/code&gt; (fix &lt;code&gt;scripts/sync-thoughts.py&lt;/code&gt; — wrong output dir, no frontmatter), or keep calling it before builds.&lt;/td&gt;&#xA;&lt;td&gt;this repo &lt;code&gt;plugins/build_thoughts.py&lt;/code&gt;, &lt;code&gt;scripts/sync-thoughts.py&lt;/code&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;markata.plugins.prevnext&lt;/code&gt; (disabled here)&lt;/td&gt;&#xA;&lt;td&gt;&lt;code&gt;prevnext&lt;/code&gt; built-in (Collect stage).&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;markata.plugins.publish_source&lt;/code&gt; (enabled here — serves &lt;code&gt;.md&lt;/code&gt;/&lt;code&gt;.txt&lt;/code&gt; sources)&lt;/td&gt;&#xA;&lt;td&gt;Feed &lt;code&gt;markdown&lt;/code&gt;/&lt;code&gt;text&lt;/code&gt; output formats cover per-feed sources; per-post &lt;code&gt;.md&lt;/code&gt; source publishing unconfirmed.&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://pkg.go.dev/github.com/WaylonWalker/markata-go&#34;&gt;pkg.go.dev feed formats&lt;/a&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;markata.plugins.service_worker&lt;/code&gt; (disabled here)&lt;/td&gt;&#xA;&lt;td&gt;Not in built-in plugin list. &lt;strong&gt;Probably absent.&lt;/strong&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;markata.plugins.manifest&lt;/code&gt; / PWA fields&lt;/td&gt;&#xA;&lt;td&gt;PWA config keys exist (&lt;code&gt;theme_color&lt;/code&gt;, &lt;code&gt;start_url&lt;/code&gt;, &lt;code&gt;display&lt;/code&gt;, &lt;code&gt;short_name&lt;/code&gt;…); a dedicated manifest.json writer not confirmed in plugin list.&lt;/td&gt;&#xA;&lt;td&gt;this repo&amp;rsquo;s markata-go.toml, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/guides/configuration.md&#34;&gt;configuration.md&lt;/a&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;RSS&lt;/td&gt;&#xA;&lt;td&gt;&lt;code&gt;rss&lt;/code&gt;/&lt;code&gt;atom&lt;/code&gt;/&lt;code&gt;jsonfeed&lt;/code&gt; write-stage plugins + per-feed formats + head &lt;code&gt;alternate_feeds&lt;/code&gt;&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;Sitemap&lt;/td&gt;&#xA;&lt;td&gt;&lt;code&gt;sitemap&lt;/code&gt; plugin + per-feed sitemap format&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;404 page&lt;/td&gt;&#xA;&lt;td&gt;Built-in 404 mechanism w/ slug suggestions + live-search fallback (v0.7.0); &lt;code&gt;didyoumean&lt;/code&gt;-style suggestions&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/releases/tag/v0.7.0&#34;&gt;v0.7.0&lt;/a&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;Covers / OG images&lt;/td&gt;&#xA;&lt;td&gt;&lt;code&gt;structured_data&lt;/code&gt; (JSON-LD/OG/Twitter), &lt;code&gt;og_image&lt;/code&gt; frontmatter, themed OG card templates, &lt;code&gt;og_image_service&lt;/code&gt; screenshot-based OG images&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/releases/tag/v0.7.0&#34;&gt;v0.7.0&lt;/a&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;jinja_md&lt;/td&gt;&#xA;&lt;td&gt;&lt;code&gt;jinja_md&lt;/code&gt; built-in (&lt;code&gt;jinja: true&lt;/code&gt; frontmatter)&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;redirects&lt;/td&gt;&#xA;&lt;td&gt;&lt;code&gt;redirects&lt;/code&gt; write plugin&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;markata summary&lt;/code&gt; TUI counts&lt;/td&gt;&#xA;&lt;td&gt;&lt;code&gt;markata-go tui&lt;/code&gt; + &lt;code&gt;list&lt;/code&gt;/&lt;code&gt;search&lt;/code&gt; cover similar ground&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/cli.md&#34;&gt;cli.md&lt;/a&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;&lt;code&gt;heading_link&lt;/code&gt; permalinks&lt;/td&gt;&#xA;&lt;td&gt;&lt;code&gt;heading_anchors&lt;/code&gt; built-in&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;Search&lt;/td&gt;&#xA;&lt;td&gt;&lt;code&gt;pagefind&lt;/code&gt; built-in (skipped by &lt;code&gt;--fast&lt;/code&gt;); optional bleve/searchcraft work in flight&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;Bundled agent skill for site repos&lt;/td&gt;&#xA;&lt;td&gt;&lt;code&gt;markata-go agent install&lt;/code&gt; ships a &lt;code&gt;markata-go-site&lt;/code&gt; skill (SKILL.md + topics/reference/examples)&lt;/td&gt;&#xA;&lt;td&gt;&lt;code&gt;spec/spec/AGENTS.md&lt;/code&gt;, &lt;code&gt;markata-go agent --help&lt;/code&gt;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;Extras not in Python version&lt;/td&gt;&#xA;&lt;td&gt;tailwind CDN automation, cdn_assets vendoring, mermaid, chartjs, glossary, series, webmentions, blogroll/reader, garden view w/ knowledge graph, mentions, link_collector/link graph, keyboard nav, view transitions, random_post, image optimization, LSP, serve control center&lt;/td&gt;&#xA;&lt;td&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;, release notes&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;8-extensibility&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;8. Extensibility&lt;/span&gt; &lt;a href=&#34;#8-extensibility&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Built-in plugin set is large (30+) and configurable via &lt;code&gt;hooks&lt;/code&gt;/&lt;code&gt;disabled_hooks&lt;/code&gt; (&lt;code&gt;hooks = [&amp;quot;default&amp;quot;, &amp;quot;python_docs&amp;quot;]&lt;/code&gt; style). &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/plugins.md&#34;&gt;plugins.md&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;True external plugins: Go-only and effectively compile-time.&lt;/strong&gt; &lt;code&gt;pkg/plugins/registry.go&lt;/code&gt; registers built-ins. The practical paths: &lt;strong&gt;fork + recompile&lt;/strong&gt; (we already build from source via &lt;code&gt;go install&lt;/code&gt;), or template/jinja_md + config for most needs. There&amp;rsquo;s a &lt;code&gt;docs/guides/plugin-development.md&lt;/code&gt; and an agent-skill topic &lt;code&gt;plugin-creation.md&lt;/code&gt;. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/spec/spec/PLUGINS.md&#34;&gt;spec/PLUGINS.md&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/CONTRIBUTING.md&#34;&gt;CONTRIBUTING.md&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Policy: PRs not accepted — so a needed feature means a fork or an issue request. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/CONTRIBUTING.md&#34;&gt;CONTRIBUTING.md&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Escape hatches: &lt;code&gt;jinja_md&lt;/code&gt; for computed content, &lt;code&gt;config_overrides&lt;/code&gt; per post, &lt;code&gt;import&lt;/code&gt; command, feed &lt;code&gt;markdown&lt;/code&gt;/&lt;code&gt;text&lt;/code&gt; outputs, &lt;code&gt;::: name&lt;/code&gt; containers, env-var-driven scripts pre-build.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;9-development-pace-maturity&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;9. Development pace &amp;amp; maturity&lt;/span&gt; &lt;a href=&#34;#9-development-pace-maturity&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Repo created &lt;strong&gt;2026-01-22&lt;/strong&gt;; releases: v0.4.0 (2026-01-24), v0.5.0 (~01-25), v0.6.0 (01-31), v0.7.0 (02-19), v0.8.0 (02-21), v0.9.0, v0.10.0 (04-20), … v0.13.0 (2026-10-02) — &lt;strong&gt;roughly monthly minors, hundreds of commits each&lt;/strong&gt; (v0.9→v0.10 = 772 commits). &lt;a href=&#34;https://pkg.go.dev/github.com/WaylonWalker/markata-go&#34;&gt;pkg.go.dev versions&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/releases&#34;&gt;releases&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Self-described &lt;strong&gt;&amp;ldquo;Beta (0.x) — API may change between minor versions&amp;rdquo;&lt;/strong&gt;; release notes explicitly warn to smoke-test custom templates/themes on upgrade. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go&#34;&gt;README&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/releases&#34;&gt;v0.9.0 notes&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Waylon dogfoods heavily:&lt;/strong&gt; waylonwalker.com homepage says &amp;ldquo;Building markata-go, the engine behind this site&amp;rdquo;; &lt;code&gt;go.waylonwalker.com&lt;/code&gt; is live; repo &lt;code&gt;WaylonWalker/waylonwalker.com&lt;/code&gt; has &lt;code&gt;markata-go.toml&lt;/code&gt; + split &lt;code&gt;config/*.toml&lt;/code&gt;; he runs a &amp;ldquo;builder admin&amp;rdquo; for live builds and edits via &lt;code&gt;md.waylonwalker.com&lt;/code&gt;. &lt;a href=&#34;https://waylonwalker.com//&#34;&gt;homepage&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/waylonwalker.com&#34;&gt;waylonwalker.com repo&lt;/a&gt;, &lt;a href=&#34;https://waylonwalker.com/shots/new-fast-mode-in-markata-go-is-fun/&#34;&gt;fast-mode post&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Community: 2 stars, 2 forks, 51 open issues, 2 contributors — &lt;strong&gt;solo project&lt;/strong&gt;, not open to PRs. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go&#34;&gt;repo&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Ecosystem extras already in flight: LSP (&lt;code&gt;markata-go lsp&lt;/code&gt;), TUI, agent-skill bundle, &lt;a href=&#34;/helm/&#34; class=&#34;glossary-term&#34; title=&#34;helm - package manager for k8s&#34; data-hover-title=&#34;helm&#34;&gt;helm&lt;/a&gt;/k8s deploy docs, builder-admin service, local admin CMS issue (#986). &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/blob/main/docs/reference/cli.md&#34;&gt;cli.md&lt;/a&gt;, &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/issues&#34;&gt;issues&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;10-known-gotchas-issues-observed&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;10. Known gotchas (issues + observed)&lt;/span&gt; &lt;a href=&#34;#10-known-gotchas-issues-observed&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;markata-go migrate&lt;/code&gt; can emit invalid TOML&lt;/strong&gt; for nested Python config sections (&lt;code&gt;auto_description&lt;/code&gt;) — validate with &lt;code&gt;config validate&lt;/code&gt;. &lt;a href=&#34;https://github.com/WaylonWalker/waylonwalker.com/issues/20&#34;&gt;waylonwalker.com#20&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Slug mode changes URLs&lt;/strong&gt;: &lt;code&gt;path&lt;/code&gt;/&lt;code&gt;hybrid&lt;/code&gt; modes change URL structure — &amp;ldquo;review links and redirects before switching&amp;rdquo;. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/releases&#34;&gt;v0.9.0 notes&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tailwind managed preflight off by default&lt;/strong&gt; since v0.9.0 — sites depending on it must re-enable. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/releases&#34;&gt;v0.9.0 notes&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;0.x breaking changes are routine&lt;/strong&gt; — pin the version (&lt;code&gt;eget&lt;/code&gt;/mise pin, or &lt;code&gt;go install …@vX.Y.Z&lt;/code&gt;), smoke-test templates on upgrade. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go&#34;&gt;README&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Encryption pitfalls were real (plaintext leaks, missing decryption assets on feed pages) — fixed in v0.8.0; keep the version ≥0.8 and read &lt;code&gt;docs/guides/encryption.md&lt;/code&gt; before relying on it. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/releases/tag/v0.8.0&#34;&gt;v0.8.0&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Optional theme assets (lite-yt CSS/JS, GLightbox, mermaid, webmentions, encryption) loaded site-wide rather than per-need — cosmetic/perf, open issue &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/issues/980&#34;&gt;#980&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;pongo2 ≠ Jinja2: &lt;code&gt;migrate templates&lt;/code&gt; is a checker, not a rewriter — expect manual edits to custom templates.&lt;/li&gt;&#xA;&lt;li&gt;Case sensitivity in templates (&lt;code&gt;post.Title&lt;/code&gt; vs &lt;code&gt;post.title&lt;/code&gt;) has churned — check the agent-skill &lt;code&gt;template-context&lt;/code&gt; reference and test.&lt;/li&gt;&#xA;&lt;li&gt;Private posts stay out of &lt;code&gt;auto_feeds&lt;/code&gt; public tag feeds — intended behavior, don&amp;rsquo;t be surprised if private-tagged posts are missing from tag pages. &lt;a href=&#34;https://github.com/WaylonWalker/markata-go/pull/979&#34;&gt;PR #979&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Env var for encryption keys is &lt;code&gt;MARKATA_GO_ENCRYPTION_KEY_DEFAULT&lt;/code&gt; (not &lt;code&gt;_DEFAULT_KEY&lt;/code&gt; as the spec table says) — verified by build error message.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;migration-risk-summary-for-pype-dev&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;MIGRATION RISK SUMMARY (for pype.dev)&lt;/span&gt; &lt;a href=&#34;#migration-risk-summary-for-pype-dev&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ports cleanly (verified in local markout-go build):&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;All feed &lt;code&gt;filter&lt;/code&gt; strings — same Python-like expression language; all 17 feeds generated (192 output dirs incl. archive/variants).&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;published&lt;/code&gt;/&lt;code&gt;draft&lt;/code&gt; frontmatter semantics, &lt;code&gt;tags&lt;/code&gt;, &lt;code&gt;templateKey&lt;/code&gt; filtering, &lt;code&gt;YYYY-MM-DD HH:MM:SS&lt;/code&gt; dates.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;!!!&lt;/code&gt;/&lt;code&gt;???&lt;/code&gt;/&lt;code&gt;???+&lt;/code&gt; admonitions for whitelisted types, &lt;code&gt;[[slug]]&lt;/code&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;code&gt;[[ slug ]]&lt;/code&gt; spaced wikilinks (resolve + hover previews), GFM tables, typographer, heading anchors, syntax highlighting.&lt;/li&gt;&#xA;&lt;li&gt;Nav, RSS/Atom/JSON per feed, sitemap, 404, prevnext, OG/structured data, pagefind search, tailwind automation.&lt;/li&gt;&#xA;&lt;li&gt;Encryption: &lt;code&gt;templateKey: protected-post&lt;/code&gt; posts encrypted via &lt;code&gt;private_tags&lt;/code&gt; map + &lt;code&gt;MARKATA_GO_ENCRYPTION_KEY_DEFAULT&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Needs custom work:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Custom admonition types&lt;/strong&gt; (&lt;code&gt;scripture&lt;/code&gt; ×70, &lt;code&gt;background-thought&lt;/code&gt; ×14, &lt;code&gt;source&lt;/code&gt; ×2) — hardcoded whitelist, no PRs accepted → file upstream issue and/or codemod to a supported type (e.g. &lt;code&gt;quote&lt;/code&gt;) with matching title.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;code&gt;plugins/build_thoughts.py&lt;/code&gt;&lt;/strong&gt; — pre-build script writing &lt;code&gt;pages/thoughts/*.md&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;30 Jinja templates&lt;/strong&gt; — every &lt;code&gt;markata.config.*&lt;/code&gt;/&lt;code&gt;post.*&lt;/code&gt; var reference needs rewriting to the go context; the &lt;code&gt;head.html&lt;/code&gt; include alone poisons the chain. Recommendation: adopt the default theme + palette/aesthetic CSS instead of porting.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Admonition typos in content&lt;/strong&gt;: &lt;code&gt;waring&lt;/code&gt;, &lt;code&gt;Scripture&lt;/code&gt;, &lt;code&gt;Exodusds&lt;/code&gt; (were silently unstyled under Python markata too).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;No equivalent (probably):&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Custom Python plugins generally — no Python plugin runtime.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;service_worker&lt;/code&gt; plugin; per-post &lt;code&gt;publish_source&lt;/code&gt; (feed-level markdown/text exists); PWA manifest writer unconfirmed.&lt;/li&gt;&#xA;&lt;li&gt;Python-specific filter helpers (&lt;code&gt;timedelta&lt;/code&gt;, &lt;code&gt;parse&lt;/code&gt;) — verify in &lt;code&gt;migrate filter&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Neovim Markdown Journaling Research</title>
    <id>https://pype.dev/neovim-markdown-journaling-research/</id>
    <updated>2026-10-04T06:00:00Z</updated>
    <published>2026-10-04T06:00:00Z</published>
    <link href="https://pype.dev/neovim-markdown-journaling-research/" rel="alternate" type="text/html"></link>
    <summary type="text">Research on the current Neovim plugin landscape for writing/journaling in Markdown, oriented around this site&#39;s workflow: a markata blog with YAML...</summary>
    <content type="html">&lt;p&gt;Research on the current Neovim plugin landscape for writing/journaling in&#xA;Markdown, oriented around this site&amp;rsquo;s workflow: a markata blog with YAML&#xA;frontmatter, mkdocs-material-style &lt;code&gt;!!! scripture&lt;/code&gt; / &lt;code&gt;??? scripture&lt;/code&gt;&#xA;admonitions, &lt;code&gt;[[ slug ]]&lt;/code&gt; wikilinks, and a custom &lt;code&gt;pypeaday.daily&lt;/code&gt; module&#xA;(copier templates + telescope/fzf pickers + live_grep backlinks).&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-lazyvim-lang-markdown-extra-what-it-actually-does&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;1. LazyVim &lt;/span&gt;&lt;code&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;lang.markdown&lt;/span&gt;&lt;/code&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt; extra — what it actually does&lt;/span&gt; &lt;a href=&#34;#1-lazyvim-lang-markdown-extra-what-it-actually-does&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Source of truth (current &lt;code&gt;main&lt;/code&gt;):&#xA;&lt;a href=&#34;https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/plugins/extras/lang/markdown.lua&#34;&gt;https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/plugins/extras/lang/markdown.lua&lt;/a&gt;&#xA;Docs: &lt;a href=&#34;https://github.com/LazyVim/lazyvim.github.io/blob/main/docs/extras/lang/markdown.md&#34;&gt;https://github.com/LazyVim/lazyvim.github.io/blob/main/docs/extras/lang/markdown.md&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;As of 2026, the extra installs/configures:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;marksman&lt;/strong&gt; via nvim-lspconfig (&lt;code&gt;servers = { marksman = {} }&lt;/code&gt;) — markdown&#xA;LSP with &lt;code&gt;[[wikilink]]&lt;/code&gt; completion, go-to-definition, references&#xA;(backlinks), and dead-link diagnostics. Big deal: most of what&#xA;&lt;code&gt;pypeaday.daily.find_backlinks()&lt;/code&gt; does via telescope live_grep, marksman&#xA;gives via &lt;code&gt;grr&lt;/code&gt;/&lt;code&gt;vim.lsp.buf.references&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;markdownlint-cli2&lt;/strong&gt; via nvim-lint (and none-ls if installed), plus&#xA;conform.nvim formatters &lt;code&gt;prettier&lt;/code&gt;, &lt;code&gt;markdownlint-cli2&lt;/code&gt;, and &lt;code&gt;markdown-toc&lt;/code&gt;&#xA;(the last only runs when the buffer contains &lt;code&gt;&amp;lt;!-- toc --&amp;gt;&lt;/code&gt;). Mason&#xA;auto-installs &lt;code&gt;markdownlint-cli2&lt;/code&gt; + &lt;code&gt;markdown-toc&lt;/code&gt;. LazyVim switched from&#xA;markdownlint-cli to cli2 in 2024:&#xA;&lt;a href=&#34;https://github.com/LazyVim/LazyVim/pull/3843&#34;&gt;https://github.com/LazyVim/LazyVim/pull/3843&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;markdown-preview.nvim&lt;/strong&gt; (&lt;code&gt;iamcco/markdown-preview.nvim&lt;/code&gt;) — browser&#xA;preview on &lt;code&gt;&amp;lt;leader&amp;gt;cp&lt;/code&gt; (markdown buffers only).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;render-markdown.nvim&lt;/strong&gt; (&lt;code&gt;MeanderingProgrammer/render-markdown.nvim&lt;/code&gt;) —&#xA;in-buffer rendering. LazyVim replaced &lt;code&gt;headlines.nvim&lt;/code&gt; with this plugin&#xA;back in 2024:&#xA;&lt;a href=&#34;https://github.com/LazyVim/LazyVim/pull/4139&#34;&gt;https://github.com/LazyVim/LazyVim/pull/4139&lt;/a&gt;. LazyVim&amp;rsquo;s config disables&#xA;heading icons and checkbox rendering, and maps a&#xA;&lt;code&gt;&amp;lt;leader&amp;gt;um&lt;/code&gt; toggle via &lt;code&gt;Snacks.toggle&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;There is &lt;strong&gt;no prose/spell/grammar extra&lt;/strong&gt; in LazyVim — the full extras list&#xA;contains nothing like a &lt;code&gt;lang.text&lt;/code&gt; or &lt;code&gt;extras.spelling&lt;/code&gt;. Prose tooling has&#xA;to be added by hand.&lt;/p&gt;&#xA;&lt;p&gt;The import already exists in &lt;code&gt;~/.config/nvim/lua/config/lazy.lua&lt;/code&gt; (line 53)&#xA;alongside ~15 other extras — verified 2026-10-04. If plugins look missing,&#xA;&lt;code&gt;:Lazy sync&lt;/code&gt; will reconcile; &lt;code&gt;:LazyExtras&lt;/code&gt; shows what&amp;rsquo;s active.&lt;/p&gt;&#xA;&lt;p&gt;Built-in LazyVim defaults that matter for prose (no plugin needed):&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;FileType autocmd already sets &lt;code&gt;wrap&lt;/code&gt; and &lt;code&gt;spell&lt;/code&gt; for markdown:&#xA;&lt;code&gt;lazyvim/config/autocmds.lua&lt;/code&gt; (&lt;code&gt;wrap_spell&lt;/code&gt; augroup, patterns include&#xA;&lt;code&gt;markdown&lt;/code&gt;). So spell+wrap are already on.&lt;/li&gt;&#xA;&lt;li&gt;Toggles already mapped: &lt;code&gt;&amp;lt;leader&amp;gt;us&lt;/code&gt; spell, &lt;code&gt;&amp;lt;leader&amp;gt;uw&lt;/code&gt; wrap,&#xA;&lt;code&gt;&amp;lt;leader&amp;gt;um&lt;/code&gt; render-markdown (with the extra), &lt;code&gt;&amp;lt;leader&amp;gt;uz&lt;/code&gt; Snacks zen&#xA;mode, &lt;code&gt;&amp;lt;leader&amp;gt;uD&lt;/code&gt; Snacks dim — see &lt;code&gt;lazyvim/config/keymaps.lua&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;2-render-markdown-nvim-capabilities-and-the-admonition-gap&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;2. render-markdown.nvim — capabilities and the admonition gap&lt;/span&gt; &lt;a href=&#34;#2-render-markdown-nvim-capabilities-and-the-admonition-gap&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Repo: &lt;a href=&#34;https://github.com/MeanderingProgrammer/render-markdown.nvim&#34;&gt;https://github.com/MeanderingProgrammer/render-markdown.nvim&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Renders headings, code blocks, inline code, horizontal rules, list&#xA;bullets, &lt;strong&gt;checkboxes (with user-defined states)&lt;/strong&gt;, block quotes,&#xA;&lt;strong&gt;callouts&lt;/strong&gt;, tables, links, LaTeX, per the README feature list.&lt;/li&gt;&#xA;&lt;li&gt;Callouts: supports GitHub (&lt;code&gt;[!NOTE]&lt;/code&gt;, &lt;code&gt;[!TIP]&lt;/code&gt;, &lt;code&gt;[!IMPORTANT]&lt;/code&gt;,&#xA;&lt;code&gt;[!WARNING]&lt;/code&gt;, &lt;code&gt;[!CAUTION]&lt;/code&gt;) and the full Obsidian set (&lt;code&gt;[!QUOTE]&lt;/code&gt;,&#xA;&lt;code&gt;[!TODO]&lt;/code&gt;, etc.). Custom callouts are fully supported — each entry is&#xA;&lt;code&gt;name = { raw = &#39;[!SCRIPTURE]&#39;, rendered = &#39; Scripture&#39;, highlight = &#39;...&#39; }&lt;/code&gt;.&#xA;Wiki reference:&#xA;&lt;a href=&#34;https://github.com/MeanderingProgrammer/render-markdown.nvim/wiki/Callouts&#34;&gt;https://github.com/MeanderingProgrammer/render-markdown.nvim/wiki/Callouts&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Custom callout titles (&lt;code&gt;&amp;gt; [!quote] Psalm 119&lt;/code&gt;) are supported:&#xA;&lt;a href=&#34;https://github.com/MeanderingProgrammer/render-markdown.nvim/issues/109&#34;&gt;https://github.com/MeanderingProgrammer/render-markdown.nvim/issues/109&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Checkboxes: &lt;code&gt;- [ ]&lt;/code&gt; / &lt;code&gt;- [x]&lt;/code&gt; render as icons, and arbitrary custom states&#xA;(&lt;code&gt;- [/]&lt;/code&gt;, &lt;code&gt;- [&amp;gt;]&lt;/code&gt;, etc.) are configurable (&lt;code&gt;checkbox.custom&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;mkdocs &lt;code&gt;!!!&lt;/code&gt;/&lt;code&gt;???&lt;/code&gt; admonitions are NOT supported.&lt;/strong&gt; The plugin is&#xA;treesitter-driven over the standard markdown parser; admonition blocks&#xA;are just indented text to it. Callout support was added for the&#xA;&lt;code&gt;&amp;gt; [!x]&lt;/code&gt; blockquote syntax only&#xA;(&lt;a href=&#34;https://github.com/MeanderingProgrammer/render-markdown.nvim/issues/20&#34;&gt;https://github.com/MeanderingProgrammer/render-markdown.nvim/issues/20&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;The main alternative, &lt;code&gt;OXY2DEV/markview.nvim&lt;/code&gt;, also only renders&#xA;&lt;code&gt;&amp;gt; [!x]&lt;/code&gt; callouts for markdown — its &amp;ldquo;admonitions&amp;rdquo; support is for&#xA;&lt;strong&gt;Asciidoc&lt;/strong&gt;, not mkdocs:&#xA;&lt;a href=&#34;https://github.com/OXY2DEV/markview.nvim/wiki/Markdown&#34;&gt;https://github.com/OXY2DEV/markview.nvim/wiki/Markdown&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Even &lt;code&gt;markdown-preview.nvim&lt;/code&gt; can&amp;rsquo;t preview mkdocs admonitions — open&#xA;feature request: &lt;a href=&#34;https://github.com/iamcco/markdown-preview.nvim/issues/618&#34;&gt;https://github.com/iamcco/markdown-preview.nvim/issues/618&lt;/a&gt;.&#xA;The faithful preview for &lt;code&gt;!!! scripture&lt;/code&gt; is the markata/mkdocs build&#xA;itself, not an editor plugin.&lt;/li&gt;&#xA;&lt;li&gt;Conceal/anti-conceal: &lt;code&gt;anti_conceal&lt;/code&gt; hides the plugin&amp;rsquo;s virtual text on&#xA;the cursor line so you can edit raw source; &lt;code&gt;win_options.conceallevel&lt;/code&gt;&#xA;is managed per rendered/raw view. Known upstream limitation: concealed&#xA;text + &lt;code&gt;wrap&lt;/code&gt; keeps stale line breaks (neovim issue #14409), documented&#xA;in &lt;a href=&#34;https://github.com/MeanderingProgrammer/render-markdown.nvim/blob/HEAD/doc/limitations.md&#34;&gt;https://github.com/MeanderingProgrammer/render-markdown.nvim/blob/HEAD/doc/limitations.md&lt;/a&gt;.&#xA;Practical tradeoff: rendered mode is great for reading/journaling review;&#xA;expect to live with &lt;code&gt;&amp;lt;leader&amp;gt;um&lt;/code&gt; toggling or anti-conceal while editing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;3-obsidian-nvim-fit-for-a-non-obsidian-vault&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;3. obsidian.nvim — fit for a non-Obsidian vault&lt;/span&gt; &lt;a href=&#34;#3-obsidian-nvim-fit-for-a-non-obsidian-vault&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Repo (community fork, actively maintained; &lt;code&gt;epwalsh/obsidian.nvim&lt;/code&gt; is the&#xA;legacy upstream): &lt;a href=&#34;https://github.com/obsidian-nvim/obsidian.nvim&#34;&gt;https://github.com/obsidian-nvim/obsidian.nvim&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A &amp;ldquo;workspace&amp;rdquo; is just a directory of markdown — no &lt;code&gt;.obsidian/&lt;/code&gt; config&#xA;required. &lt;code&gt;workspaces = { { name = &amp;quot;pype.dev&amp;quot;, path = &amp;quot;~/projects/personal/pype.dev&amp;quot; } }&lt;/code&gt;&#xA;is a valid setup.&lt;/li&gt;&#xA;&lt;li&gt;Provides &lt;code&gt;:Obsidian today [OFFSET]&lt;/code&gt; / &lt;code&gt;dailies&lt;/code&gt;, &lt;code&gt;new_from_template&lt;/code&gt;,&#xA;&lt;code&gt;template&lt;/code&gt; (substitutions, date/time formats), &lt;code&gt;backlinks&lt;/code&gt;,&#xA;&lt;code&gt;follow_link&lt;/code&gt;, &lt;code&gt;search&lt;/code&gt;, &lt;code&gt;link&lt;/code&gt;, &lt;code&gt;links&lt;/code&gt;. See command list in README.&lt;/li&gt;&#xA;&lt;li&gt;Completion of &lt;code&gt;[[&lt;/code&gt; wiki links and &lt;code&gt;#&lt;/code&gt; tags via blink.cmp or nvim-cmp;&#xA;newer versions do this through an in-process LSP so it works with any&#xA;completion engine.&lt;/li&gt;&#xA;&lt;li&gt;Caveats:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Search/backlinks require &lt;code&gt;ripgrep&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Only activates inside workspace paths; the whole pype.dev repo would be&#xA;one workspace, so &lt;code&gt;:Obsidian search&lt;/code&gt; scans posts+pages together&#xA;(probably fine).&lt;/li&gt;&#xA;&lt;li&gt;Default wikilink style is &lt;code&gt;[[id|alias]]&lt;/code&gt;-ish (&lt;code&gt;wiki_link_id_prefix&lt;/code&gt;);&#xA;the &lt;code&gt;[[ slug ]]&lt;/code&gt;-with-spaces convention used by markata is configured&#xA;via &lt;code&gt;wiki_link_func&lt;/code&gt;. Also &lt;code&gt;disable_frontmatter&lt;/code&gt;/custom&#xA;&lt;code&gt;note_frontmatter_func&lt;/code&gt; matters since it would otherwise write&#xA;Obsidian-style frontmatter (&lt;code&gt;id&lt;/code&gt;, &lt;code&gt;aliases&lt;/code&gt;, &lt;code&gt;tags&lt;/code&gt;) that markata&#xA;doesn&amp;rsquo;t want.&lt;/li&gt;&#xA;&lt;li&gt;Its built-in checkbox/conceal UI is deprecated in favor of&#xA;render-markdown.nvim — set &lt;code&gt;ui.enable = false&lt;/code&gt; and let&#xA;render-markdown handle visuals.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Verdict: overlaps ~80% with the existing &lt;code&gt;pypeaday.daily&lt;/code&gt; module (daily&#xA;notes, templates, backlinks). The genuinely new capability is &lt;code&gt;[[&lt;/code&gt;&#xA;completion and structured wikilink following — but &lt;strong&gt;marksman (already&#xA;in lang.markdown) gives wikilink completion, &lt;code&gt;gd&lt;/code&gt; link following, and&#xA;&lt;code&gt;grr&lt;/code&gt; backlinks for free&lt;/strong&gt;, so obsidian.nvim is optional rather than&#xA;foundational. If adopted, keep &lt;code&gt;pypeaday.daily&lt;/code&gt; for copier template&#xA;creation and use obsidian.nvim only for links/completion.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;4-alternatives-brief-survey&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;4. Alternatives — brief survey&lt;/span&gt; &lt;a href=&#34;#4-alternatives-brief-survey&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;telekasten.nvim&lt;/strong&gt; (&lt;a href=&#34;https://github.com/nvim-telekasten/telekasten.nvim&#34;&gt;https://github.com/nvim-telekasten/telekasten.nvim&lt;/a&gt;):&#xA;telescope-based zettelkasten + journal; daily/weekly notes, templates,&#xA;backlinks, calendar. Works, but low recent activity and it duplicates&#xA;the existing copier+telescope workflow. Not recommended here.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;zk-nvim&lt;/strong&gt; (&lt;a href=&#34;https://github.com/zk-org/zk-nvim&#34;&gt;https://github.com/zk-org/zk-nvim&lt;/a&gt;): Neovim frontend for&#xA;the &lt;code&gt;zk&lt;/code&gt; CLI (a real LSP + note DB). Solid and maintained, but it wants&#xA;the &lt;code&gt;zk&lt;/code&gt; binary and a &lt;code&gt;zk&lt;/code&gt;-style notebook — another parallel system, not&#xA;a fit for markata frontmatter/slugs.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;neorg&lt;/strong&gt; (&lt;a href=&#34;https://github.com/nvim-neorg/neorg&#34;&gt;https://github.com/nvim-neorg/neorg&lt;/a&gt;): still releasing (9.x),&#xA;but it&amp;rsquo;s its own &lt;code&gt;.norg&lt;/code&gt; file format — incompatible with a markdown&#xA;blog. Maintainer activity is low (focus shifted to the &lt;code&gt;lux&lt;/code&gt; Lua package&#xA;manager): &lt;a href=&#34;https://github.com/nvim-neorg/neorg/discussions/1673&#34;&gt;https://github.com/nvim-neorg/neorg/discussions/1673&lt;/a&gt;. Skip.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Preview&lt;/strong&gt;: &lt;code&gt;markdown-preview.nvim&lt;/code&gt; (browser, in the extra, &lt;code&gt;&amp;lt;leader&amp;gt;cp&lt;/code&gt;)&#xA;is the maintained option. &lt;code&gt;glow.nvim&lt;/code&gt; is abandoned — its own README&#xA;points at render-markdown.nvim:&#xA;&lt;a href=&#34;https://github.com/ellisonleao/glow.nvim/&#34;&gt;https://github.com/ellisonleao/glow.nvim/&lt;/a&gt; (fork &lt;code&gt;shcode/nvim-glow&lt;/code&gt;&#xA;exists but is a terminal renderer, no help for admonitions). For this&#xA;site, &lt;code&gt;markata&lt;/code&gt;&amp;rsquo;s own build/serve is the only faithful preview.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Focus&lt;/strong&gt;: don&amp;rsquo;t install zen-mode/twilight. LazyVim already maps&#xA;&lt;code&gt;Snacks.zen()&lt;/code&gt; to &lt;code&gt;&amp;lt;leader&amp;gt;uz&lt;/code&gt; and &lt;code&gt;Snacks.toggle.dim()&lt;/code&gt; to &lt;code&gt;&amp;lt;leader&amp;gt;uD&lt;/code&gt;&#xA;(folke&amp;rsquo;s snacks.nvim replaced his standalone plugins:&#xA;&lt;a href=&#34;https://github.com/folke/snacks.nvim/blob/main/docs/zen.md&#34;&gt;https://github.com/folke/snacks.nvim/blob/main/docs/zen.md&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tables&lt;/strong&gt;: &lt;code&gt;tabular&lt;/code&gt; is already installed (&lt;code&gt;:Tabularize /|&lt;/code&gt;), and&#xA;prettier (via conform &lt;code&gt;&amp;lt;leader&amp;gt;cf&lt;/code&gt;) aligns markdown tables automatically.&#xA;If auto-growing tables are wanted, &lt;code&gt;Kicamon/markdown-table-mode.nvim&lt;/code&gt; or&#xA;&lt;code&gt;dhruvasagar/vim-table-mode&lt;/code&gt; are the options — probably unnecessary.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;List/checkbox ergonomics&lt;/strong&gt;: &lt;code&gt;bullets.vim&lt;/code&gt;&#xA;(&lt;a href=&#34;https://github.com/bullets-vim/bullets.vim&#34;&gt;https://github.com/bullets-vim/bullets.vim&lt;/a&gt;) auto-continues lists on&#xA;&lt;code&gt;&amp;lt;CR&amp;gt;&lt;/code&gt;/&lt;code&gt;o&lt;/code&gt;, renumbers with &lt;code&gt;gN&lt;/code&gt;, indents with &lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt;/&lt;code&gt;&amp;lt;&amp;lt;&lt;/code&gt;, and toggles&#xA;checkboxes with &lt;code&gt;&amp;lt;leader&amp;gt;x&lt;/code&gt; — including partial-completion parent&#xA;checkboxes. Perfect fit for prayer-request checklists.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Link editing nicety&lt;/strong&gt;: &lt;code&gt;antonk52/markdowny.nvim&lt;/code&gt; adds vim-style&#xA;surround ops for &lt;code&gt;[text](url)&lt;/code&gt; links. Optional quality-of-life.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;5-spell-wrap-prose-ergonomics&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;5. Spell / wrap / prose ergonomics&lt;/span&gt; &lt;a href=&#34;#5-spell-wrap-prose-ergonomics&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Already handled by LazyVim core: &lt;code&gt;spell&lt;/code&gt; + &lt;code&gt;wrap&lt;/code&gt; FileType autocmd for&#xA;markdown; &lt;code&gt;&amp;lt;leader&amp;gt;us&lt;/code&gt; / &lt;code&gt;&amp;lt;leader&amp;gt;uw&lt;/code&gt; toggles; &lt;code&gt;spelllang = &amp;quot;en&amp;quot;&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Worth adding in an ftplugin/autocmd: &lt;code&gt;linebreak&lt;/code&gt; (wrap at words, not&#xA;mid-word), &lt;code&gt;breakindent&lt;/code&gt; (wrapped lines keep list indent), &lt;code&gt;wrapmargin&lt;/code&gt;/&#xA;&lt;code&gt;colorcolumn&lt;/code&gt; hygiene, and &lt;code&gt;conceallevel=2&lt;/code&gt; + &lt;code&gt;concealcursor=nc&lt;/code&gt; if you&#xA;want rendered-markdown to look clean while keeping cursor-line raw.&#xA;Note &lt;code&gt;smoothscroll&lt;/code&gt; is globally disabled in this config&#xA;(&lt;code&gt;vim.opt.smoothscroll = false&lt;/code&gt;) — re-enable it locally for markdown if&#xA;long wrapped paragraphs feel jumpy.&lt;/li&gt;&#xA;&lt;li&gt;Prose LSPs:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;harper-ls&lt;/strong&gt; (&lt;a href=&#34;https://github.com/Automattic/harper&#34;&gt;https://github.com/Automattic/harper&lt;/a&gt;,&#xA;&lt;a href=&#34;https://writewithharper.com&#34;&gt;https://writewithharper.com&lt;/a&gt;): Rust grammar/spelling LSP aimed at&#xA;developers; markdown-aware, fast, no Java. Installable via mason&#xA;(&lt;code&gt;harper_ls&lt;/code&gt; in lspconfig), every linter toggleable&#xA;(&lt;code&gt;linters.sentence_capitalization&lt;/code&gt;, &lt;code&gt;long_sentences&lt;/code&gt;, etc.). Best&#xA;current default for prose grammar. Caution: it flags in every buffer&#xA;it attaches to — scope it to &lt;code&gt;markdown&lt;/code&gt; filetype only.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;ltex-ls is dead&lt;/strong&gt; — &lt;code&gt;valentjn/ltex-ls&lt;/code&gt; is archived&#xA;(&lt;a href=&#34;https://github.com/valentjn/ltex-ls&#34;&gt;https://github.com/valentjn/ltex-ls&lt;/a&gt;). Maintained fork:&#xA;&lt;strong&gt;ltex-plus/ltex-ls-plus&lt;/strong&gt; (&lt;a href=&#34;https://github.com/ltex-plus/ltex-ls-plus&#34;&gt;https://github.com/ltex-plus/ltex-ls-plus&lt;/a&gt;),&#xA;still LanguageTool-based (heavy JVM, but deeper grammar rules).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;vale&lt;/strong&gt; (&lt;a href=&#34;https://vale.sh&#34;&gt;https://vale.sh&lt;/a&gt;): CLI style-guide linter; usable through&#xA;nvim-lint&amp;rsquo;s &lt;code&gt;vale&lt;/code&gt; linter. Best if you want house-style rules&#xA;(write-good/proselint packs), more setup than value for journaling.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Soft punctuation niceties: &lt;code&gt;pensieve&lt;/code&gt;/&lt;code&gt;cmp-dictionary&lt;/code&gt; are mostly dead&#xA;ends; the spell dictionary via &lt;code&gt;zg&lt;/code&gt; + blink &lt;code&gt;buffer&lt;/code&gt;/&lt;code&gt;spell&lt;/code&gt; source&#xA;covers the practical case.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;recommended-additions-for-this-setup&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Recommended additions for this setup&lt;/span&gt; &lt;a href=&#34;#recommended-additions-for-this-setup&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Ordered by value ÷ effort.&lt;/p&gt;&#xA;&lt;h3 id=&#34;1-lang-markdown-extra-is-already-enabled-zero-new-code&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;1. lang.markdown extra is already enabled (zero new code)&lt;/span&gt; &lt;a href=&#34;#1-lang-markdown-extra-is-already-enabled-zero-new-code&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;~/.config/nvim/lua/config/lazy.lua&lt;/code&gt; line 53 already imports it. Verify&#xA;marksman attaches with &lt;code&gt;:LspInfo&lt;/code&gt; in a note buffer. Then:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;gd&lt;/code&gt; on &lt;code&gt;&amp;lt;a href=&amp;quot;/2025-09-13-notes/&amp;quot; class=&amp;quot;wikilink&amp;quot; data-title=&amp;quot;2025-09-13 Notes&amp;quot; data-description=&amp;quot;yesterday: 2025-09-11-notes&amp;quot; data-date=&amp;quot;2025-09-13&amp;quot;&amp;gt;2025-09-13 Notes&amp;lt;/a&amp;gt;&lt;/code&gt; jumps to the note&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;grr&lt;/code&gt; (LSP references) is a richer backlinks view than the live_grep&#xA;pattern in &lt;code&gt;find_daily_files&lt;/code&gt;/&lt;code&gt;find_backlinks&lt;/code&gt; — keep the telescope one,&#xA;it searches the spaced &lt;code&gt;[[ slug ]]&lt;/code&gt; convention regardless of whether&#xA;marksman resolves it.&lt;/li&gt;&#xA;&lt;li&gt;Caveat: marksman treats the git root (&lt;code&gt;pype.dev&lt;/code&gt;) as the workspace, which&#xA;is what we want. Verify it resolves the spaced &lt;code&gt;[[ slug ]]&lt;/code&gt; form; if not,&#xA;completion still works for &lt;code&gt;[[slug]]&lt;/code&gt; and markata tolerates both.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;2-markdown-writing-mode-ftplugin-tiny-high-value&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;2. Markdown writing-mode ftplugin (tiny, high value)&lt;/span&gt; &lt;a href=&#34;#2-markdown-writing-mode-ftplugin-tiny-high-value&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;~/.config/nvim/after/ftplugin/markdown.lua&lt;/code&gt; (LazyVim loads &lt;code&gt;after/ftplugin&lt;/code&gt;&#xA;automatically — no spec needed):&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;vim.opt_local&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linebreak&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;      &lt;span class=&#34;c1&#34;&gt;-- wrap at word boundaries&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;vim.opt_local&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;breakindent&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;-- keep list indentation on wrapped lines&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;vim.opt_local&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;smoothscroll&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;   &lt;span class=&#34;c1&#34;&gt;-- undo the global `false` for prose&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;vim.opt_local&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;conceallevel&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;      &lt;span class=&#34;c1&#34;&gt;-- conceal markup for rendered view&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;vim.opt_local&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;concealcursor&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;nc&amp;#34;&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;-- show raw text on the cursor line in insert&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;vim.opt_local&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;spell&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;          &lt;span class=&#34;c1&#34;&gt;-- redundant w/ LazyVim autocmd, explicit is fine&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- map j/k to gj/gk for wrapped-line navigation (markdown buffers only)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;vim.keymap&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;n&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;j&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;gj&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;buffer&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;remap&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;vim.keymap&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;n&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;k&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;gk&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;buffer&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;remap&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;3-render-markdown-tweaks-a-scripture-callout-checkbox-states&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;3. render-markdown tweaks + a &lt;/span&gt;&lt;code&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;scripture&lt;/span&gt;&lt;/code&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt; callout + checkbox states&lt;/span&gt; &lt;a href=&#34;#3-render-markdown-tweaks-a-scripture-callout-checkbox-states&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- lua/plugins/markdown.lua&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;MeanderingProgrammer/render-markdown.nvim&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;opts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;c1&#34;&gt;-- re-enable what LazyVim&amp;#39;s extra disables&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;checkbox&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;enabled&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;unchecked&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;icon&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;󰄱 &amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;checked&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;icon&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;󰱒 &amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;custom&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;n&#34;&gt;praying&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;[/]&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rendered&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;󱑂 &amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;highlight&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;RenderMarkdownWarn&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;callout&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;c1&#34;&gt;-- !!! scripture has no renderer; if you ever write&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;c1&#34;&gt;-- &amp;gt; [!scripture] in blog posts this makes it pretty.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;scripture&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;[!SCRIPTURE]&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;n&#34;&gt;rendered&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;󰗶 Scripture&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;n&#34;&gt;highlight&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;RenderMarkdownHint&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;anti_conceal&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;enabled&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;-- cursor line shows raw markdown&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Reality check: &lt;strong&gt;nothing renders &lt;code&gt;!!! scripture&lt;/code&gt; blocks in the editor&lt;/strong&gt; —&#xA;they&amp;rsquo;ll show as plain indented text (which is honest: markata is the only&#xA;real renderer). If visual distinction matters, &lt;code&gt;util.mini-hipatterns&lt;/code&gt; is&#xA;already enabled — add a pattern:&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;-- inside the existing mini.hipatterns spec&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;local&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;hipatterns&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;require&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;mini.hipatterns&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;opts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;highlighters&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;admonition&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pattern&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;^!?%?+ +%w+.*&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;group&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Special&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;4-bullets-vim-for-prayer-request-checklists-one-line-high-value&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;4. bullets.vim for prayer-request checklists (one line, high value)&lt;/span&gt; &lt;a href=&#34;#4-bullets-vim-for-prayer-request-checklists-one-line-high-value&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;bullets-vim/bullets.vim&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ft&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;markdown&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;&amp;lt;leader&amp;gt;x&lt;/code&gt; toggles &lt;code&gt;- [ ]&lt;/code&gt;/&lt;code&gt;- [x]&lt;/code&gt;, &lt;code&gt;&amp;lt;CR&amp;gt;&lt;/code&gt;/&lt;code&gt;o&lt;/code&gt; continue list items,&#xA;&lt;code&gt;&amp;gt;&amp;gt;&lt;/code&gt;/&lt;code&gt;&amp;lt;&amp;lt;&lt;/code&gt; adjust nesting. Docs:&#xA;&lt;a href=&#34;https://github.com/bullets-vim/bullets.vim&#34;&gt;https://github.com/bullets-vim/bullets.vim&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;5-optional-heavier-lifts-only-if-felt-needed&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;5. Optional, heavier lifts (only if felt needed)&lt;/span&gt; &lt;a href=&#34;#5-optional-heavier-lifts-only-if-felt-needed&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;harper-ls&lt;/strong&gt; grammar checking, scoped to markdown:&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;s2&#34;&gt;&amp;#34;neovim/nvim-lspconfig&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;opts&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;servers&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;harper_ls&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;filetypes&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;markdown&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;settings&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;harper-ls&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;linters&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sentence_capitalization&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;long_sentences&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;obsidian.nvim&lt;/strong&gt; for &lt;code&gt;[[&lt;/code&gt; completion + &lt;code&gt;:Obsidian backlinks&lt;/code&gt; — only if&#xA;marksman&amp;rsquo;s LSP completion of wikilinks proves insufficient. Keep&#xA;&lt;code&gt;ui.enable = false&lt;/code&gt; and continue using &lt;code&gt;pypeaday.daily&lt;/code&gt; + copier for note&#xA;creation. Expect to write a &lt;code&gt;wiki_link_func&lt;/code&gt; to emit &lt;code&gt;[[ slug ]]&lt;/code&gt; and a&#xA;&lt;code&gt;note_frontmatter_func&lt;/code&gt; matching markata&amp;rsquo;s frontmatter.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bottom-line&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Bottom line&lt;/span&gt; &lt;a href=&#34;#bottom-line&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The copier+telescope daily-notes system is already doing the job of an&#xA;entire plugin category (telekasten/zk/obsidian daily notes). The real gaps&#xA;are: marksman wikilink navigation (free, already enabled via lang.markdown),&#xA;rendered checkboxes/callouts (render-markdown, in the extra), checkbox&#xA;toggling (bullets.vim), wrapped-line ergonomics (a 6-line ftplugin), and&#xA;optional grammar checking (harper-ls). &lt;code&gt;!!!&lt;/code&gt; admonitions are a markata-side&#xA;concern — no editor plugin renders them; at most, highlight the marker line.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>OBC Networking</title>
    <id>https://pype.dev/obc-networking/</id>
    <updated>2026-05-16T12:26:46Z</updated>
    <published>2026-05-16T12:26:46Z</published>
    <link href="https://pype.dev/obc-networking/" rel="alternate" type="text/html"></link>
    <summary type="text">Spectrum brings internet in via coax to their modem. The modem feeds the Eero (acting as gateway, handing out 192.168.4.0/24). Downstream of the Eero is the...</summary>
    <content type="html">&lt;h2 id=&#34;network&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;network&lt;/span&gt; &lt;a href=&#34;#network&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Spectrum brings internet in via coax to their modem. The modem feeds the Eero&#xA;(acting as gateway, handing out 192.168.4.0/24). Downstream of the Eero is the&#xA;old Spectrum router still emitting an SSID on 192.168.1.0/24 — needs turning&#xA;off (requires Spectrum admin access).&lt;/p&gt;&#xA;&lt;h2 id=&#34;printer&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;printer&lt;/span&gt; &lt;a href=&#34;#printer&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The printer was originally self-assigned static IP 192.168.1.165. After&#xA;switching to Eero DHCP (192.168.4.0/24), it now gets 192.168.4.25. The admin&#xA;desktop has a static rule configured for it, but the port config on the desktop&#xA;still had the old 192.168.1.165 address — had to update it to point to&#xA;192.168.4.25. The port name is stuck as IP_192.168.1.165 (couldn&amp;rsquo;t be changed).&lt;/p&gt;&#xA;&lt;p&gt;The DHCP-assigned 192.168.4.25 is subject to change — need to iron that out.&lt;/p&gt;&#xA;&lt;h3 id=&#34;admin-password-reset&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;admin password reset&lt;/span&gt; &lt;a href=&#34;#admin-password-reset&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;From the main menu, tap &lt;strong&gt;Counter&lt;/strong&gt; → &lt;strong&gt;Display Keyboard&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Enter: &lt;code&gt;stop, 0, 0, stop, 0, 1&lt;/code&gt; via the on-display keypad&lt;/li&gt;&#xA;&lt;li&gt;A password prompt appears — enter: &lt;code&gt;9272 9272 9272 9272&lt;/code&gt; (9272 × 4)&lt;/li&gt;&#xA;&lt;li&gt;Tap &lt;strong&gt;End&lt;/strong&gt; (this is &amp;ldquo;OK&amp;rdquo;)&lt;/li&gt;&#xA;&lt;li&gt;From the new menu: &lt;code&gt;stop, 0&lt;/code&gt; on the on-display keypad, then &lt;code&gt;C&lt;/code&gt; on the keypad&lt;/li&gt;&#xA;&lt;li&gt;This opens the admin password reset menu&lt;/li&gt;&#xA;&lt;li&gt;Set new password to: &lt;code&gt;12345678&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;NOTE: I put a sticky note on the side of the printer with these instructions&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;how-to-get-to-network-settings&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;how to get to network settings&lt;/span&gt; &lt;a href=&#34;#how-to-get-to-network-settings&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;After the admin password reset, I navigated through the menus to find the&#xA;network settings and changed from static IP to &lt;strong&gt;Auto (DHCP)&lt;/strong&gt;. Didn&amp;rsquo;t write&#xA;down the exact path — next time I&amp;rsquo;m at the printer I need to document it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;todo&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;todo&lt;/span&gt; &lt;a href=&#34;#todo&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; turn off &amp;ldquo;Olivet Bible Church&amp;rdquo; SSID on the old Spectrum router (requires admin portal access)&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; wall-mount Eero 2 to extend range to kid&amp;rsquo;s wing&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; consider getting a 4th Eero for Fellowship Hall coverage&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; set the printer to a DHCP reservation on the Eero so its IP doesn&amp;rsquo;t change&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; fix the shared password between OBC-Admin and OBC-Guest (currently the same)&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; re-run the damaged ethernet cable from the networking closet to the sanctuary&#xA;&lt;ul&gt;&#xA;&lt;li&gt;once done, plug blue #4 into the switch, feeding Eero 3 at the tech bar&lt;/li&gt;&#xA;&lt;li&gt;Eero 3 can then feed Switch 3 for the tech bar devices&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Eero 3 might be able to do this without a new run depending on strength of their back-haul&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;topology&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;topology&lt;/span&gt; &lt;a href=&#34;#topology&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;figure&gt;&#xA;&lt;img src=&#34;https://cdn.statically.io/gh/pypeaday/images.pype.dev/main/blog-media/20260517133911_bfaa446e.png&#34; alt=&#34;20260517133911_bfaa446e.png&#34;&gt;&#xA;&lt;/figure&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Blog and LLM Knowledge Base</title>
    <id>https://pype.dev/blog-and-llm-knowledge-base/</id>
    <updated>2026-05-13T06:23:42Z</updated>
    <published>2026-05-13T06:23:42Z</published>
    <link href="https://pype.dev/blog-and-llm-knowledge-base/" rel="alternate" type="text/html"></link>
    <summary type="text">Thinking about this tweet from Andrej Karpathy about LLM knowledge bases. I maintain a blog like this one at work, which is fairly well structured markdown...</summary>
    <content type="html">&lt;h2 id=&#34;dev&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Dev&lt;/span&gt; &lt;a href=&#34;#dev&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Thinking about &lt;a href=&#34;https://x.com/i/status/2039805659525644595&#34;&gt;this tweet from Andrej Karpathy&lt;/a&gt; about LLM knowledge bases. I maintain a blog like this one at work, which is fairly well structured markdown files and I use markdown lsp for linking docs conceptually. It makes it easy for me to trace thoughts and search what I&amp;rsquo;ve written about. However I find that there&amp;rsquo;s a limit to what I am able to organize by myself&amp;hellip; The hardest part of of a zettlekasten to me is breaking down a thought into the smallest most atomic unit so that I don&amp;rsquo;t end up duplicating thoughts in files and lose the real traceability. In my head I think there&amp;rsquo;s a mathematical way to solve this, some kine of embedding setup that&amp;rsquo;s beyond my actual comprehension. But I think I&amp;rsquo;m overlookking that agents are probably just good enough with raw markdown, at the scale that I keep notes, that I should start to move in the direction, at least at work, of making my working notse blog repo more agentically friendly: AGENTS.md file, using an agent with its own dumping ground for files, some pruning sessions, and maybe a simple chat interface where I open an agent with a skill for using myrepo as a knowledge base and see if that gives me any super powers for organization or problem solving.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;pre&gt;&lt;code&gt;LLM Knowledge Bases&#xA;&#xA;Something I&#39;m finding very useful recently: using LLMs to build personal knowledge bases for various topics of research interest. In this way, a large fraction of my recent token throughput is going less into manipulating code, and more into manipulating knowledge (stored as markdown and images). The latest LLMs are quite good at it. So:&#xA;&#xA;Data ingest:&#xA;I index source documents (articles, papers, repos, datasets, images, etc.) into a raw/ directory, then I use an LLM to incrementally &amp;quot;compile&amp;quot; a wiki, which is just a collection of .md files in a directory structure. The wiki includes summaries of all the data in raw/, backlinks, and then it categorizes data into concepts, writes articles for them, and links them all. To convert web articles into .md files I like to use the Obsidian Web Clipper extension, and then I also use a hotkey to download all the related images to local so that my LLM can easily reference them.&#xA;&#xA;IDE:&#xA;I use Obsidian as the IDE &amp;quot;frontend&amp;quot; where I can view the raw data, the the compiled wiki, and the derived visualizations. Important to note that the LLM writes and maintains all of the data of the wiki, I rarely touch it directly. I&#39;ve played with a few Obsidian plugins to render and view data in other ways (e.g. Marp for slides).&#xA;&#xA;Q&amp;amp;A:&#xA;Where things get interesting is that once your wiki is big enough (e.g. mine on some recent research is ~100 articles and ~400K words), you can ask your LLM agent all kinds of complex questions against the wiki, and it will go off, research the answers, etc. I thought I had to reach for fancy RAG, but the LLM has been pretty good about auto-maintaining index files and brief summaries of all the documents and it reads all the important related data fairly easily at this ~small scale.&#xA;&#xA;Output:&#xA;Instead of getting answers in text/terminal, I like to have it render markdown files for me, or slide shows (Marp format), or matplotlib images, all of which I then view again in Obsidian. You can imagine many other visual output formats depending on the query. Often, I end up &amp;quot;filing&amp;quot; the outputs back into the wiki to enhance it for further queries. So my own explorations and queries always &amp;quot;add up&amp;quot; in the knowledge base.&#xA;&#xA;Linting:&#xA;I&#39;ve run some LLM &amp;quot;health checks&amp;quot; over the wiki to e.g. find inconsistent data, impute missing data (with web searchers), find interesting connections for new article candidates, etc., to incrementally clean up the wiki and enhance its overall data integrity. The LLMs are quite good at suggesting further questions to ask and look into.&#xA;&#xA;Extra tools:&#xA;I find myself developing additional tools to process the data, e.g. I vibe coded a small and naive search engine over the wiki, which I both use directly (in a web ui), but more often I want to hand it off to an LLM via CLI as a tool for larger queries.&#xA;&#xA;Further explorations:&#xA;As the repo grows, the natural desire is to also think about synthetic data generation + finetuning to have your LLM &amp;quot;know&amp;quot; the data in its weights instead of just context windows.&#xA;&#xA;TLDR: raw data from a given number of sources is collected, then compiled by an LLM into a .md wiki, then operated on by various CLIs by the LLM to do Q&amp;amp;A and to incrementally enhance the wiki, and all of it viewable in Obsidian. You rarely ever write or edit the wiki manually, it&#39;s the domain of the LLM. I think there is room here for an incredible new product instead of a hacky collection of scripts.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Talking with Jason about Real Estate</title>
    <id>https://pype.dev/talking-with-jason-about-real-estate/</id>
    <updated>2026-04-28T14:12:53Z</updated>
    <published>2026-04-28T14:12:53Z</published>
    <link href="https://pype.dev/talking-with-jason-about-real-estate/" rel="alternate" type="text/html"></link>
    <summary type="text">license took 1 month, $1k, test, done. - hard part is getting started - no client base - no knowledge - 80% of agents fail - renewal rates show 80% don&#39;t...</summary>
    <content type="html">&lt;ul&gt;&#xA;&lt;li&gt;license took 1 month, $1k, test, done.&lt;/li&gt;&#xA;&lt;li&gt;hard part is getting started&#xA;&lt;ul&gt;&#xA;&lt;li&gt;no client base&lt;/li&gt;&#xA;&lt;li&gt;no knowledge&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;80% of agents fail&#xA;&lt;ul&gt;&#xA;&lt;li&gt;renewal rates show 80% don&amp;rsquo;t renew every 3 years (national &amp;ldquo;clock&amp;rdquo;)&lt;/li&gt;&#xA;&lt;li&gt;no leads&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Jason has a system for his agents&#xA;&lt;ul&gt;&#xA;&lt;li&gt;14 people work for him&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;advice&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Advice&lt;/span&gt; &lt;a href=&#34;#advice&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;find someone who is looking to grow agents&lt;/li&gt;&#xA;&lt;li&gt;commit or don&amp;rsquo;t do it, but don&amp;rsquo;t quit&lt;/li&gt;&#xA;&lt;li&gt;takes a month to learn&#xA;&lt;ul&gt;&#xA;&lt;li&gt;3 months to ramp up&lt;/li&gt;&#xA;&lt;li&gt;2 months to close first house&lt;/li&gt;&#xA;&lt;li&gt;first 6 months without a paycheck&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;takes 2 years to build it&lt;/li&gt;&#xA;&lt;li&gt;would never go back to the car business&lt;/li&gt;&#xA;&lt;li&gt;Century21 is in Appleton&#xA;&lt;ul&gt;&#xA;&lt;li&gt;jamesville&lt;/li&gt;&#xA;&lt;li&gt;altuna&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>KDE Shortcuts for Desktop and Window Navigation</title>
    <id>https://pype.dev/kde-shortcuts-for-desktop-and-window-navigation/</id>
    <updated>2026-04-25T13:44:48Z</updated>
    <published>2026-04-25T13:44:48Z</published>
    <link href="https://pype.dev/kde-shortcuts-for-desktop-and-window-navigation/" rel="alternate" type="text/html"></link>
    <summary type="text">This isn&#39;t my entire /home/nic/.config/kglobalshortcutsrc, just the sections that I customized as I&#39;m setting up my desktop from the great...</summary>
    <content type="html">&lt;p&gt;This isn&amp;rsquo;t my entire /home/nic/.config/kglobalshortcutsrc, just the sections that I customized as I&amp;rsquo;m setting up my desktop from the great &lt;a href=&#34;/desktop-crash-2026/&#34; class=&#34;wikilink&#34; data-title=&#34;Desktop Crash 2026&#34; data-description=&#34;Desktop crashed days ago, apparently my primary drive has been going bad for a while and eventually it just died.&#34; data-date=&#34;2026-04-22&#34; data-preview=&#34;Desktop crashed days ago, apparently my primary drive has been going bad for a while and eventually it just died.&#34;&gt;Desktop Crash 2026&lt;/a&gt;. Putting here to find on the web, will also be updating dotfiles&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;Switch to Desktop 1=Meta+1,Meta+F1\tCtrl+F1,Switch to Desktop 1&#xA;Switch to Desktop 2=Meta+2,Meta+F2\tCtrl+F2,Switch to Desktop 2&#xA;Switch to Desktop 3=Meta+3,Meta+F3\tCtrl+F3,Switch to Desktop 3&#xA;Switch to Desktop 4=Meta+4,Meta+F4\tCtrl+F4,Switch to Desktop 4&#xA;Switch to Desktop 5=Meta+5,,Switch to Desktop 5&#xA;Switch to Desktop 6=Meta+6,,Switch to Desktop 6&#xA;Switch to Desktop 7=Meta+7,,Switch to Desktop 7&#xA;Switch to Desktop 8=Meta+8,,Switch to Desktop 8&#xA;Switch to Desktop 9=Meta+9,,Switch to Desktop 9&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;My minimum requirements lately are super+{1,2...} to bring me to a numbered desktop (for which I have mental conventions to organize apps), and super+shift+{1,2,...} to send a window to that desktop.&#xA;Window to Desktop 1=Meta+!,,Window to Desktop 1&#xA;Window to Desktop 2=Meta+@,,Window to Desktop 2&#xA;Window to Desktop 3=Meta+#,,Window to Desktop 3&#xA;Window to Desktop 4=Meta+$,,Window to Desktop 4&#xA;Window to Desktop 5=Meta+%,,Window to Desktop 5&#xA;Window to Desktop 6=Meta+^,,Window to Desktop 6&#xA;Window to Desktop 7=Meta+&amp;amp;,,Window to Desktop 7&#xA;Window to Desktop 8=Meta+*,,Window to Desktop 8&#xA;Window to Desktop 9=Meta+(,,Window to Desktop 9&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Aurora and KDE Window Managment with KZones</title>
    <id>https://pype.dev/aurora-and-kde-window-managment-with-kzones/</id>
    <updated>2026-04-25T06:51:20Z</updated>
    <published>2026-04-25T06:51:20Z</published>
    <link href="https://pype.dev/aurora-and-kde-window-managment-with-kzones/" rel="alternate" type="text/html"></link>
    <summary type="text">I have used a variety of window managers on a variety of distros and OS&#39;s over the last several years and because my hardware usage feels regularly in flux I...</summary>
    <content type="html">&lt;p&gt;I have used a variety of window managers on a variety of distros and OS&amp;rsquo;s over the last several years and because my hardware usage feels regularly in flux I don&amp;rsquo;t have an air-tight common setup for any given environment. On my desktop the way I give myself some nice easy window management is with KZones and this config:&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Side by Side&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;padding&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;zones&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;y&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;height&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;width&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;80&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;80&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;y&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;height&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;width&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;20&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Split Top&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;padding&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;zones&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;y&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;height&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;width&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;y&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;height&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;width&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;y&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;height&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;width&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Full Screen&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;padding&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;zones&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;y&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;height&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;width&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Stacked&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;padding&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;zones&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;y&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;height&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;70&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;width&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;y&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;70&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;height&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;30&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;width&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Desktop Crash 2026</title>
    <id>https://pype.dev/desktop-crash-2026/</id>
    <updated>2026-04-22T05:57:40Z</updated>
    <published>2026-04-22T05:57:40Z</published>
    <link href="https://pype.dev/desktop-crash-2026/" rel="alternate" type="text/html"></link>
    <summary type="text">Desktop crashed days ago, apparently my primary drive has been going bad for a while and eventually it just died.</summary>
    <content type="html">&lt;h2 id=&#34;pc-crash&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;PC Crash&lt;/span&gt; &lt;a href=&#34;#pc-crash&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Desktop crashed days ago, apparently my primary drive has been going bad for a while and eventually it just died.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;live-booted to ubuntu server&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;found restic backup script to NAS&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;edited to be smaller, but did the backup to the NAS&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;rsync&amp;rsquo;d &lt;a href=&#34;/docker/&#34; class=&#34;glossary-term&#34; title=&#34;docker - container runtime&#34; data-hover-title=&#34;docker&#34;&gt;docker&lt;/a&gt; volumes to BX500 SSD which is a zfs pool&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;captured what I did on ghost at /home/nic/aurora-recovery-report.md and /home/nic/aurora-crash-disk-health-report.md&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;plan&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;PLAN&lt;/span&gt; &lt;a href=&#34;#plan&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; install &lt;sub&gt;ubunto&lt;/sub&gt; Aurora on 500 GB Samsung&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; create zfs dataset for projects /tank/volumes/projects&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; which disk?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; mount zfs dataset /tank/volumes/projects to /home/nic/projects&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; zfs for home? probably not, keep home on ext4&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; mount old home and sync directly&#xA;&lt;ul&gt;&#xA;&lt;li&gt;restoring old backups to 2TB disk, will selectively copy things over&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; jetkvm key rotation&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I recovered the old id_rsa one but I&amp;rsquo;m going to simplify my ssh key usage, so sticking with my default key, updated this in the jetkvm /settings/advanced webui&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; restore restic backup to a temp location &lt;code&gt;/var/docker-storage-zfs/home-restore/&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; figure out what to keep&#xA;&lt;ul&gt;&#xA;&lt;li&gt;.skm (or consolidate keys)&lt;/li&gt;&#xA;&lt;li&gt;&lt;/li&gt;&#xA;&lt;li&gt;???&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; install windsurf in an ubuntu distrobox&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;distroboc create UbuntuDev --image=ubuntu:22.04&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;a href=&#34;https://windsurf.com/download/editor?os=linux&#34;&gt;https://windsurf.com/download/editor?os=linux&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; manual install method from distrobox&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; restore .windsurf? it&amp;rsquo;s super old&amp;hellip;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;outcome&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Outcome&lt;/span&gt; &lt;a href=&#34;#outcome&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;This is going terribly&amp;hellip; blog post coming on what I should&amp;rsquo;ve done. What&amp;rsquo;s&#xA;actually happening is that I basically just lost everything on that desktop&#xA;except my homelab repo thank God&amp;hellip;&lt;/p&gt;&#xA;&lt;h2 id=&#34;plans-to-build&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Plans to build&lt;/span&gt; &lt;a href=&#34;#plans-to-build&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;vibe code an observability thing that&#xA;&lt;ul&gt;&#xA;&lt;li&gt;runs a restore in a container&lt;/li&gt;&#xA;&lt;li&gt;run some &lt;a href=&#34;/kind/&#34; class=&#34;glossary-term&#34; title=&#34;kind - kubernetes in docker&#34; data-hover-title=&#34;kind&#34;&gt;kind&lt;/a&gt; of setup in that container at least for my shell and neovim and things&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;networking for babyblue-aurora -&amp;gt; aurora transition&lt;/li&gt;&#xA;&lt;li&gt;lament draft posts that are lost&lt;/li&gt;&#xA;&lt;li&gt;ssh keys&amp;hellip; lost .skm directory, look if it&amp;rsquo;s copied anywhere otherwise rotate keys and simplify&lt;/li&gt;&#xA;&lt;li&gt;workspace backup everynight&amp;hellip; abuse git for this&#xA;&lt;ul&gt;&#xA;&lt;li&gt;or rsync to external drive, you have zfs on aurora now&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;opencode to address neovim logs&lt;/li&gt;&#xA;&lt;li&gt;switch to zellij?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;what would have to translate from tmux? probably quite a few keybindings&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been drowning in anxiety and depression over tech and AI, work and requirements, and my desktop SSD catastrophically failing while I didn&amp;rsquo;t have an up to date backup&amp;hellip; projects, ssh keys, ideas&amp;hellip; gone. And that&amp;rsquo;s ok, life goes on, so here&amp;rsquo;s my start of a hectic list of what I&amp;rsquo;m doing to setup my desktop again. This will turn into a small post, a sister-post to the one I need to write about how I should&amp;rsquo;ve recovered from my live boot environment&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Florida Packing</title>
    <id>https://pype.dev/florida-packing/</id>
    <updated>2026-03-20T07:26:28Z</updated>
    <published>2026-03-20T07:26:28Z</published>
    <link href="https://pype.dev/florida-packing/" rel="alternate" type="text/html"></link>
    <summary type="text">girls don&#39;t need their sleeping bags - I don&#39;t need my BJJ stuff</summary>
    <content type="html">&lt;h2 id=&#34;packing-notes&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Packing notes&lt;/span&gt; &lt;a href=&#34;#packing-notes&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;girls don&amp;rsquo;t need their sleeping bags&lt;/li&gt;&#xA;&lt;li&gt;I don&amp;rsquo;t need my BJJ stuff&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;my-inventory&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;My inventory&lt;/span&gt; &lt;a href=&#34;#my-inventory&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;4 pairs sleeping underwear + shorts&#xA;= 4 t-shirts&lt;/li&gt;&#xA;&lt;li&gt;2 hoodies (1 light 1 heavy)&lt;/li&gt;&#xA;&lt;li&gt;orange 1/4 zip&lt;/li&gt;&#xA;&lt;li&gt;2 pair socks (more if forecast is sub 70)&lt;/li&gt;&#xA;&lt;li&gt;1 pair swimming trunks is probably enough&lt;/li&gt;&#xA;&lt;li&gt;2 shorts&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Oration on Agents and being crushed by responsibility</title>
    <id>https://pype.dev/oration-on-agents-and-being-crushed-by-responsibility/</id>
    <updated>2026-03-16T20:18:23Z</updated>
    <published>2026-03-16T20:18:23Z</published>
    <link href="https://pype.dev/oration-on-agents-and-being-crushed-by-responsibility/" rel="alternate" type="text/html"></link>
    <summary type="text">The intention of this note is to become a blog post:</summary>
    <content type="html">&lt;p&gt;The intention of this note is to become a blog post:&lt;/p&gt;&#xA;&lt;h2 id=&#34;raw-recording&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Raw Recording&lt;/span&gt; &lt;a href=&#34;#raw-recording&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Okay, this is the oration for a blog post, maybe an open letter of sorts, as I am just wrestling with my new job and the responsibilities that either are put on me or that I&amp;rsquo;ve put on myself as the world is changing.&#xA;And software development and software engineering and code writing&#xA;is just changing, thanks to AI, thanks to agents and their introduction into the corporate environment.&#xA;The internet is full of opinions and ideas that push and pull and prod people in different directions.&#xA;And every one of those ideas has contexts, which is necessary to keep in mind when filtering the ideas.&#xA;At a smaller startup where you can have a $200 a month Claude Code subscription for all of your engineers, that&amp;rsquo;s gonna&#xA;yield certain results that&amp;rsquo;s going to encourage and invite certain people into that space to use those tools, the clawed tools, or Gemini or Codex.&#xA;I work at a big company, Caterpillar.&#xA;We have a GitHub co-pilot, but through co-pilot we have access to the &lt;a href=&#34;/kind/&#34; class=&#34;glossary-term&#34; title=&#34;kind - kubernetes in docker&#34; data-hover-title=&#34;kind&#34;&gt;kind&lt;/a&gt; of frontier large language models.&#xA;From there, we have access to the co-pilot harness, whether it&amp;rsquo;s co-pilot CLI or the co-pilot integration with Visual Studio code, or the other IDEs like JetBrains, et cetera.&#xA;Out there in the world, he has certain opinions from some people.&#xA;You have people who are very pro agents like Steve Yeage, who has been a big influence to me over the last several months, as I&amp;rsquo;ve definitely jumped into the deep end of agentic coding.&#xA;I haven&amp;rsquo;t even really opened my IDD in months, except for small things that I want to do by hand.&#xA;enterprise grade work for the last three months or so and maybe a little longer has been fully written and produced by agents and i&amp;rsquo;ve been using AI to write code to some capacity or another since chad gpt came out really since like claude sonnet 3.5 but this thinking that i am doing is&#xA;It&amp;rsquo;s really supposed to be about me, so this blog post I want to write is me processing thoughts on the expectation change that&amp;rsquo;s placed on developers in certain environments for certain types of work.&#xA;I guess even that, like that sounds kind of vague.&#xA;So I can only speak to myself.&#xA;So I need to put a big annotation and plaster this blog post with this big caveat message that this is me, this is my experience, this is my position, and this is not a truth that is wide reaching.&#xA;It&amp;rsquo;s not any kind of prediction on the, you know,&#xA;the larger change happening in the world.&#xA;This is just where I am at.&#xA;So maybe for the post to make sense, I need to give a brief amount of history about me and my work.&#xA;I&amp;rsquo;m not a trained software engineer, but I&amp;rsquo;ve been, I guess I&amp;rsquo;ve been a pretty impressive asset in my employment.&#xA;I&amp;rsquo;ve been at Caterpillar for nine years, and in that nine years or over in the last several years, I&amp;rsquo;ve moonlit, moonlighted a little bit.&#xA;And at every place I&amp;rsquo;ve done any other amount of work, I&amp;rsquo;ve just consistently impressed people.&#xA;Now, this really just leads me to have more imposter syndrome because I know or I have learned what impresses people,&#xA;And it isn&amp;rsquo;t necessarily excellence, although I try to do things well and I want to solve problems and maintain the systems that I build to solve those problems.&#xA;But I don&amp;rsquo;t write the best code.&#xA;I&amp;rsquo;m not the smartest developer.&#xA;I don&amp;rsquo;t know the most.&#xA;I get to know the things I work with and I learn a lot and I work fast because I have&#xA;Not a super unique, but a rare ability to focus in, when the stars align, to focus and produce more than the next person.&#xA;Not every next person, but a lot of the next people, a lot of the people I work with, I outperform.&#xA;And that&amp;rsquo;s been true, or it has seemed true, from every review, pretty much every review I&amp;rsquo;ve ever received, that&amp;rsquo;s been true.&#xA;And as I&amp;rsquo;ve had that just personal truth be reflected in my work, it&amp;rsquo;s been enhanced with AI because I&amp;rsquo;ve been an early adopter and even as a, even as somewhat of a skeptic, like I&amp;rsquo;ve tried to maintain a posture of skepticism.&#xA;But since Opus 4.5,&#xA;Even though I might talk like a skeptic, I am leaning into agents hard.&#xA;And I am practicing my own harness engineering with my nexus project.&#xA;And I&amp;rsquo;m using it to do engineering work at Caterpillar that&amp;rsquo;s going into production for us, which is like data platform type of work.&#xA;It&amp;rsquo;s not custom, it&amp;rsquo;s not external customer facing.&#xA;It&amp;rsquo;s internal tooling, which is what I mostly built.&#xA;And the thing I&amp;rsquo;m really trying to wrap my head around, or I guess I&amp;rsquo;m trying to explain, is without AI, I was out producing a lot of people.&#xA;And with AI, you can produce just a shit ton of code.&#xA;And I&amp;rsquo;m trying to do that part well, but in my own gifts and curses of hyper focus and&#xA;Wanting to meet expectations and solve problems, I&amp;rsquo;m jumping into the new frontier very quickly.&#xA;But something I&amp;rsquo;ve noticed is that as I&amp;rsquo;ve produced a lot, people are just impressed.&#xA;And they&amp;rsquo;re not necessarily impressed with the excellence.&#xA;They&amp;rsquo;re impressed with how I talk about things.&#xA;They&amp;rsquo;re impressed with how much I do, and they&amp;rsquo;re impressed with the output they see.&#xA;But the result of a bunch of code isn&amp;rsquo;t all of the code itself.&#xA;And I haven&amp;rsquo;t read all the code I&amp;rsquo;ve produced with agents.&#xA;I&amp;rsquo;ve certainly tried to test most of it or had most of it tested.&#xA;But as I&amp;rsquo;ve sought to do this and as I&amp;rsquo;ve been working in this capacity of using agents very heavily, I just feel kind of torn.&#xA;in trusting the agents and in working with the agents in the ways that I think are appropriate, but also collaborating with other humans who are also using AI.&#xA;But are they using AI in a trustworthy way?&#xA;I don&amp;rsquo;t know, and I&amp;rsquo;m not sure how to validate it.&#xA;But my managers seem to think I know how to validate it, and they seem impressed with the work I do, and they seem impressed with my understanding of AI and agentic coding.&#xA;And so I feel all of this pressure to continue to be a top performer like I have been since before AI.&#xA;I feel a lot of pressure to, I don&amp;rsquo;t want to coach people in how I do things, but I&amp;rsquo;m being asked to coach people and how I do things because other people I work with notice me.&#xA;And I guess I&amp;rsquo;m almost, I&amp;rsquo;m just kind of tired of being noticed.&#xA;Because being noticed is not resulting in me becoming rich.&#xA;And money is not the most important thing.&#xA;But man, I&amp;rsquo;d love to just make enough money to fuck off for the rest of my life and never look at a computer ever again.&#xA;I would love&amp;hellip;&#xA;to not have to continue to maintain systems that I build or that other people build or to collaborate with people I don&amp;rsquo;t know, who might not even be long term.&#xA;That&amp;rsquo;s the one thing about Caterpillar is I&amp;rsquo;m working with a lot of contractors.&#xA;And nothing wrong with contracting, I&amp;rsquo;ve done that.&#xA;Nothing wrong with being a contractor, but&#xA;They could disappear at any moment, and all the code that they write, and even today, all the code that they prompt and have an agent right becomes my problem, my maintenance issue, my responsibility.&#xA;And it just is,&#xA;It&amp;rsquo;s just making me nervous to maintain and to understand and to continue to work under conditions that I can&amp;rsquo;t even tell if I&amp;rsquo;m making them for myself or if they&amp;rsquo;re real expectations.&#xA;Like if I fell off the face of the earth or if I dropped agentic coding entirely and I just went back to coding by hand completely, would my output continue to impress people today?&#xA;I don&amp;rsquo;t know the answer to that.&#xA;But I certainly wouldn&amp;rsquo;t be solving problems as fast, but would I be creating less problems?&#xA;Like I&amp;rsquo;ve solved a lot of problems in three months in my new role here with Forge.&#xA;But I don&amp;rsquo;t know how many problems I&amp;rsquo;ve created.&#xA;Only time will tell.&#xA;And the thing is, the guys I work with who are contractors, they might not be around long enough for time to tell, but because I&amp;rsquo;m not rich yet, I probably will be long enough, or be around long enough.&#xA;to experience those bugs and those problems that I don&amp;rsquo;t know about yet.&#xA;And I am just feeling so much pressure to be the best and to be the one to solve problems.&#xA;And I don&amp;rsquo;t know if I&amp;rsquo;m putting it on me or if cat&amp;rsquo;s putting it on me or if my project manager is putting it on me.&#xA;I&amp;rsquo;m just really struggling with the amount of responsibility I feel.&#xA;And I&amp;rsquo;m feeling frustrated about it because that amount of responsibility feels like it has scaled a lot with agents, with AI, but not my paycheck.&#xA;And in fact, my paycheck has gone down quite a bit.&#xA;And I&amp;rsquo;m not more relaxed.&#xA;I&amp;rsquo;m making about half of what I&amp;rsquo;ve made over the last couple of years.&#xA;And I&amp;rsquo;m not more relaxed.&#xA;I don&amp;rsquo;t feel freer.&#xA;I don&amp;rsquo;t feel like I have 50% of the responsibility that I did.&#xA;Cal Autonomy awoke something in me for purpose, but that feels like it&amp;rsquo;s already starting to die.&#xA;I&amp;rsquo;m already tired.&#xA;I&amp;rsquo;m, I don&amp;rsquo;t know about burnt out, but I&amp;rsquo;m tired.&#xA;I was reviewing some code that one of these contractors I&amp;rsquo;m working with.&#xA;It&amp;rsquo;s actually only an intern.&#xA;He&amp;rsquo;s not even a contractor.&#xA;He&amp;rsquo;s an intern.&#xA;And I&amp;rsquo;m reviewing a pull request of his.&#xA;And damn, it&amp;rsquo;s a lot of code.&#xA;And it looks somewhat useful.&#xA;But I don&amp;rsquo;t know exactly how to test it.&#xA;That&amp;rsquo;s not true actually, I do know how to test it, but I don&amp;rsquo;t own enough of our infrastructure at Caterpillar to test it easily.&#xA;So do I trust him?&#xA;Do I trust his prompt?&#xA;Do I trust his harness?&#xA;Do I trust the tests that I have already put in the code base to capture and block any breakages he might have introduced with this code for the code I&amp;rsquo;ve already been producing?&#xA;It&amp;rsquo;s different when I&amp;rsquo;m intimately familiar with the code base.&#xA;And I&amp;rsquo;ve been, I don&amp;rsquo;t know, definitely two other places at least where I had very intimate familiarity with the system and with the code and with the platform.&#xA;But the one I&amp;rsquo;m on right now is new, and I built it.&#xA;I built it with agents.&#xA;I built it to replace a thing that was never even working.&#xA;But I built it.&#xA;It&amp;rsquo;s mine.&#xA;It&amp;rsquo;s not somebody else&amp;rsquo;s.&#xA;It&amp;rsquo;s not that we&amp;rsquo;ll document it.&#xA;There&amp;rsquo;s a lot of documentation, but it&amp;rsquo;s all been agent produced, and even though I&amp;rsquo;ve reviewed it, it&amp;rsquo;s hard for me to organize it in the right way in a way that makes sense.&#xA;I&amp;rsquo;m just feeling so frustrated that it seems like, as the tools are getting better, as developers are able to move faster, it feels like I am expected to move faster.&#xA;but I&amp;rsquo;m not expected to make any more money.&#xA;I&amp;rsquo;m not expected to be compensated anymore for the increase in velocity and responsibility.&#xA;It&amp;rsquo;s almost like if I could produce, this metric is not gonna be real, but let&amp;rsquo;s just, for the sake of argument, make it up.&#xA;If I can write 30,000 lines of code in a year and make $100,000, I feel fine about that, whatever that number means.&#xA;But now I can actually produce 300,000 lines of code in a year.&#xA;I&amp;rsquo;m definitely producing 10 times more code than normal.&#xA;I don&amp;rsquo;t know if I&amp;rsquo;m doing 10 times more engineering, but I am making exactly the same amount of money.&#xA;And so why did I do it?&#xA;Why am I leaning into it so hard?&#xA;Why am I trying to still be the front runner to be on the bleeding edge when caterpillar is not going to pay anymore?&#xA;And I could go somewhere else.&#xA;I could go to Avant.&#xA;I could make more.&#xA;It&amp;rsquo;s a system I&amp;rsquo;m familiar with.&#xA;It&amp;rsquo;s even people I know.&#xA;And there&amp;rsquo;s AI there too.&#xA;But it&amp;rsquo;s a system I know.&#xA;It&amp;rsquo;s a system I know how to support and maintain.&#xA;And there&amp;rsquo;s not an expectation that I&amp;rsquo;m going to produce 10,000 lines of code this week.&#xA;But right now at Caterpillar, it feels like I am expected to write 10,000 lines of code this week.&#xA;And deploy it and maintain it and solve new problems.&#xA;All in an incredibly political and hectic, chaotic environment where there isn&amp;rsquo;t an appropriate amount of leadership over me.&#xA;I am the expert in AI in my group.&#xA;And that feels retarded.&#xA;I am the professional agentic engineer and that is just scary because I&amp;rsquo;m not good enough to be that.&#xA;I&amp;rsquo;m not Steve Yeagie, I&amp;rsquo;m not Simon Willison, I haven&amp;rsquo;t been a developer for 20 years.&#xA;I&amp;rsquo;m just a guy who learned some Python to solve some problems and happen to work faster than a lot of people and that reputation has really&#xA;It&amp;rsquo;s treated me well for sure.&#xA;And my disposition to problem solving has, up until recently, I felt like I had been, like I&amp;rsquo;ve been compensated well by my company, but then I&amp;rsquo;ve also been able to do more work outside of one job for me to feel the value of my own skills.&#xA;But now with AI changing everything,&#xA;Can I show you what&amp;rsquo;s on the back of my story?&#xA;It feels like I&amp;rsquo;ve given up the personal gains.&#xA;One second, Alia.&#xA;So I&amp;rsquo;ve given up personally realizing the benefit of my own skill.&#xA;And now I am like in a position where&#xA;Caterpillar, and only Caterpillar, is reaping the benefit of my new scheme in agentic engineering.&#xA;And I think that&amp;rsquo;s just ticking me off because I stayed with Catt to do something good for the world.&#xA;And I think we can do something good for the world.&#xA;But I&amp;rsquo;m tired.&lt;/p&gt;&#xA;&lt;h2 id=&#34;notes-and-summarization&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Notes and Summarization&lt;/span&gt; &lt;a href=&#34;#notes-and-summarization&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;possible-titles&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Possible Titles&lt;/span&gt; &lt;a href=&#34;#possible-titles&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Agents, Responsibility, and the Cost of Going Faster&lt;/li&gt;&#xA;&lt;li&gt;The Irony of 10x&lt;/li&gt;&#xA;&lt;li&gt;More Output, Less Upside&lt;/li&gt;&#xA;&lt;li&gt;When AI Made Me Faster and Poorer&lt;/li&gt;&#xA;&lt;li&gt;Being Crushed by Responsibility&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;working-angle&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Working Angle&lt;/span&gt; &lt;a href=&#34;#working-angle&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;This should probably be a personal essay, not a manifesto about AI. The core tension:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;agents made me dramatically more productive&lt;/li&gt;&#xA;&lt;li&gt;that productivity increased the responsibility I carry&lt;/li&gt;&#xA;&lt;li&gt;the financial upside I used to realize personally has gone down, not up&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;section-stub-opening-scene&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Section Stub: Opening Scene&lt;/span&gt; &lt;a href=&#34;#section-stub-opening-scene&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Prompt:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Start with a concrete moment. Maybe reviewing a massive PR from the intern / contractor side of the system.&lt;/li&gt;&#xA;&lt;li&gt;What did I feel in that moment: confusion, dread, pressure, responsibility, skepticism?&lt;/li&gt;&#xA;&lt;li&gt;What was the specific thought: &amp;ldquo;I might own all of this later, even if I did not really produce or validate all of it myself.&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;Can I open with one sharp sentence that names the tension right away?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Possible opener idea:&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;Agentic coding has made me faster than ever, but it has also made me feel responsible for more than I can honestly hold in my head.&amp;rdquo;&lt;/p&gt;&#xA;&lt;h2 id=&#34;section-stub-this-is-about-me-not-everyone&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Section Stub: This Is About Me, Not Everyone&lt;/span&gt; &lt;a href=&#34;#section-stub-this-is-about-me-not-everyone&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Prompt:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Add a strong caveat early: this is not prediction, prescription, or universal truth.&lt;/li&gt;&#xA;&lt;li&gt;Name my context: big company, internal platform work, political environment, mixed team ownership, frontier models via Copilot.&lt;/li&gt;&#xA;&lt;li&gt;What about my temperament matters here? Hyperfocus, initiative, problem solving, pressure sensitivity, desire to meet expectations.&lt;/li&gt;&#xA;&lt;li&gt;What would I want a reader to not mishear?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;section-stub-who-i-was-before-agents&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Section Stub: Who I Was Before Agents&lt;/span&gt; &lt;a href=&#34;#section-stub-who-i-was-before-agents&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Prompt:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Briefly describe my work history and self-understanding.&lt;/li&gt;&#xA;&lt;li&gt;I am not formally trained, so what made me valuable anyway?&lt;/li&gt;&#xA;&lt;li&gt;What does it mean that people were impressed before AI too?&lt;/li&gt;&#xA;&lt;li&gt;Pull in relevant threads from &lt;code&gt;pages/blog/forge-ahead.md&lt;/code&gt;: prior projects, practical problem solving, being useful, learning systems by doing.&lt;/li&gt;&#xA;&lt;li&gt;What gifts do I think God gave me that made me effective before this shift?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Questions to answer:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What kind of worker was I before agents entered my workflow?&lt;/li&gt;&#xA;&lt;li&gt;What did I already know how to do well?&lt;/li&gt;&#xA;&lt;li&gt;What part of my value came from focus rather than brilliance?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;section-stub-why-i-leaned-into-agentic-coding&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Section Stub: Why I Leaned Into Agentic Coding&lt;/span&gt; &lt;a href=&#34;#section-stub-why-i-leaned-into-agentic-coding&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Prompt:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Explain that I did not stumble into this accidentally; I chose to go hard.&lt;/li&gt;&#xA;&lt;li&gt;Why did it feel natural to me to adopt agents aggressively?&lt;/li&gt;&#xA;&lt;li&gt;What about the mission at Caterpillar Autonomy made the leap feel worth it?&lt;/li&gt;&#xA;&lt;li&gt;Pull in &lt;code&gt;pages/blog/cat-autonomy-2-0.md&lt;/code&gt;: I stayed because the work felt meaningful, not merely because it was interesting.&lt;/li&gt;&#xA;&lt;li&gt;Mention harness engineering / Nexus / experimentation if it helps show this was a deliberate investment.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Questions to answer:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Why did I trust this direction enough to reorganize my work around it?&lt;/li&gt;&#xA;&lt;li&gt;Was I chasing novelty, usefulness, recognition, mission, or all of the above?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;section-stub-what-actually-changed&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Section Stub: What Actually Changed&lt;/span&gt; &lt;a href=&#34;#section-stub-what-actually-changed&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Prompt:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Describe the practical change in my day-to-day work.&lt;/li&gt;&#xA;&lt;li&gt;I am no longer mainly writing code line by line; I am directing, reviewing, testing, and integrating generated work.&lt;/li&gt;&#xA;&lt;li&gt;What changed about the quantity of output?&lt;/li&gt;&#xA;&lt;li&gt;What changed about how coworkers and managers perceived me?&lt;/li&gt;&#xA;&lt;li&gt;What changed about the kind of questions people started asking me?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Questions to answer:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When did I realize this was not just autocomplete, but a new mode of working?&lt;/li&gt;&#xA;&lt;li&gt;What does &amp;ldquo;enterprise-grade work fully written and produced by agents&amp;rdquo; actually mean in practice?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;section-stub-the-hidden-cost-of-speed&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Section Stub: The Hidden Cost of Speed&lt;/span&gt; &lt;a href=&#34;#section-stub-the-hidden-cost-of-speed&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Prompt:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Write about the gap between output and understanding.&lt;/li&gt;&#xA;&lt;li&gt;I can ship more, but I do not always know the code as intimately as hand-written systems I built before.&lt;/li&gt;&#xA;&lt;li&gt;Testing is not the same as ownership.&lt;/li&gt;&#xA;&lt;li&gt;Documentation existing is not the same as confidence.&lt;/li&gt;&#xA;&lt;li&gt;What kinds of future problems does speed create?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Questions to answer:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What do I know I have not fully read?&lt;/li&gt;&#xA;&lt;li&gt;What kinds of bugs or maintenance traps am I afraid I am creating?&lt;/li&gt;&#xA;&lt;li&gt;What does it feel like to build something that works but still feels partially foreign?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;section-stub-responsibility-without-clear-boundaries&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Section Stub: Responsibility Without Clear Boundaries&lt;/span&gt; &lt;a href=&#34;#section-stub-responsibility-without-clear-boundaries&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Prompt:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;This may be the emotional center before the money section.&lt;/li&gt;&#xA;&lt;li&gt;Describe the contractor / intern dynamic and why it intensifies the burden.&lt;/li&gt;&#xA;&lt;li&gt;Their output can become my long-term maintenance problem.&lt;/li&gt;&#xA;&lt;li&gt;The organization sees me as someone who understands AI and agents, so responsibility pools onto me.&lt;/li&gt;&#xA;&lt;li&gt;Ask whether the pressure is explicit or self-imposed, but note that the body feels it either way.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Questions to answer:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Who is actually accountable when AI-assisted code breaks six months from now?&lt;/li&gt;&#xA;&lt;li&gt;What does it mean to be treated like the local expert when I do not feel like one?&lt;/li&gt;&#xA;&lt;li&gt;Why is being noticed beginning to feel costly instead of rewarding?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;section-stub-the-financial-irony&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Section Stub: The Financial Irony&lt;/span&gt; &lt;a href=&#34;#section-stub-the-financial-irony&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Prompt:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;State this clearly and concretely.&lt;/li&gt;&#xA;&lt;li&gt;For years, I realized more value from my output because I worked two jobs concurrently.&lt;/li&gt;&#xA;&lt;li&gt;Due to the new role, new responsibility, and the demands of agentic coding in this environment, I had to go down to one job.&lt;/li&gt;&#xA;&lt;li&gt;So the irony is: the tools make me dramatically more productive, but I personally realize less economic upside from my own gifts and skills than I did before.&lt;/li&gt;&#xA;&lt;li&gt;Keep this grounded and honest, not whiny.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Questions to answer:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What exactly have I lost financially?&lt;/li&gt;&#xA;&lt;li&gt;Why does this feel bigger than &amp;ldquo;I want more money&amp;rdquo;?&lt;/li&gt;&#xA;&lt;li&gt;Where do the gains of AI go when an individual contributor gets faster?&lt;/li&gt;&#xA;&lt;li&gt;If I can now produce 10x more code, why does my life not feel lighter, freer, or better compensated?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Possible thesis sentence:&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;Agentic coding increased the value I create at work, while decreasing the share of that value I personally get to realize.&amp;rdquo;&lt;/p&gt;&#xA;&lt;h2 id=&#34;section-stub-mission-meaning-and-fatigue&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Section Stub: Mission, Meaning, and Fatigue&lt;/span&gt; &lt;a href=&#34;#section-stub-mission-meaning-and-fatigue&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Prompt:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Reaffirm the good: this is meaningful work, and that matters to me.&lt;/li&gt;&#xA;&lt;li&gt;Tie back to autonomy, safety, and the reasons I stayed at Caterpillar.&lt;/li&gt;&#xA;&lt;li&gt;Then tell the truth: meaning does not cancel fatigue.&lt;/li&gt;&#xA;&lt;li&gt;What has already started to feel tired, dulled, or overdrawn in me?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Questions to answer:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;What purpose did this role awaken in me?&lt;/li&gt;&#xA;&lt;li&gt;Why does that sense of purpose already feel threatened?&lt;/li&gt;&#xA;&lt;li&gt;How do I talk honestly about fatigue without pretending I am fully burned out if I am not sure?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;section-stub-questions-i-cannot-yet-answer&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Section Stub: Questions I Cannot Yet Answer&lt;/span&gt; &lt;a href=&#34;#section-stub-questions-i-cannot-yet-answer&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Prompt:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Let the essay breathe here instead of forcing a neat conclusion.&lt;/li&gt;&#xA;&lt;li&gt;Gather the real unresolved questions.&lt;/li&gt;&#xA;&lt;li&gt;If I stopped using agents, would I still impress people?&lt;/li&gt;&#xA;&lt;li&gt;Would I solve fewer problems or create fewer future ones?&lt;/li&gt;&#xA;&lt;li&gt;Am I carrying real expectations or anticipated ones?&lt;/li&gt;&#xA;&lt;li&gt;Is this making me a better engineer, or just a faster source of output and responsibility?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;section-stub-conclusion&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Section Stub: Conclusion&lt;/span&gt; &lt;a href=&#34;#section-stub-conclusion&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Prompt:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;End modestly, not with a manifesto.&lt;/li&gt;&#xA;&lt;li&gt;I am not anti-AI.&lt;/li&gt;&#xA;&lt;li&gt;I am not saying agents are bad.&lt;/li&gt;&#xA;&lt;li&gt;I am trying to tell the truth about what this transition has cost me personally.&lt;/li&gt;&#xA;&lt;li&gt;Land on the mismatch between speed, responsibility, and reward.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Possible closing direction:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The tools are real.&lt;/li&gt;&#xA;&lt;li&gt;The gains are real.&lt;/li&gt;&#xA;&lt;li&gt;The responsibility is real.&lt;/li&gt;&#xA;&lt;li&gt;The redistribution of value is also real.&lt;/li&gt;&#xA;&lt;li&gt;I am still trying to understand what faithfulness looks like inside that tension.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;material-to-weave-in&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Material To Weave In&lt;/span&gt; &lt;a href=&#34;#material-to-weave-in&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;My lack of formal software engineering background&lt;/li&gt;&#xA;&lt;li&gt;My history of being useful by solving practical problems quickly&lt;/li&gt;&#xA;&lt;li&gt;My tendency toward hyperfocus and over-responsibility&lt;/li&gt;&#xA;&lt;li&gt;The shift from hand-written confidence to agent-mediated uncertainty&lt;/li&gt;&#xA;&lt;li&gt;The contractor / intern maintenance concern&lt;/li&gt;&#xA;&lt;li&gt;The drop from two incomes to one&lt;/li&gt;&#xA;&lt;li&gt;The irony that Cat benefits more from my increased output than I do&lt;/li&gt;&#xA;&lt;li&gt;The Christian framing around calling, providence, stewardship, and fatigue&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;things-to-avoid&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Things To Avoid&lt;/span&gt; &lt;a href=&#34;#things-to-avoid&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;sounding like I am making universal claims about all AI use&lt;/li&gt;&#xA;&lt;li&gt;sounding bitter without being specific&lt;/li&gt;&#xA;&lt;li&gt;centering line-count metrics too much without translating them into responsibility&lt;/li&gt;&#xA;&lt;li&gt;pretending I have fully landed on a conclusion&lt;/li&gt;&#xA;&lt;li&gt;making this a complaint post about coworkers instead of a reflection on burden and change&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>I Was Saved From A Cult</title>
    <id>https://pype.dev/i-was-saved-from-a-cult/</id>
    <updated>2026-03-02T05:30:25Z</updated>
    <published>2026-03-02T05:30:25Z</published>
    <link href="https://pype.dev/i-was-saved-from-a-cult/" rel="alternate" type="text/html"></link>
    <summary type="text">I&#39;m getting coffee with a guy from church today, we&#39;re planning to swap some stories about how the Lord has worked in our lives in a few specific ways. He...</summary>
    <content type="html">&lt;h2 id=&#34;introduction&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Introduction&lt;/span&gt; &lt;a href=&#34;#introduction&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;m getting coffee with a guy from church today, we&amp;rsquo;re planning to swap some&#xA;stories about how the Lord has worked in our lives in a few specific ways. He&#xA;has some history in the New Age movement, and I&amp;rsquo;m very interested in that&#xA;story. My offering to him will be my own story, fairly short it might be, of&#xA;how God protected me from long-term involvement in a hypercharasmatic cult.&lt;/p&gt;&#xA;&lt;h2 id=&#34;theological-context&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Theological Context&lt;/span&gt; &lt;a href=&#34;#theological-context&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;This dove-tails well with Andrew&amp;rsquo;s sermon yesterday, noting that in many&#xA;Charasmatic circles the gift of the Holy Spirit becomes more important than the&#xA;person of Jesus who gives the Spirit, and who gives Salvation. This is the crux&#xA;of my own experience as well.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-group&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;The Group&lt;/span&gt; &lt;a href=&#34;#the-group&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The group was called &amp;ldquo;Wind and Fire Ministries&amp;rdquo; and they had their own purpose-built building out in the middle of nowhere,&#xA;but close enough for me to drive to. I grew up in Iowa, a 10 minute drive on&#xA;the interstate landed you pretty quick in the scene of any low-budget horror&#xA;movie. The building was definitely nice, there was even some land, but there&#xA;was nothing around it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;how-i-got-involved&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;How I Got Involved&lt;/span&gt; &lt;a href=&#34;#how-i-got-involved&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I barely remember how I got involved - a kid I was in high school with went there regularly and then one adult who helped out in my&#xA;church&amp;rsquo;s youth group did as well. I can still vividly remember him telling me&#xA;about an experience he had at this place - a &amp;ldquo;slayed in the spirit&amp;rdquo; &lt;a href=&#34;/kind/&#34; class=&#34;glossary-term&#34; title=&#34;kind - kubernetes in docker&#34; data-hover-title=&#34;kind&#34;&gt;kind&lt;/a&gt; of&#xA;experience.&lt;/p&gt;&#xA;&lt;h2 id=&#34;my-experience&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;My Experience&lt;/span&gt; &lt;a href=&#34;#my-experience&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I was hungry, desperate even, for spiritual experiences and this&#xA;&amp;ldquo;ministry&amp;rdquo; was extremely welcoming and accessible. My parents didn&amp;rsquo;t know&#xA;anything about what went on there, and to be fair they didn&amp;rsquo;t do a ton of&#xA;ultra-weird stuff when I was there&amp;hellip; flag-waving and tongues were enough to&#xA;probably ruffle some fundie feathers. I never fell to the ground shaking or&#xA;spoke in tongues (not for lack of awkwardly trying upon the instruction of a&#xA;member there though). I remember going one night and staying for hours while&#xA;the head honcho was doing annointings with oil and I wanted to be annointed&#xA;because I wanted to speak in tongues because I wanted an &amp;ldquo;experience&amp;rdquo;. By God&amp;rsquo;s&#xA;grace I was never given a super emotional experience there - the emphasis was&#xA;always on gifts and supernatural things, not on the person and work of the Lord&#xA;Jesus&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Cat Stock at 760</title>
    <id>https://pype.dev/cat-stock-at-760/</id>
    <updated>2026-02-20T05:09:08Z</updated>
    <published>2026-02-20T05:09:08Z</published>
    <link href="https://pype.dev/cat-stock-at-760/" rel="alternate" type="text/html"></link>
    <summary type="text">Cat stock is ridiculous... I remember 6 years ago or so someone at a volleyball meetup freaking out about 197, he couldn&#39;t wait to sell at 200...</summary>
    <content type="html">&lt;p&gt;Cat stock is ridiculous&amp;hellip; I remember 6 years ago or so someone at a volleyball&#xA;meetup freaking out about 197, he couldn&amp;rsquo;t wait to sell at 200&amp;hellip;&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>I’m back from the dead</title>
    <id>https://pype.dev/im-back-from-the-dead/</id>
    <updated>2026-01-23T05:38:29Z</updated>
    <published>2026-01-23T05:38:29Z</published>
    <link href="https://pype.dev/im-back-from-the-dead/" rel="alternate" type="text/html"></link>
    <summary type="text">The flu hit me like a freight train right at the start of the year, along with the most stress I&#39;ve ever felt at work dropping on me at the same time, I&#39;ve...</summary>
    <content type="html">&lt;p&gt;The flu hit me like a freight train right at the start of the year, along with&#xA;the most stress I&amp;rsquo;ve ever felt at work dropping on me at the same time, I&amp;rsquo;ve&#xA;been out of commission for what feels like forever. But this week I&amp;rsquo;ve been&#xA;bouncing back and I feel like a million bucks now&amp;hellip; and a lot has happened&lt;/p&gt;&#xA;&lt;p&gt;This post isn&amp;rsquo;t a review, it&amp;rsquo;s a note for me to come back and build on with&#xA;some more posts probably. My life has been a bit chaotic but in God&amp;rsquo;s good&#xA;grace on my life, that chaos hasn&amp;rsquo;t ruined anything (I am still wrestling with&#xA;one aspect of it) but something&amp;rsquo;s changed this year&amp;hellip; I&amp;rsquo;m not only back from&#xA;the flu over the last several weeks, I feel like I&amp;rsquo;ve been resurrected as a&#xA;developer. I&amp;rsquo;d written a few times last summer, feeling like I was in a rut,&#xA;and I felt good coming out of that low season, but as I&amp;rsquo;ve reflected it&amp;rsquo;s&#xA;really the last couple of years have been a slow descent into, not into&#xA;depression, but something akin to it&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Not only is that season either over or on pause, cause I&amp;rsquo;ve been buzzin on&#xA;building things for a week now like I can hardly remember, but I&amp;rsquo;ve had some&#xA;significant work changes. Longer reflection post to come - but after much toil&#xA;I am actually back in Caterpillar Autonomy, a group I left from burn-out 5&#xA;years ago. In fact, I&amp;rsquo;m on the same project, but with new eyes, new passion,&#xA;new knowledge and experience, and the fun part for me now is new tools. AI&#xA;hasn&amp;rsquo;t been my friend the whole time, I&amp;rsquo;ve vibe-coded some disasters,&#xA;pseudo-vibe-coded some cool stuff, but ultimately it&amp;rsquo;s not been a net positive&#xA;for me until this week. Getting a workflow ironed out in order to keep up with&#xA;the group&amp;rsquo;s pace, or the pace I want us to be at, has been exciting and I swear&#xA;I&amp;rsquo;ve done a month&amp;rsquo;s work of work since Monday&amp;hellip; no hype, no selling, just&#xA;letting you know that AI can&amp;rsquo;t do it all, but with good design it sure can&#xA;generate some code that doesn&amp;rsquo;t suck.&lt;/p&gt;&#xA;&lt;p&gt;So&amp;hellip; I&amp;rsquo;m back, almost from the dead, and it&amp;rsquo;s January 23 but let&amp;rsquo;s kick 2026&#xA;right in the cajones!&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Advent 2025 Calendar</title>
    <id>https://pype.dev/advent-2025-calendar/</id>
    <updated>2025-12-01T05:57:40Z</updated>
    <published>2025-12-01T05:57:40Z</published>
    <link href="https://pype.dev/advent-2025-calendar/" rel="alternate" type="text/html"></link>
    <summary type="text">advent-isaiah-8-17</summary>
    <content type="html">&lt;h2 id=&#34;sunday&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Sunday&lt;/span&gt; &lt;a href=&#34;#sunday&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Nov. 30&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Isaiah&#xA;8:17&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;As you look at your life or the world around you, where does&#xA;it seem like God is hiding his face? How do you hold onto&#xA;hope in those situations?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/advent-isaiah-8-17/&#34; class=&#34;wikilink&#34; data-title=&#34;Advent - Isaiah 8:17&#34; data-description=&#34;!!! note &amp;#34;Isaiah 8:17&amp;#34;&#34; data-date=&#34;2025-12-01&#34; data-preview=&#34;!!! note &amp;#34;Isaiah 8:17&amp;#34;&#34;&gt;Advent - Isaiah 8:17&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;monday&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Monday&lt;/span&gt; &lt;a href=&#34;#monday&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 1&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Psalm&#xA;39:7&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;What are you looking or hoping for in this Advent season?&#xA;Consider bringing those things to God.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/advent-psalm-39-7/&#34; class=&#34;wikilink&#34; data-title=&#34;Advent - Psalm 39:7&#34; data-description=&#34;!!! note &amp;#34;Psalm 39:7&amp;#34;&#34; data-date=&#34;2025-12-01&#34; data-preview=&#34;!!! note &amp;#34;Psalm 39:7&amp;#34;&#34;&gt;Advent - Psalm 39:7&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;tuesday&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Tuesday&lt;/span&gt; &lt;a href=&#34;#tuesday&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 2&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Psalm&#xA;130:7&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;How have you experienced God’s consistent,&#xA;dependable love in the past? How does that ground&#xA;your hope for the future?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/advent-psalm-130-7/&#34; class=&#34;wikilink&#34; data-title=&#34;Advent - Psalm 130:7&#34; data-description=&#34;!!! note &amp;#34;Psalm 130:7&amp;#34;&#34; data-date=&#34;2025-12-02&#34; data-preview=&#34;!!! note &amp;#34;Psalm 130:7&amp;#34;&#34;&gt;Advent - Psalm 130:7&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;wednesday&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Wednesday&lt;/span&gt; &lt;a href=&#34;#wednesday&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 3&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Isaiah&#xA;40:31&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Consider the parts of life that feel most exhausting right&#xA;now. What could it look like to put your hope in God for&#xA;strength and direction?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;thursday&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Thursday&lt;/span&gt; &lt;a href=&#34;#thursday&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 4&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;1 Peter&#xA;1:3&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;How does Jesus’ resurrection from death shape your hope&#xA;for both the future and life today?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;friday&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Friday&lt;/span&gt; &lt;a href=&#34;#friday&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 5&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Romans&#xA;8:20-21&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;What will life be like in God&#39;s fully liberated and healed&#xA;world? What will be the best part of that world?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;saturday&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Saturday&lt;/span&gt; &lt;a href=&#34;#saturday&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 6&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Romans&#xA;8:24-25&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;What does it look like for you to actively but patiently&#xA;wait for God right now?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Watch the Hope Video&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;DAY VERSE REFLECTION QUESTION&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;sunday-1&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Sunday&lt;/span&gt; &lt;a href=&#34;#sunday-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 7&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Isaiah&#xA;26:3&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;What situations of conflict are you currently facing?&#xA;Where are you struggling to find internal peace?&#xA;Consider inviting God into those situations.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;monday-1&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Monday&lt;/span&gt; &lt;a href=&#34;#monday-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 8&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Isaiah&#xA;9:6-7&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;As you reflect on your relationships with others and the&#xA;state of the world, how does God’s promise to bring&#xA;unending peace among all humankind make you feel?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;tuesday-1&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Tuesday&lt;/span&gt; &lt;a href=&#34;#tuesday-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 9&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Zechariah 9:9-10&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;How is God’s promised king different from the rulers of&#xA;this world, who often bring “peace” through domination&#xA;and violence?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;wednesday-1&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Wednesday&lt;/span&gt; &lt;a href=&#34;#wednesday-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 10&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;John&#xA;16:33&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;What do you think Jesus means when he says that he has&#xA;&amp;quot;overcome the world?&amp;quot; How might that understanding bring&#xA;peace during times of trouble?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;thursday-1&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Thursday&lt;/span&gt; &lt;a href=&#34;#thursday-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 11&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Colossians 1:19-20&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;When Paul says “all things” here, he means everything God&#xA;created, including you. How does it feel to know that God is&#xA;reconciling everything to himself?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;friday-1&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Friday&lt;/span&gt; &lt;a href=&#34;#friday-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 12&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;&#xA;Ephesians 2:14-15&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Where in your world are peacemakers needed right now?&#xA;What might it look like to bring Jesus’ kind of peace to&#xA;these places?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;saturday-1&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Saturday&lt;/span&gt; &lt;a href=&#34;#saturday-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 13&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Ephesians&#xA;4:3&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;What might it look like for us to “keep the unity of the Spirit”&#xA;as agents of God’s peace today?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Watch the Peace Video&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;DAY VERSE REFLECTION QUESTION&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;sunday-2&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Sunday&lt;/span&gt; &lt;a href=&#34;#sunday-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 14&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Psalm 105:43&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;The ancient Israelites experienced inexpressible joy when&#xA;God brought them out of slavery in Egypt. When in your life&#xA;have you experienced moments of inexpressible joy?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;monday-2&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Monday&lt;/span&gt; &lt;a href=&#34;#monday-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 15&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Isaiah 51:3&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;What would it be like for all of the broken-down, desolate&#xA;places in your community to be made new, like a&#xA;flourishing garden?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;tuesday-2&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Tuesday&lt;/span&gt; &lt;a href=&#34;#tuesday-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 16&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Luke 2:10-11&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;How do you think you would feel if your people had been&#xA;suffering under foreign rule for centuries and you saw an&#xA;angel appear, announcing that your long-awaited king&#xA;had finally come?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;wednesday-2&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Wednesday&lt;/span&gt; &lt;a href=&#34;#wednesday-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 17&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;John 15:10-11&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;What’s the difference between commanding people with a&#xA;motivation to control them and commanding people with a&#xA;motivation to bless them and fill their lives with joy? How do&#xA;Jesus’ commands bring joy?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;thursday-2&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Thursday&lt;/span&gt; &lt;a href=&#34;#thursday-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 18&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Matthew 5:11-12&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;What’s your first impulse when you’re insulted or&#xA;persecuted? Why do you think Jesus tells us to rejoice&#xA;when people mistreat us for following his ways?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;friday-2&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Friday&lt;/span&gt; &lt;a href=&#34;#friday-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 19&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;2 Corinthians&#xA;6:10&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;When we face difficult circumstances, how can we hold&#xA;both joy and grief together?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;saturday-2&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Saturday&lt;/span&gt; &lt;a href=&#34;#saturday-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 20&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Romans 15:13&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;As God fills us with hope, that hope spills out onto others.&#xA;What words or actions could you offer in order to give&#xA;hope to others?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Watch the Joy Video&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;DAY VERSE REFLECTION QUESTION&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;sunday-3&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Sunday&lt;/span&gt; &lt;a href=&#34;#sunday-3&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 21&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Mark 12:29-30&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;What do you think it looks like to love God with everything&#xA;you’ve got, including your strength, affection, intellect, and&#xA;entire being?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;monday-3&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Monday&lt;/span&gt; &lt;a href=&#34;#monday-3&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 22&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Mark&#xA;12:29-31&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;How does loving your neighbor as yourself relate&#xA;to loving God?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;tuesday-3&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Tuesday&lt;/span&gt; &lt;a href=&#34;#tuesday-3&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 23&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Luke 6:35&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;When you read about God being kind to ungrateful and&#xA;wicked people, how do you feel?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;wednesday-3&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Wednesday&lt;/span&gt; &lt;a href=&#34;#wednesday-3&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 24&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;1 John 4:8-9&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;What do you think it means when the Bible says&#xA;God not only acts in love but is love?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;thursday-3&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Thursday&lt;/span&gt; &lt;a href=&#34;#thursday-3&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Dec. 25&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;1 John 4:17&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;How would you describe the difference between Jesus’&#xA;way of love and the common understanding of love as&#xA;something you can fall in or out of?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;Watch the Love Video&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Homelabbing Realization - Configs and Git</title>
    <id>https://pype.dev/homelabbing-realization-configs-and-git/</id>
    <updated>2025-11-13T05:48:15Z</updated>
    <published>2025-11-13T05:48:15Z</published>
    <link href="https://pype.dev/homelabbing-realization-configs-and-git/" rel="alternate" type="text/html"></link>
    <summary type="text">I&#39;m back to brainstorming migrations away from Docker Compose to something that solves multi-node networking and secrets but I don&#39;t want to go to k8s... so...</summary>
    <content type="html">&lt;h2 id=&#34;realization&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Realization&lt;/span&gt; &lt;a href=&#34;#realization&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;m back to brainstorming migrations away from &lt;a href=&#34;/docker/&#34; class=&#34;glossary-term&#34; title=&#34;docker - container runtime&#34; data-hover-title=&#34;docker&#34;&gt;Docker&lt;/a&gt; Compose to something that&#xA;solves multi-node networking and secrets but I don&amp;rsquo;t want to go to k8s&amp;hellip; so my&#xA;options are probably Docker Swarm or Nomad. As I wrestle mentally here I was&#xA;thinking about one of my issues with multi-node setup is that I still keep&#xA;everything out of one git repo, so if something gets managed remotely then I&#xA;get out of sync. Best example is dashy, Due to some constraint of wanting to be&#xA;as close to zero-day deployment-ready as possible, I think I overcomplicate&#xA;some of the simple stuff - like it&amp;rsquo;s ok to just have to put a file on a server&#xA;for a container to start the first time&amp;hellip; That doesn&amp;rsquo;t mean ansible is a&#xA;requirement, in fact lately I&amp;rsquo;ve just leaned into just recipes. But even then,&#xA;I cornered myself into tracking my dashy config in git, so I&amp;rsquo;m hesitant to ever&#xA;update it in the browser cause I&amp;rsquo;ll have to redownload the config, reconcile&#xA;the formatting differences in my repo (there&amp;rsquo;s a reason for this that a linter&#xA;doesn&amp;rsquo;t ssolve&amp;hellip;), etc&amp;hellip;. but in all of my brainstorming I just decided that&#xA;my dashy config doesn&amp;rsquo;t have to live in git&amp;hellip; it can just be on the zfs&#xA;storage, which is backed up, and configured via the app itself&amp;hellip; the config&#xA;can simply be apart of the data and container lifecycle, it doesn&amp;rsquo;t have to be&#xA;apart of the infra lifecycle.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Facism and Heresy - Words Matter</title>
    <id>https://pype.dev/facism-and-heresy-words-matter/</id>
    <updated>2025-11-01T06:27:33Z</updated>
    <published>2025-11-01T06:27:33Z</published>
    <link href="https://pype.dev/facism-and-heresy-words-matter/" rel="alternate" type="text/html"></link>
    <summary type="text">This is a short reflection/semi-open letter to a friend I&#39;ve been having a &gt; conversation with for a couple weeks</summary>
    <content type="html">&lt;blockquote&gt;&#xA;&lt;p&gt;This is a short reflection/semi-open letter to a friend I&amp;rsquo;ve been having a&#xA;conversation with for a couple weeks&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Name-calling in a rhetorical exchange is such a school-yard bully, low IQ,&#xA;desperate, degenerate move when it&amp;rsquo;s used in lieu of data&amp;hellip; I have 2 scenarios&#xA;in my head that bring light to one another.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition warning&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Warning&lt;/p&gt;&#xA;&lt;p&gt;Today the words &amp;ldquo;Nazi&amp;rdquo; and &amp;ldquo;Facist&amp;rdquo; are so over-used it&amp;rsquo;s moved beyond sickening to boring.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;However, the usage of these words has led to violence, and a lot of it&#xA;in my opinion. The dangerous rhetoric is a key player in the multiple&#xA;Trump-assassination attempts, various acts of violence against other&#xA;conservatives, specifically, (because who else does the Left call a Facist except&#xA;anyone remotely moderate anymore), and most notably the murder of Charlie Kirk.&#xA;I find the rhetoric super dangerous because I&amp;rsquo;m not a politician, but boy can I&#xA;tell you for sure that Charlie was a moderate, and if they came for him then&#xA;consider my reflection: &lt;a href=&#34;/reflection-they-can-come-for-anyone/&#34; class=&#34;wikilink&#34; data-title=&#34;Reflection - They Can Come For Anyone&#34; data-description=&#34;At some point in the recent history of my country, political tensions began increasing exponentially between our 2 parties, and I had hardly cared until...&#34; data-date=&#34;2025-09-11&#34; data-preview=&#34;At some point in the recent history of my country, political tensions began increasing exponentially between our 2 parties, and I had hardly cared until...&#34;&gt;Reflection - They Can Come For Anyone&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;One of the problems I see here is that many people can&amp;rsquo;t define &amp;ldquo;Nazi&amp;rdquo; or&#xA;&amp;ldquo;Facist&amp;rdquo;. To the Left, these words just describe someone they disagree with,&#xA;and it&amp;rsquo;s turning out - ultimately someone they think would be better off dead.&lt;/p&gt;&#xA;&lt;p&gt;It reminds me of a kid at a summer camp I worked at about 10 years ago. The&#xA;camp was all about Christian apologetics - great times, good discussions, lots&#xA;of great content, etc. One year there was a 17 or 18 year old boy here, super&#xA;fundamentalist in his beliefs&amp;hellip; no harm no foul here. But he demonstrated a&#xA;habit of calling &lt;strong&gt;anything&lt;/strong&gt; that differ&amp;rsquo;ed from his interpretation of a&#xA;passage of scripture as heresy. Now&amp;hellip; here&amp;rsquo;s the thing, it&amp;rsquo;s not heresy to not&#xA;be a young-earth-creationist. But something that is true is that people have&#xA;been &lt;strong&gt;put to death&lt;/strong&gt; over heresy in the history of the Church&amp;hellip;. and yet this&#xA;kid felt comfortable labeling anyone a heretic who was more fluent in Hebrew&#xA;than him&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;So what do I see? - There&amp;rsquo;s similarities between that immature kid and&#xA;practically anyone using the words &amp;ldquo;Nazi&amp;rdquo; or &amp;ldquo;Facist&amp;rdquo; to describe American&#xA;politics right now - are the same type of person to me. That person feels a&#xA;deep care for the thing they think they&amp;rsquo;re protecting, but in reality they&amp;rsquo;re&#xA;participating in a violent pattern of history that &lt;strong&gt;they do not understand&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;So to us today, in or out of the Church, involved or not involved with&#xA;politics&amp;hellip; We need to recognize that words matter. And to carelessly use words&#xA;that eventually excuse violence is at best, ignorant. There&amp;rsquo;s nothing wrong&#xA;with ignorance, but a good measure of a man is what he does when his ignorance&#xA;has been pointed out&amp;hellip; Will you be apart of the solution? Or continue to fan&#xA;the flames?&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Testing Safari Formatting</title>
    <id>https://pype.dev/testing-safari-formatting/</id>
    <updated>2025-10-12T13:51:15Z</updated>
    <published>2025-10-12T13:51:15Z</published>
    <link href="https://pype.dev/testing-safari-formatting/" rel="alternate" type="text/html"></link>
    <summary type="text">**</summary>
    <content type="html">&lt;p&gt;&lt;strong&gt;bolded with asterisks&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;dunder&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;single asterisk&lt;/em&gt;&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Book Review - Dula, Fig, and the Wisdom of Old Sycamore</title>
    <id>https://pype.dev/book-review-dula-fig-and-the-wisdom-of-old-sycamore/</id>
    <updated>2025-09-20T07:04:19Z</updated>
    <published>2025-09-20T07:04:19Z</published>
    <link href="https://pype.dev/book-review-dula-fig-and-the-wisdom-of-old-sycamore/" rel="alternate" type="text/html"></link>
    <summary type="text">Dula, Fig, and the Wisdom of Old Sycamore is a beautifully illustrated and powerful story that gives kids an accessible framework to better understand their...</summary>
    <content type="html">&lt;p&gt;Dula, Fig, and the Wisdom of Old Sycamore is a beautifully illustrated and&#xA;powerful story that gives kids an accessible framework to better understand their&#xA;world - hard things are easier with kindness. Old Sycamore helps young Dula&#xA;understand herself a little better through commentary on her mother&amp;rsquo;s favorite&#xA;story (for which Dula was named). He tends to Dula&amp;rsquo;s frustration in a loving&#xA;way and dismisses her back to her real life with gentleness. Kindness is a&#xA;core-value of our household, and I loved sharing this story with&#xA;my kids. I look forward to reading it many times over the next several years!&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.goodreads.com/book/show/241655315-dula-fig-and-the-wisdom-of-old-sycamore&#34; style=&#34;float: left; padding-right: 20px&#34;&gt;&lt;img border=&#34;0&#34; alt=&#34;Dula, Fig, and the Wisdom of Old Sycamore&#34; src=&#34;https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1757946617l/241655315._SX98_.jpg&#34; /&gt;&lt;/a&gt;&lt;a href=&#34;https://www.goodreads.com/book/show/241655315-dula-fig-and-the-wisdom-of-old-sycamore&#34;&gt;Dula, Fig, and the Wisdom of Old Sycamore&lt;/a&gt; by &lt;a href=&#34;https://www.goodreads.com/author/show/55372642.Elizabeth_Lett&#34;&gt;Elizabeth Lett&lt;/a&gt;&lt;br/&gt;&#xA;My rating: &lt;a href=&#34;https://www.goodreads.com/review/show/7929998013&#34;&gt;5 of 5 stars&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&#xA;Dula, Fig, and the Wisdom of Old Sycamore is a beautifully illustrated and&lt;br /&gt;powerful story that gives kids an accessible framework to better understand their&lt;br /&gt;world - hard things are easier with kindness. Old Sycamore helps young Dula&lt;br /&gt;understand herself a little better through commentary on her mother&amp;rsquo;s favorite&lt;br /&gt;story (for which Dula was named). He tends to Dula&amp;rsquo;s frustration in a loving&lt;br /&gt;way and dismisses her back to her real life with gentleness. Kindness is a&lt;br /&gt;core-value of our household, and I loved sharing this story with&lt;br /&gt;my kids. I look forward to reading it many times over the next several years!&lt;br /&gt;&#xA;&lt;br/&gt;&lt;br/&gt;&#xA;&lt;a href=&#34;https://www.goodreads.com/review/list/120682317-nic-payne&#34;&gt;View all my reviews&lt;/a&gt;&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>That Guy Can Do Anything</title>
    <id>https://pype.dev/that-guy-can-do-anything/</id>
    <updated>2025-09-10T09:11:20Z</updated>
    <published>2025-09-10T09:11:20Z</published>
    <link href="https://pype.dev/that-guy-can-do-anything/" rel="alternate" type="text/html"></link>
    <summary type="text">&#34;That guy can do anything!&#34; sounds nice, right? What if it didn&#39;t matter... what if you draw corporate cat-calls for your sexy skills, excel every year,...</summary>
    <content type="html">&lt;p&gt;&amp;ldquo;That guy can do anything!&amp;rdquo; sounds nice, right? What if it didn&amp;rsquo;t matter&amp;hellip; what if you draw corporate cat-calls for your sexy skills, excel every year, receieve accolades but you were told to change everything for no reason or else be fired&amp;hellip;&lt;/p&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
  <entry>
    <title>Questions for Dad about the Navy</title>
    <id>https://pype.dev/questions-for-dad-about-the-navy/</id>
    <updated>2025-09-01T07:56:24Z</updated>
    <published>2025-09-01T07:56:24Z</published>
    <link href="https://pype.dev/questions-for-dad-about-the-navy/" rel="alternate" type="text/html"></link>
    <summary type="text">What did a typical day look like when the submarine was underway? 2. How did the 18-hour day with 6-hour shifts affect everyone&#39;s sense of time? 3. How did...</summary>
    <content type="html">&lt;h2 id=&#34;submarine-life&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Submarine Life&lt;/span&gt; &lt;a href=&#34;#submarine-life&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;What did a typical day look like when the submarine was underway?&lt;/li&gt;&#xA;&lt;li&gt;How did the 18-hour day with 6-hour shifts affect everyone&amp;rsquo;s sense of time?&lt;/li&gt;&#xA;&lt;li&gt;How did you and the crew keep busy or entertained during long patrols?&lt;/li&gt;&#xA;&lt;li&gt;Can you describe the living quarters? What was the hardest part about the limited space?&lt;/li&gt;&#xA;&lt;li&gt;What meals do you remember best?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;the-job&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;The Job&lt;/span&gt; &lt;a href=&#34;#the-job&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ol start=&#34;6&#34;&gt;&#xA;&lt;li&gt;What systems were you directly responsible for as a machinist?&lt;/li&gt;&#xA;&lt;li&gt;How did your team monitor and maintain the reactor? Any emergency drills that stick out?&lt;/li&gt;&#xA;&lt;li&gt;What&amp;rsquo;s the most challenging mechanical problem you dealt with on the sub?&lt;/li&gt;&#xA;&lt;li&gt;What &lt;a href=&#34;/kind/&#34; class=&#34;glossary-term&#34; title=&#34;kind - kubernetes in docker&#34; data-hover-title=&#34;kind&#34;&gt;kind&lt;/a&gt; of training did you receive before serving underwater? How did reality differ?&lt;/li&gt;&#xA;&lt;li&gt;What did it take to &amp;ldquo;earn your dolphins&amp;rdquo;?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;technology&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Technology&lt;/span&gt; &lt;a href=&#34;#technology&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ol start=&#34;11&#34;&gt;&#xA;&lt;li&gt;What pieces of technology or engineering challenges stand out from working with the reactor?&lt;/li&gt;&#xA;&lt;li&gt;How were water, air, and electricity produced and maintained?&lt;/li&gt;&#xA;&lt;li&gt;Did you work with any systems that have since been declassified?&lt;/li&gt;&#xA;&lt;li&gt;What mechanical or safety upgrades have been made since your time that you wish you&amp;rsquo;d had?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;the-experience&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;The Experience&lt;/span&gt; &lt;a href=&#34;#the-experience&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ol start=&#34;15&#34;&gt;&#xA;&lt;li&gt;What kind of camaraderie did you develop with the crew?&lt;/li&gt;&#xA;&lt;li&gt;Did your team face any emergencies or close calls with the reactor?&lt;/li&gt;&#xA;&lt;li&gt;How did you cope with being underwater for long periods?&lt;/li&gt;&#xA;&lt;li&gt;Were there any traditions or unwritten rules among the machinists?&lt;/li&gt;&#xA;&lt;li&gt;What was the relationship like between machinists, electricians, and other crew?&lt;/li&gt;&#xA;&lt;li&gt;If you could go back, what advice would you give to someone starting as a machinist on a nuclear sub today?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;</content>
    <author>
      <name>Nic Payne</name>
      <uri>https://pype.dev</uri>
    </author>
  </entry>
</feed>