<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:fh="http://purl.org/syndication/history/1.0">
  <title>Posts tagged: blog Archive</title>
  <id>https://go.waylonwalker.com/tags/blog/archive/atom.xml</id>
  <updated>2026-03-23T12:26:22Z</updated>
  <subtitle>All posts with the tag &#34;blog&#34;</subtitle>
  <link href="https://go.waylonwalker.com/tags/blog/" rel="alternate" type="text/html"></link>
  <link href="https://go.waylonwalker.com/tags/blog/archive/atom.xml" rel="self" type="application/atom+xml"></link>
  <link href="https://go.waylonwalker.com/tags/blog/atom.xml" rel="current" type="application/atom+xml"></link>
  <author>
    <name>Waylon Walker</name>
  </author>
  <generator uri="https://github.com/WaylonWalker/markata-go">markata-go</generator>
  <fh:complete></fh:complete>
  <entry>
    <title>💭 More Details Than You Probably Wanted to Know About Recent Upd...</title>
    <id>https://go.waylonwalker.com/thought-949/</id>
    <updated>2026-03-23T12:26:22Z</updated>
    <published>2026-03-23T12:26:22Z</published>
    <link href="https://go.waylonwalker.com/thought-949/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://blog.jim-nielsen.com/2026/notes-site-updates/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://blog.jim-nielsen.com/2026/notes-site-updates/&#34; class=&#34;embed-card-link  has-avatar has-avatar-before&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/blog.jim-nielsen.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/blog.jim-nielsen.com.ico&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;More Details Than You Probably Wanted to Know About Recent Updates to My Notes Site&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Writing about the big beautiful mess that is making things for the world wide web.&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;blog.jim-nielsen.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;I love the level of thought that Jim has put into these changes and making sure that urls don’t change.  I’ve got a big change in flight to my main site and this is one of the reasons that I’ve been sitting on it so long.  I want to make sure urls arent broken, redirects work as they should, and there are no 404’s from existing urls.  Currently the new version only exists on a separate deployement &lt;a href=&#34;https://go.waylonwalker.com/&#34;&gt;https://go.waylonwalker.com/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I also added the ability to “shuffle” between posts. This is mostly for myself. I like to randomly jump through notes I’ve published in the past for reoccurring inspiration&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Love this idea and have it on my new site already as well, and have really enjoyed using it by pressing it a dozen or so times over the course of a few sessions.  It highlights that I have too many posts like stars and thoughts and I should do some weighting to main posts.  mine is at &lt;a href=&#34;https://go.waylonwalker.com/random/&#34;&gt;https://go.waylonwalker.com/random/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 The web is bearable with RSS</title>
    <id>https://go.waylonwalker.com/thought-943/</id>
    <updated>2026-03-09T09:00:55Z</updated>
    <published>2026-03-09T09:00:55Z</published>
    <link href="https://go.waylonwalker.com/thought-943/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://pluralistic.net/2026/03/07/reader-mode/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://pluralistic.net/2026/03/07/reader-mode/&#34; class=&#34;embed-card-link  has-avatar has-avatar-before&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/pluralistic.net.jpg&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/pluralistic.net.jpg&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Pluralistic: The web is bearable with RSS (07 Mar 2026) – Pluralistic: Daily links from Cory Doctorow&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;pluralistic.net&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;It’s wild how much of a hit Google took from killing reader, almost any time I hear about killedbygoogle, reader is the top of the list.  Its the thing that we all remember being really good and the incumbants just did not match up.  Somehow we are here 13 years later still bitching about it, despite it only having a 6 year run.  You should probably get an rss reader, and follow some incredible people that make feeds.  Most sites that produce content have the ability to subscribe over rss.  Unlike @pluralistic.net, I dont read in my reader.  My reader is just a list of links out to the web and I typically read it how the author intended on their site.  I nod a long to Cory’s enshitified internet just as much as the next guy, I love text based interfaces, I despise  the bloat that js has brought on.  But I don’t believe all js is bad, I don’t turn it off, even though he has me questioning this now.  News sites kinda suck, we can agree there, but its rare that a small indie web creator has fully enshitified their site with js.  I don’t buy that.  Sub to the feeds.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 I need a new blog to subscribe to. Know… | justin․searls․co</title>
    <id>https://go.waylonwalker.com/thought-942/</id>
    <updated>2026-03-09T08:31:53Z</updated>
    <published>2026-03-09T08:31:53Z</published>
    <link href="https://go.waylonwalker.com/thought-942/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://justin.searls.co/takes/2026-03-08-23h18m29s/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://justin.searls.co/takes/2026-03-08-23h18m29s/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://justin.searls.co/img/face.jpg&#34; alt=&#34;Justin Searls&#xA;@searls — &#xA;I need a new blog to subscribe to. Know any you think I&amp;#39;d like? E-mail me: justin@searls.co&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: Justin Searls&#xA;@searls — &#xA;I need a new blog to subscribe to. Know any you think I&amp;#39;d like? E-mail me: justin@searls.co&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Justin Searls&#xA;@searls&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;&#xA;I need a new blog to subscribe to. Know any you think I&amp;#39;d like? E-mail me: justin@searls.co&#xA;&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;justin․searls․co · justin.searls.co&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Sent Justin my list &lt;a href=&#34;https://go.waylonwalker.com/blogroll&#34;&gt;https://go.waylonwalker.com/blogroll&lt;/a&gt;, will soon be on the main site, but right now its only on the go subdomain.  I’ve long had reader.waylonwalker.com, but thats soon going to be wrapped into the main site as well at /reader.&lt;/p&gt;&#xA;&lt;p&gt;I’m interested to see what good stuff Justin gets and if you have any good ones to share reply.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Reflections on 13 years and 1,000 posts of writing on my blog</title>
    <id>https://go.waylonwalker.com/thought-909/</id>
    <updated>2026-01-13T03:15:54Z</updated>
    <published>2026-01-13T03:15:54Z</published>
    <link href="https://go.waylonwalker.com/thought-909/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://hamy.xyz/blog/2026-01_1000-blog-posts</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://hamy.xyz/blog/2026-01_1000-blog-posts&#34; class=&#34;embed-card-link  has-avatar has-avatar-before&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/hamy.xyz.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/hamy.xyz.png&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Reflections on 13 years and 1,000 posts of writing on my blog - HAMY&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;hamy.xyz&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The answer is I do it habitually. If there’s a big enough idea I’ve had floating around in my head and I think others might find it useful / interesting then I usually think it’s worth logging it somewhere. If I don’t, I’ll likely just keep thinking about it so might as well get it out of my head and on the internet where people can find it.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://hammy.xyz&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/hammy.xyz.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/hammy.xyz.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;hammy&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;This is how you do it.  If you want to do something, you need to make it a habit. Something you crave, something you need.  I need to write my ideas down in this blog, it helps me index ideas for later, but more importantly it helps me flesh them out and think through real things.&lt;/p&gt;&#xA;&lt;p&gt;Congrats on 1k, your site is awesome &lt;a href=&#34;https://hammy.xyz&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/hammy.xyz.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/hammy.xyz.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Hammy&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Rune Admonition</title>
    <id>https://go.waylonwalker.com/rune-admonition/</id>
    <updated>2026-01-07T18:18:52Z</updated>
    <published>2026-01-07T18:18:52Z</published>
    <link href="https://go.waylonwalker.com/rune-admonition/" rel="alternate" type="text/html"></link>
    <content type="html">&lt;link rel=&#34;preconnect&#34; href=&#34;https://fonts.googleapis.com&#34;/&gt;&#xA;&lt;link rel=&#34;preconnect&#34; href=&#34;https://fonts.gstatic.com&#34; crossorigin=&#34;&#34;/&gt;&#xA;&lt;link href=&#34;https://fonts.googleapis.com/css2?family=Noto+Sans+Runic&amp;amp;display=swap&#34; rel=&#34;stylesheet&#34;/&gt;&#xA;&lt;style&gt;&#xA;.admonition .rune {&#xA;}&#xA;&lt;/style&gt;&#xA;&lt;p&gt;!!! Rune&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;ᚨᛚᛚᚨᛁ ᛗᚨᚾᚾᚨ ᚠᚱᛖᛁ&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;!!! Rune&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;hi hello&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;div class=&#34;admonition tip&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Tip&lt;/p&gt;&#xA;&lt;p&gt;Here’s a tip&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Photoshop for text — Steph Ango</title>
    <id>https://go.waylonwalker.com/thought-902/</id>
    <updated>2026-01-06T02:48:34Z</updated>
    <published>2026-01-06T02:48:34Z</published>
    <link href="https://go.waylonwalker.com/thought-902/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://stephango.com/photoshop-for-text</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://stephango.com/photoshop-for-text&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://stephango.com/assets/covers/photoshop-for-text.png&#34; alt=&#34;Photoshop for text — In the near future, transforming text over an entire document will become as commonplace as filtering images.&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: Photoshop for text — In the near future, transforming text over an entire document will become as commonplace as filtering images.&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Photoshop for text&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;In the near future, transforming text over an entire document will become as commonplace as filtering images.&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;Steph Ango · stephango.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;While the non deterministic nature of llms scare the heck out of me in the sense of just cutting it loose on my writing.  letting it go through all of my files and just edit them.  I do like the idea of mundane tools like “desaturate”, “Gaussian blur”, evolving out of it for text.  I don’t yet see this with the tools we have now, but it will be interesting to see them evolve.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 File over app — Steph Ango</title>
    <id>https://go.waylonwalker.com/thought-901/</id>
    <updated>2026-01-05T18:54:06Z</updated>
    <published>2026-01-05T18:54:06Z</published>
    <link href="https://go.waylonwalker.com/thought-901/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://stephango.com/file-over-app</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://stephango.com/file-over-app&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://stephango.com/assets/covers/file-over-app.png&#34; alt=&#34;File over app — If you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read. Use tools that give you...&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: File over app — If you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read. Use tools that give you...&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;File over app&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;If you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read. Use tools that give you...&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;Steph Ango · stephango.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;file over app is a fantastic philosophy laid out well and concisely documented very well in this post.  The idea is that tools will change, we will want to use different tools, different editors, different computers over time.  What’s likely to outlast everything is plain text files that we can interact with a wide variety of tools.  Not encrypted in dedicated formats that die with our tools, but in plain text where a computer from 2160 is likey as capable of reading the file as one from 1960 would be.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 You Might Also Like: My Notes Blog - Jim Nielsen’s Blog</title>
    <id>https://go.waylonwalker.com/thought-895/</id>
    <updated>2025-12-19T16:11:31Z</updated>
    <published>2025-12-19T16:11:31Z</published>
    <link href="https://go.waylonwalker.com/thought-895/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://blog.jim-nielsen.com/2025/you-might-also-like-my-notes-blog/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://blog.jim-nielsen.com/2025/you-might-also-like-my-notes-blog/&#34; class=&#34;embed-card-link  has-avatar has-avatar-before&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/blog.jim-nielsen.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/blog.jim-nielsen.com.ico&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;You Might Also Like: My Notes Blog&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Writing about the big beautiful mess that is making things for the world wide web.&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;blog.jim-nielsen.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;I really like a good link blog, it’s the old timers version of a reaction video.  It gives me new posts to discover from other writers, and gives additional perspectives from ones I trust enough to add to my RSS.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;It’s nice to have a place where I can jot down a few notes, fire off my reaction, and nobody can respond to it lol. At least, not in any easy, friction-less way. You’d have to go out of your way to read my commentary, find my contact info, and fire off a message (critiquing or praising). That’s how I like it. Cuts through the noise.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Ditto Jim.  I’ve oddly found mine more useful to search than blog posts, zettlekaten, notes, whatever you want to call them.  For me writing something down makes it more concrete in my brain that I’m less likely to need to go reference, but I often need to re read or references posts from others, this is where &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;Thoughts&lt;/a&gt; comes in handy for me&lt;/p&gt;&#xA;&lt;p&gt;Like Jim I have a bunch of &lt;a href=&#34;/feeds/&#34; class=&#34;wikilink&#34; data-title=&#34;feeds&#34; data-description=&#34;I have several feeds that you can consume my content with. Many posts will cross between them, so if you would like to follow a certain stream of content in...&#34; data-date=&#34;2024-04-02&#34; data-preview=&#34;I have several feeds that you can consume my content with. Many posts will cross between them, so if you would like to follow a certain stream of content in...&#34;&gt;feeds&lt;/a&gt; you can subscribe to if you want some or all of my stuff, but I aggregate everything to the same root site.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 “You should never build a CMS” | Sanity</title>
    <id>https://go.waylonwalker.com/thought-894/</id>
    <updated>2025-12-17T15:21:41Z</updated>
    <published>2025-12-17T15:21:41Z</published>
    <link href="https://go.waylonwalker.com/thought-894/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://www.sanity.io/blog/you-should-never-build-a-cms</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://www.sanity.io/blog/you-should-never-build-a-cms&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://www.sanity.io/static/images/opengraph/social.png&#34; alt=&#34;“You should never build a CMS” | Sanity — Lee Robinson migrated cursor.com off Sanity. He made good points. Here&amp;#39;s what he missed.&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: “You should never build a CMS” | Sanity — Lee Robinson migrated cursor.com off Sanity. He made good points. Here&amp;#39;s what he missed.&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;“You should never build a CMS” | Sanity&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Lee Robinson migrated cursor.com off Sanity. He made good points. Here&amp;#39;s what he missed.&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;Sanity.io · sanity.io&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Such a good breakdown of the leerob article, that is hitting everywhere right now.  Feels like sanity was just a bit late to getting things right and it would have just worked for them how leerob was trying to use it, but MCP sucked so he jumped.&lt;/p&gt;&#xA;&lt;p&gt;Reading their loose descriptions of a CMS, its an interesting realization to realize I’m rolling my own cms.  I kinda feel like theres a few inspiration features to take from here, but I have no regrets.  As a developer I like being able to build my own tools, I like being able to search and edit from nvim, and not have to write GROQ queries, and transforms.  There were some really good points here that as I get more and more content on my personal site, I do kinda feel it.  I’m surprised there is not more tooling that does some of these things for piles of markdown.&lt;/p&gt;&#xA;&lt;p&gt;pinning this to re-read later, feels like a lot of good tidbits here.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Ping 11</title>
    <id>https://go.waylonwalker.com/ping-11/</id>
    <updated>2025-12-16T08:11:43Z</updated>
    <published>2025-12-16T08:11:43Z</published>
    <link href="https://go.waylonwalker.com/ping-11/" rel="alternate" type="text/html"></link>
    <summary type="text">Naming things is hard, pings will now be numbered.</summary>
    <content type="html">&lt;p&gt;Naming things is hard, pings will now be numbered.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>og</title>
    <id>https://go.waylonwalker.com/og/</id>
    <updated>2025-12-09T12:49:21Z</updated>
    <published>2025-12-09T12:49:21Z</published>
    <link href="https://go.waylonwalker.com/og/" rel="alternate" type="text/html"></link>
    <summary type="text">OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...</summary>
    <content type="html">&lt;p&gt;OG is short for open graph, a set of standard meta tags that are used for&#xA;social media sharing.  This is what tells other websites how to describe and&#xA;display your site when shared on social media, text messages, or discord.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Deleting Code for Performance – David Bushell – Web Dev (UK)</title>
    <id>https://go.waylonwalker.com/thought-879/</id>
    <updated>2025-12-04T16:12:19Z</updated>
    <published>2025-12-04T16:12:19Z</published>
    <link href="https://go.waylonwalker.com/thought-879/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://dbushell.com/2025/12/04/deleting-code-for-performance/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://dbushell.com/2025/12/04/deleting-code-for-performance/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://dbushell.com/images/articles/2025-12-04-deleting-code-for-performance.png&#34; alt=&#34;Deleting Code for Performance — The one where I clean up an asynchronous mess&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: Deleting Code for Performance — The one where I clean up an asynchronous mess&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Deleting Code for Performance&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;The one where I clean up an asynchronous mess&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;dbushell.com · dbushell.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;I did not realize that David’s site was built on a homegrown Static Site Generator.  As someone who also does this myself I appreciate the effort.  I build my site on &lt;a href=&#34;/markata/&#34; class=&#34;wikilink&#34; data-title=&#34;markata&#34; data-description=&#34;This post is a work in progress.&#34; data-date=&#34;2024-05-30&#34; data-preview=&#34;This post is a work in progress.&#34;&gt;markata&lt;/a&gt;.  It started as a project to learn a set of tools and has become a project that I depend on everywhere and cant put down.  It’s a great tool, but you probably shouldn’t use it.  Anyways, I feel this &lt;strong&gt;really&lt;/strong&gt; shows on David’s site. His site is filled with custom features that make it very unique, one off, and always a pleasure to read.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Malicious Traffic and Static Sites - Jim Nielsen’s Blog</title>
    <id>https://go.waylonwalker.com/thought-876/</id>
    <updated>2025-12-01T21:41:03Z</updated>
    <published>2025-12-01T21:41:03Z</published>
    <link href="https://go.waylonwalker.com/thought-876/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://blog.jim-nielsen.com/2025/malicious-traffic-on-static-sites/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://blog.jim-nielsen.com/2025/malicious-traffic-on-static-sites/&#34; class=&#34;embed-card-link  has-avatar has-avatar-before&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/blog.jim-nielsen.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/blog.jim-nielsen.com.ico&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Malicious Traffic and Static Sites&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Writing about the big beautiful mess that is making things for the world wide web.&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;blog.jim-nielsen.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;These look like fun endpoints to add anti-maliciously, give good stuff for the sleezy things to read.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>A More Human Internet</title>
    <id>https://go.waylonwalker.com/a-more-human-internet/</id>
    <updated>2025-08-21T14:36:00Z</updated>
    <published>2025-08-21T14:36:00Z</published>
    <link href="https://go.waylonwalker.com/a-more-human-internet/" rel="alternate" type="text/html"></link>
    <summary type="text">An idea for a post that may never happen</summary>
    <content type="html">&lt;p&gt;An idea for a post that may never happen&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Glossary Web Component – David Bushell – Web Dev (UK)</title>
    <id>https://go.waylonwalker.com/thought-762/</id>
    <updated>2025-07-25T02:11:58Z</updated>
    <published>2025-07-25T02:11:58Z</published>
    <link href="https://go.waylonwalker.com/thought-762/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://dbushell.com/2025/05/07/glossary-web-component/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://dbushell.com/2025/05/07/glossary-web-component/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://dbushell.com/images/articles/2025-05-07-glossary-web-component.png&#34; alt=&#34;Glossary Web Component — The one where I put the hypercard in the hyperlink&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: Glossary Web Component — The one where I put the hypercard in the hyperlink&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Glossary Web Component&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;The one where I put the hypercard in the hyperlink&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;dbushell.com · dbushell.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;I really enjoy David’s Glossary, he has absolutely nailed it.  I’m working on one for myself that feels close but not quite.  I want to have a list of words that auto glossary to terms for me, maybe this is too much automation and I should just lean on wikilinks, i.e. &lt;a href=&#34;/sick-wikilink-hover/&#34; class=&#34;wikilink&#34; data-title=&#34;sick wikilink hover&#34; data-description=&#34;Today I set up some sick wikilink hover effects using tailwind see a-case-for-tailwindcss. When you hover over them they show an image preview of the link...&#34; data-date=&#34;2024-05-30&#34; data-preview=&#34;Today I set up some sick wikilink hover effects using tailwind see a-case-for-tailwindcss. When you hover over them they show an image preview of the link...&#34;&gt;sick wikilink hover&lt;/a&gt;, they only take wrapping in brackets.   But like David mentions here its a lot of work to make sure they are right on all the older posts.  I think it needs to be done with js on my setup, I don’t have no fancy wroker to modify &lt;a href=&#34;/html/&#34; class=&#34;glossary-term&#34; title=&#34;HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...&#34;&gt;html&lt;/a&gt; on the way out, I’m fully static right now, so i would need to do full rebuilds any time the glossary changes, i’m trying to cut down on the number of features that require full site rebuilds and potential cache issues.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Notes – 09:32 Thu 19 Jun 2025 – David Bushell – Web Dev (UK)</title>
    <id>https://go.waylonwalker.com/thought-708/</id>
    <updated>2025-06-19T13:18:20Z</updated>
    <published>2025-06-19T13:18:20Z</published>
    <link href="https://go.waylonwalker.com/thought-708/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://dbushell.com/notes/2025-06-19T09:32Z/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://dbushell.com/notes/2025-06-19T09:32Z/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://dbushell.com/assets/images/ogimage.png&#34; alt=&#34;Notes – 09:32 Thu 19 Jun 2025 — Notes – 09:32 Thu 19 Jun 2025&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: Notes – 09:32 Thu 19 Jun 2025 — Notes – 09:32 Thu 19 Jun 2025&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Notes – 09:32 Thu 19 Jun 2025&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Notes – 09:32 Thu 19 Jun 2025&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;dbushell.com · dbushell.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;David’s design on his blog is fantastic likely from years of small improvements like this converting ugly quotes to pretty quotes and optimizing fonts.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;It’s common for markdown libraries to convert the first to the second like my build script does.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;This is new to me, I had no idea that markdown libraries did this, I’m now interested if markdown-it does it.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;For subsetting I use the fontTools library but I’ve no idea how to setup Python environments. I got it working once and failed to document the process.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;David, David, David, I’m sorry python has done you this dirty.  I should do a post on making python environments in the age of &lt;a href=&#34;/tags/uv/&#34; class=&#34;wikilink&#34; data-title=&#34;Posts tagged: uv&#34; data-description=&#34;All posts with the tag &amp;#34;uv&amp;#34;&#34; data-preview=&#34;All posts with the tag &amp;#34;uv&amp;#34;&#34;&gt;Posts tagged: uv&lt;/a&gt;.  You got options to run in docker/podman, a whole ass vm, uv venv, uvx, uv run, uv script, python -m venv, virtualenv, poetry, hatch, and too many more.  The ones that matter are containers or uv.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Visualizing My Blog’s Internal Links - Jim Nielsen’s Blog</title>
    <id>https://go.waylonwalker.com/thought-695/</id>
    <updated>2025-06-16T00:48:19Z</updated>
    <published>2025-06-16T00:48:19Z</published>
    <link href="https://go.waylonwalker.com/thought-695/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://blog.jim-nielsen.com/2022/visualizing-my-blogs-links/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://blog.jim-nielsen.com/2022/visualizing-my-blogs-links/&#34; class=&#34;embed-card-link  has-avatar has-avatar-before&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/blog.jim-nielsen.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/blog.jim-nielsen.com.ico&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Visualizing My Blog’s Internal Links&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Writing about the big beautiful mess that is making things for the world wide web.&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;blog.jim-nielsen.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;I like Jim’s visualizations on his site, reminds me a lot of obsidian.  I’ve tried to do the same on my &lt;a href=&#34;/analytics/&#34; class=&#34;wikilink&#34; data-title=&#34;analytics&#34; data-description=&#34;I&amp;#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...&#34; data-date=&#34;2025-01-22&#34; data-preview=&#34;I&amp;#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...&#34;&gt;analytics&lt;/a&gt; page in the past, but it didn’t come out right.  I’m going to have to give this another go.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Queso Notes</title>
    <id>https://go.waylonwalker.com/thought-666/</id>
    <updated>2025-06-06T15:50:43Z</updated>
    <published>2025-06-06T15:50:43Z</published>
    <link href="https://go.waylonwalker.com/thought-666/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://pype.dev/queso-notes/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://pype.dev/queso-notes/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://cdn.statically.io/gh/pypeaday/pype.dev/main/pages/media/og-02.png&#34; alt=&#34;Queso Notes | Nic Payne — It occured to me that this is my blog... I can write about whatever the heck I want! May 2025 Made 2 quesos very similar - they consisted of: 1.5 lbs ground bee&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: Queso Notes | Nic Payne — It occured to me that this is my blog... I can write about whatever the heck I want! May 2025 Made 2 quesos very similar - they consisted of: 1.5 lbs ground bee&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Queso Notes | Nic Payne&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;It occured to me that this is my blog... I can write about whatever the heck I want! May 2025 Made 2 quesos very similar - they consisted of: 1.5 lbs ground bee&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;pype.dev&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Taking this as inspiration to do more non-tech on my blog, I’ve branched out into &lt;a href=&#34;/tags/gaming/&#34; class=&#34;wikilink&#34; data-title=&#34;Posts tagged: gaming&#34; data-description=&#34;All posts with the tag &amp;#34;gaming&amp;#34;&#34; data-preview=&#34;All posts with the tag &amp;#34;gaming&amp;#34;&#34;&gt;Posts tagged: gaming&lt;/a&gt;, but need take it to the next step.  excited to watch &lt;a href=&#34;pype.dev&#34;&gt;pype.dev&lt;/a&gt; evolve as well.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 The ethics of README ads – Will McGugan – Will McGugan&#39;s essays</title>
    <id>https://go.waylonwalker.com/thought-665/</id>
    <updated>2025-06-05T14:49:09Z</updated>
    <published>2025-06-05T14:49:09Z</published>
    <link href="https://go.waylonwalker.com/thought-665/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://willmcgugan.github.io/the-ethics-of-readme-ads/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://willmcgugan.github.io/the-ethics-of-readme-ads/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;http://willmcgugan.github.io/images/will2025.jpeg&#34; alt=&#34;The ethics of README ads — I’ve been considering accepting sponsorship again for my projects.&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: The ethics of README ads — I’ve been considering accepting sponsorship again for my projects.&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;The ethics of README ads&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;I’ve been considering accepting sponsorship again for my projects.&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;Will McGugan · willmcgugan.github.io&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;I’ve long avoided running ads on my blog for the same reason.  For a few months I ran an ad above the fold.  It was a “Your Ad Here” kind of thing, and in the messaging I was looking for content relevant to my content, not google driven ads. This resulted in nothing, no hits, not a one.  I’m kinda with Will on this one beer money is not worth degrading the project for.  I seriously thought some of the big projects with a moderate level of success got a good cut for these sponsorships.  Some of the companies are big companies, like how do they even go through meetings and decide who gets beer money without spending more than that in decision making resources.  Maybe they have a guy with more autonomy than I would expect.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 feat: add hackernews hits on home page · jimniels/blog@b1a250b</title>
    <id>https://go.waylonwalker.com/thought-658/</id>
    <updated>2025-05-31T01:56:00Z</updated>
    <published>2025-05-31T01:56:00Z</published>
    <link href="https://go.waylonwalker.com/thought-658/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://github.com/jimniels/blog/commit/b1a250b2357d21e69a58ce3265114e1761fb47f8</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://github.com/jimniels/blog/commit/b1a250b2357d21e69a58ce3265114e1761fb47f8&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://opengraph.githubassets.com/892f6fed54ab75821aa86deeb035f754e41eb0f9f405d6b058aa958579ccd866/jimniels/blog/commit/b1a250b2357d21e69a58ce3265114e1761fb47f8&#34; alt=&#34;feat: add hackernews hits on home page · jimniels/blog@b1a250b — Contribute to jimniels/blog development by creating an account on GitHub.&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: feat: add hackernews hits on home page · jimniels/blog@b1a250b — Contribute to jimniels/blog development by creating an account on GitHub.&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;feat: add hackernews hits on home page · jimniels/blog@b1a250b&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Contribute to jimniels/blog development by creating an account on GitHub.&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;GitHub · github.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Jim Nielsen fetches his hacker news ranked articles for his home page.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Hackernews query by url</title>
    <id>https://go.waylonwalker.com/thought-657/</id>
    <updated>2025-05-31T01:54:59Z</updated>
    <published>2025-05-31T01:54:59Z</published>
    <link href="https://go.waylonwalker.com/thought-657/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://hn.algolia.com/api/v1/search?query=waylonwalker.com&amp;restrictSearchableAttributes=url</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://hn.algolia.com/api/v1/search?query=waylonwalker.com&amp;amp;restrictSearchableAttributes=url&#34; class=&#34;embed-card-link  has-avatar has-avatar-before&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/hn.algolia.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/hn.algolia.com.png&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;External Link&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;hn.algolia.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://blog.jim-nielsen.com/2022/playing-with-blog-home/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/blog.jim-nielsen.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/blog.jim-nielsen.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;this post&lt;/a&gt; by Jim Nielsen, lead me to &lt;a href=&#34;https://github.com/jimniels/blog/commit/b1a250b2357d21e69a58ce3265114e1761fb47f8&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;this commit&lt;/a&gt; where I found that he was including posts of his that wound up on hackernews.  I really like this idea and might take it, even though i have very few HN linked posts.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 External Links - Jim Nielsen’s Blog</title>
    <id>https://go.waylonwalker.com/thought-656/</id>
    <updated>2025-05-31T01:51:13Z</updated>
    <published>2025-05-31T01:51:13Z</published>
    <link href="https://go.waylonwalker.com/thought-656/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://blog.jim-nielsen.com/about/external-links/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://blog.jim-nielsen.com/about/external-links/&#34; class=&#34;embed-card-link  has-avatar has-avatar-before&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/blog.jim-nielsen.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/blog.jim-nielsen.com.ico&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;External Links - Jim Nielsen’s Blog&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Writing about the big beautiful mess that is making things for the world wide web.&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;blog.jim-nielsen.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;I really like the idea of Jim’s Eternal Links, and really want to take it for myself.  To expand here I want to be able to look for common places for rss feeds, and be able to scrape out rss feeds for sites that I tend to link to often.  Also if they have something like a /blogroll it might be a good place to find new great people to follow.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 wants | maya.land</title>
    <id>https://go.waylonwalker.com/thought-647/</id>
    <updated>2025-05-28T02:00:31Z</updated>
    <published>2025-05-28T02:00:31Z</published>
    <link href="https://go.waylonwalker.com/thought-647/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://maya.land/wants/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://maya.land/wants/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://maya.land/assets/vanitas-big.jpg&#34; alt=&#34;wants — Personal website. Webby personsite. Amateur hour round the clock.&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: wants — Personal website. Webby personsite. Amateur hour round the clock.&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;wants&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Personal website. Webby personsite. Amateur hour round the clock.&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;maya.land · maya.land&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Allen Carr1 on quitting smoking:&#xA;[Carr] recommends working to really notice and internalise that disconnect [between what we want and what we enjoy]. He tells smokers to pay attention to their next cigarette. It’s like mindfulness but for noticing the unpleasantness.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;I can appreciate the restraint here, theres something about the mindfulness behind it all.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 661: Working Vacations, Ripping Out JavaScript, and Non-US Clo...</title>
    <id>https://go.waylonwalker.com/thought-613/</id>
    <updated>2025-05-01T14:00:47Z</updated>
    <published>2025-05-01T14:00:47Z</published>
    <link href="https://go.waylonwalker.com/thought-613/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://shoptalkshow.com/661/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://shoptalkshow.com/661/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://i0.wp.com/shoptalkshow.com/wp-content/uploads/2013/03/logo-itunes-1400.png?fit=1200%2C1200&amp;amp;ssl=1&#34; alt=&#34;661: Working Vacations, Ripping Out JavaScript, and Non-US Cloud Service Options — What are the non-US cloud services options, falling off the blogging train and trying to get back on, working on vacation, Chris recaps the Alaskan Folk Festival experience, how often do you go bac…&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: 661: Working Vacations, Ripping Out JavaScript, and Non-US Cloud Service Options — What are the non-US cloud services options, falling off the blogging train and trying to get back on, working on vacation, Chris recaps the Alaskan Folk Festival experience, how often do you go bac…&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;661: Working Vacations, Ripping Out JavaScript, and Non-US Cloud Service Options&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;What are the non-US cloud services options, falling off the blogging train and trying to get back on, working on vacation, Chris recaps the Alaskan Folk Festival experience, how often do you go bac…&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;ShopTalk · shoptalkshow.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Chris hit me where it feels about 10 minutes in.  He said he has not been writing on his site as much lately and how hard it is to get back in.  He mentions having a baby idea of a post, but then having the thought do you really want to come back from a long break with this!&lt;/p&gt;&#xA;&lt;p&gt;Momentum is a b**** when you got it you cant stop, and when you don’t you can’t stop.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Characters - Xe Iaso</title>
    <id>https://go.waylonwalker.com/thought-591/</id>
    <updated>2025-04-12T20:02:35Z</updated>
    <published>2025-04-12T20:02:35Z</published>
    <link href="https://go.waylonwalker.com/thought-591/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://xeiaso.net/characters/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://xeiaso.net/characters/&#34; class=&#34;embed-card-link  has-avatar has-avatar-before&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/xeiaso.net.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/xeiaso.net.png&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Characters&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Xe Iaso&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;xeiaso.net&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;xeiaso, has the coolest characters on her blog.  Definitely something I’d like to replicate.  I really appreciate how each one has its own sprite sheet, and they have conversations with each other.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.wayl.one/api/file/77dd4cb5-4fdb-4d09-8b9b-d9cdd72b2490.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/77dd4cb5-4fdb-4d09-8b9b-d9cdd72b2490.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 There are many Style Guides but this is Mine—zachleat.com</title>
    <id>https://go.waylonwalker.com/thought-570/</id>
    <updated>2025-02-18T01:56:24Z</updated>
    <published>2025-02-18T01:56:24Z</published>
    <link href="https://go.waylonwalker.com/thought-570/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://www.zachleat.com/web/style-guide/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://www.zachleat.com/web/style-guide/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://screenshot.11ty.app/https%3A%2F%2Fwww.zachleat.com%2Fweb%2Fstyle-guide%2F%3Fcache%3D_20251031/opengraph/&#34; alt=&#34;There are many Style Guides but this is Mine—zachleat.com — A post by Zach Leatherman (zachleat)&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: There are many Style Guides but this is Mine—zachleat.com — A post by Zach Leatherman (zachleat)&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;There are many Style Guides but this is Mine—zachleat.com&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;A post by Zach Leatherman (zachleat)&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;Zach Leatherman · zachleat.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Zach’s site looks sick colors are all on point, the fonts are so good.  I really like the idea of a style-guide.  I think I might be renaming my &lt;a href=&#34;/sample/&#34; class=&#34;wikilink&#34; data-title=&#34;Sample&#34; data-description=&#34;There is a glossary item in vibe coding here and clippy no simpy.&#34; data-date=&#34;2021-01-25&#34; data-preview=&#34;There is a glossary item in vibe coding here and clippy no simpy.&#34;&gt;Sample&lt;/a&gt; post to style-guide now.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da</title>
    <id>https://go.waylonwalker.com/thought-568/</id>
    <updated>2025-02-17T22:32:04Z</updated>
    <published>2025-02-17T22:32:04Z</published>
    <link href="https://go.waylonwalker.com/thought-568/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://github.com/WaylonWalker/waylonwalker.com/commit/93ca7da6dd37100d2fb2cd989c2ddb31692c3bf9</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://github.com/WaylonWalker/waylonwalker.com/commit/93ca7da6dd37100d2fb2cd989c2ddb31692c3bf9&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://opengraph.githubassets.com/ae9b2c9a3a50de71e6058359f2fac9dc8ba91b6039ac557cc1c385d720c137be/WaylonWalker/waylonwalker.com/commit/93ca7da6dd37100d2fb2cd989c2ddb31692c3bf9&#34; alt=&#34;fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da — Latest version of waylonwalker.com - dev.waylonwalker.com - fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da — Latest version of waylonwalker.com - dev.waylonwalker.com - fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Latest version of waylonwalker.com - dev.waylonwalker.com - fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;GitHub · github.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;fixing more ahrefs issues on the road to fixing all major issues within my control I found a ton of urls pointed to an url with a double slash, turns out I wasn’t properly referencing slug with post.slug.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.wayl.one/api/file/d821eb80-aeaa-4f96-becd-7609b798663c.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/d821eb80-aeaa-4f96-becd-7609b798663c.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 fix json schema · WaylonWalker/waylonwalker.com@deebd40</title>
    <id>https://go.waylonwalker.com/thought-567/</id>
    <updated>2025-02-17T22:26:01Z</updated>
    <published>2025-02-17T22:26:01Z</published>
    <link href="https://go.waylonwalker.com/thought-567/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://github.com/WaylonWalker/waylonwalker.com/commit/deebd400e638bfaa41db953530597983ae0df82a</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://github.com/WaylonWalker/waylonwalker.com/commit/deebd400e638bfaa41db953530597983ae0df82a&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://opengraph.githubassets.com/adc37dbf80305b6974e7593a6646169095b20c0c0f7ff71d70c46b1d03c66635/WaylonWalker/waylonwalker.com/commit/deebd400e638bfaa41db953530597983ae0df82a&#34; alt=&#34;fix json schema · WaylonWalker/waylonwalker.com@deebd40 — Latest version of waylonwalker.com - dev.waylonwalker.com - fix json schema · WaylonWalker/waylonwalker.com@deebd40&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: fix json schema · WaylonWalker/waylonwalker.com@deebd40 — Latest version of waylonwalker.com - dev.waylonwalker.com - fix json schema · WaylonWalker/waylonwalker.com@deebd40&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;fix json schema · WaylonWalker/waylonwalker.com@deebd40&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Latest version of waylonwalker.com - dev.waylonwalker.com - fix json schema · WaylonWalker/waylonwalker.com@deebd40&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;GitHub · github.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;I found that I had &lt;em&gt;Structured data has schema.org validation error&lt;/em&gt; on essentially every single page on my blog, turns out I had made some changes and have never tried to validate it.  Damn json and its hatred towards trailing commas.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.wayl.one/api/file/889378f5-6444-4a38-a7e4-c305fe93e1d7.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/889378f5-6444-4a38-a7e4-c305fe93e1d7.webp&#34; alt=&#34;889378f5-6444-4a38-a7e4-c305fe93e1d7.webp&#34;/ data-glightbox=&#34;description: 889378f5-6444-4a38-a7e4-c305fe93e1d7.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.wayl.one/api/file/ca373ce6-9a4a-4e5b-8a0e-0b2959915ab5.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/ca373ce6-9a4a-4e5b-8a0e-0b2959915ab5.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Weblogging: Part 1 – David Bushell – Web Dev (UK)</title>
    <id>https://go.waylonwalker.com/thought-566/</id>
    <updated>2025-02-17T21:01:00Z</updated>
    <published>2025-02-17T21:01:00Z</published>
    <link href="https://go.waylonwalker.com/thought-566/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://dbushell.com/2024/12/09/weblogging-1/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://dbushell.com/2024/12/09/weblogging-1/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://dbushell.com/images/articles/2024-12-09-weblogging-1.png&#34; alt=&#34;Weblogging: Part 1 — The one where I blog about blogging (part 1)&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: Weblogging: Part 1 — The one where I blog about blogging (part 1)&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Weblogging: Part 1&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;The one where I blog about blogging (part 1)&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;dbushell.com · dbushell.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Long live RSS!  Rss is not dead David, you are right there.  I really agree with David that learning a topic well enough to form thoughts and write about it really help learning.  You don’t need to be an expert, but forming your own thoughts, putting ideas in words takes a lot more than surface level knowledge.  When you try to write or speak about something you quickly realize where your holes in understanding are.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Blogging helps me learn. When I commit knowledge to writing it reinforces what I know and shines a spotlight on what I don’t. Most topics require additional research. Even then, I occasionally get things wrong, or miss different ways of thinking, and I welcome corrections. I’ll often update and enrich my posts based on feedback. Without my blog I’d miss other points of view.&lt;/p&gt;&#xA;&lt;p&gt;As they say, the best way to get an answer on the internet is not to pose a question, but to assert the wrong solution! Most feedback I get is constructive. Sometimes it’s blunt but I try not to read into unspoken sentiment. Some people are more direct. If the end result is positive learning, I can take a hit or two.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 fix: Open Graph URL not matching canonical · WaylonWalker/wayl...</title>
    <id>https://go.waylonwalker.com/thought-565/</id>
    <updated>2025-02-17T20:53:22Z</updated>
    <published>2025-02-17T20:53:22Z</published>
    <link href="https://go.waylonwalker.com/thought-565/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://github.com/WaylonWalker/waylonwalker.com/commit/0fd994b0101f7260051ec914ea6987e1c70603bd</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://github.com/WaylonWalker/waylonwalker.com/commit/0fd994b0101f7260051ec914ea6987e1c70603bd&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://opengraph.githubassets.com/eadd9b7a04f6414f59da1c650ec20ab1bf5f5bc2d75b7ec71f784e28d963bc99/WaylonWalker/waylonwalker.com/commit/0fd994b0101f7260051ec914ea6987e1c70603bd&#34; alt=&#34;fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b — Latest version of waylonwalker.com - dev.waylonwalker.com - fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b — Latest version of waylonwalker.com - dev.waylonwalker.com - fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Latest version of waylonwalker.com - dev.waylonwalker.com - fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;GitHub · github.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;In fixing a bunch of meta tags, I introduced &lt;em&gt;Open Graph URL not matching canonical&lt;/em&gt; on every page by having trailing / on canonical and not on the &lt;code&gt;og:url&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.wayl.one/api/file/1adedfb8-5fbd-4622-adda-2f3984baeb03.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/1adedfb8-5fbd-4622-adda-2f3984baeb03.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;This commit will fix the error.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Cotton Coder – David Bushell – Web Dev (UK)</title>
    <id>https://go.waylonwalker.com/thought-564/</id>
    <updated>2025-02-17T03:05:12Z</updated>
    <published>2025-02-17T03:05:12Z</published>
    <link href="https://go.waylonwalker.com/thought-564/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://dbushell.com/2024/01/24/cotton-coder/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://dbushell.com/2024/01/24/cotton-coder/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://dbushell.com/images/articles/2024-01-24-cotton-coder.png&#34; alt=&#34;Cotton Coder — The one where I launch a new blog&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: Cotton Coder — The one where I launch a new blog&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Cotton Coder&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;The one where I launch a new blog&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;dbushell.com · dbushell.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;I like Davids idea for cotton coder here, reminds me a lot of &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;Thoughts&lt;/a&gt;, which turns out to be mroe commonly called a linkblog.  I can relate to David heavily on gathering too many side projects and soem collecting more digital dust than you would really like them to.  I use thoughts for quick publishing, very similar to David’s &lt;a href=&#34;https://dbushell.com/notes/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/dbushell.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/dbushell.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;notes&lt;/a&gt;.  I have tags and titles, but the titles are a reflection of the post I’m taking a note on.  They are short and sweet, I put just enough thought into them without overthinking them.  They live as a separate server hosted website, but the data gets pulled into my blog at build time, so they end up in the same place eventually.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>fragmention</title>
    <id>https://go.waylonwalker.com/fragmention/</id>
    <updated>2025-02-15T09:32:43Z</updated>
    <published>2025-02-15T09:32:43Z</published>
    <link href="https://go.waylonwalker.com/fragmention/" rel="alternate" type="text/html"></link>
    <summary type="text">This post is still WIP. .....</summary>
    <content type="html">&lt;p&gt;This post is still WIP. …..&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://indieweb.org/fragmention##Challenges&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/indieweb.org.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/indieweb.org.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://indieweb.org/fragmention##Challenges&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I’ve been digging through David Bushell’s blog over the past day, he has some&#xA;really good ideas about blogging and webdev.  One really interesting post I&#xA;came accross is&#xA;&lt;a href=&#34;https://dbushell.com/2024/12/05/url-fragment-text-directives/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/dbushell.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/dbushell.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;url-fragment-text-directives&lt;/a&gt;.&#xA;I’ve long had id’s linked on my headings, though sometimes broken, or now&#xA;showing the link, I’ve done my best to include them.  Fragmentions extend this&#xA;to allow any text to be linkable like this.&lt;/p&gt;&#xA;&lt;p&gt;fragmentioner ui: &lt;a href=&#34;https://github.com/kartikprabhu/fragmentioner/tree/master?tab=readme-ov-file&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://github.com/kartikprabhu/fragmentioner/tree/master?tab=readme-ov-file&lt;/a&gt;&#xA;fragmentioner js: &lt;a href=&#34;https://github.com/chapmanu/fragmentions&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://github.com/chapmanu/fragmentions&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;examples&#34;&gt;Examples &lt;a href=&#34;#examples&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://resilientwebdesign.com/#This%20is%20a%20web%20book&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/resilientwebdesign.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/resilientwebdesign.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://resilientwebdesign.com/#This%20is%20a%20web%20book&lt;/a&gt;&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Chris Coyier</title>
    <id>https://go.waylonwalker.com/thought-559/</id>
    <updated>2025-02-14T19:40:19Z</updated>
    <published>2025-02-14T19:40:19Z</published>
    <link href="https://go.waylonwalker.com/thought-559/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://chriscoyier.net/2024/03/03/11148/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://chriscoyier.net/2024/03/03/11148/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://jetpack.com/redirect/?source=sigenerate&amp;amp;query=t%3DeyJpbWciOiJodHRwczpcL1wvY2hyaXNjb3lpZXIubmV0XC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wM1wvcGV4ZWxzLXBob3RvLTUzMTg0NC0xMDI0eDY4Mi5qcGVnIiwidHh0IjoiaSBkaWRuJ3Qgc2F5IHRoZSBzb2NpYWwgbWVkaWEgaW1hZ2Ugd291bGRuJ3QgaGF2ZSBhIHRpdGxlIiwidGVtcGxhdGUiOiJmdWxsc2NyZWVuIiwiYmxvZ19pZCI6NzQwNzQyNDh9.K_WGOGYYuB2MeV23x0ID9j-vWYGGnqJ5WyhhpwdZuBQMQ&#34; alt=&#34;— I’m going to leave the title off this post and see what happens. Titles are a lot of pressure! I think there is a reason that the big text-based social networking sites (Mastodon, X, Facebook…&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: — I’m going to leave the title off this post and see what happens. Titles are a lot of pressure! I think there is a reason that the big text-based social networking sites (Mastodon, X, Facebook…&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt; &lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;I’m going to leave the title off this post and see what happens. Titles are a lot of pressure! I think there is a reason that the big text-based social networking sites (Mastodon, X, Facebook…&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;Chris Coyier · chriscoyier.net&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Interesting thoughts here on blog post titles, do we need them?  They are so ingrained into everything.&lt;/p&gt;&#xA;&lt;p&gt;It makes me think about markata.dev.  I don’t require you to add any meta data to your post, you don’t need a title at all, but you do have to name a markdown file, and this does end up being your title if you don’t set one.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Titles are a lot of pressure! I think there is a reason that the big text-based social networking sites (Mastodon, X, Facebook, Threads, LinkedIn, Bluesky, etc.) don’t have titles. Especially for short posts, the title just isn’t necessary. Just say the thing.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Interesting observation what rss readers do without one.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;My own favorite[rss reader], Feedbin, shows the author of the post as the title if it’s missing. Eh, not great not horrible.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Hilariously he puts a title on the &lt;a href=&#34;/og/&#34; class=&#34;glossary-term&#34; title=&#34;OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...&#34;&gt;OG&lt;/a&gt; image for the post.  I was interested in seeing what would happen in signal, it appears to be showing the author name as well.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.wayl.one/api/file/ea78bda4-d2ea-41bd-9a60-27d9b09d4825.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/ea78bda4-d2ea-41bd-9a60-27d9b09d4825.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Confirmed the page has no title&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.wayl.one/api/file/4a68af50-9880-4e1c-8fca-91313a154630.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/4a68af50-9880-4e1c-8fca-91313a154630.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;or does it?&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.wayl.one/api/file/66a63ca2-c705-4460-8b8a-d1633fc42f21.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/66a63ca2-c705-4460-8b8a-d1633fc42f21.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;It makes me wonder where Signal gets this title is it from the title block or the site_name meta data&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>ahrefs-cleanup-2024</title>
    <id>https://go.waylonwalker.com/ahrefs-cleanup-2024/</id>
    <updated>2025-02-12T12:56:40Z</updated>
    <published>2025-02-12T12:56:40Z</published>
    <link href="https://go.waylonwalker.com/ahrefs-cleanup-2024/" rel="alternate" type="text/html"></link>
    <summary type="text">This post is a big work in progress, expect it to keep getting better.</summary>
    <content type="html">&lt;p&gt;This post is a big work in progress, expect it to keep getting better.&lt;/p&gt;&#xA;&lt;h2 id=&#34;initial-score&#34;&gt;Initial Score &lt;a href=&#34;#initial-score&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/b26d4352-1bce-43a1-942e-bd6d7bd7c11d.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/b26d4352-1bce-43a1-942e-bd6d7bd7c11d.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;404-not-found-generate-a-page-for-each-tag&#34;&gt;404 Not Found, generate a page for each tag &lt;a href=&#34;#404-not-found-generate-a-page-for-each-tag&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/c501e0f7-b3c1-4124-b6b4-727d7e3e95a8.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/c501e0f7-b3c1-4124-b6b4-727d7e3e95a8.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;title-too-long&#34;&gt;Title too long &lt;a href=&#34;#title-too-long&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/4184948f-3527-4a17-8c65-b61e75d9ec75.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/4184948f-3527-4a17-8c65-b61e75d9ec75.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;404-not-found-comma-separated-tags&#34;&gt;404 Not Found, comma separated tags &lt;a href=&#34;#404-not-found-comma-separated-tags&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Another hit on 404’s caused by tags, was tag parsing from thoughts into posts,&#xA;this cause links to the full comma separated list of tags rather than one per&#xA;tag.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/c01ebd69-5ac4-4d9b-b720-43a16f64f421.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/c01ebd69-5ac4-4d9b-b720-43a16f64f421.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;You can see on the website the whole dang set of tags was being treated as a single tag.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/398b3bc7-8cfe-4190-968d-73eb15e18ea2.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/398b3bc7-8cfe-4190-968d-73eb15e18ea2.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;broken-images&#34;&gt;Broken images &lt;a href=&#34;#broken-images&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I’m not fully sure what happened to all of these gifs in my old host and why&#xA;they didn’t show up, but I moved them all and they are solid now.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/b3a1e8de-9344-40b4-8020-9e75a59b5dd9.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/b3a1e8de-9344-40b4-8020-9e75a59b5dd9.png&#34; alt=&#34;screenshot-2025-01-15T17-31-20-430Z.png&#34;/ data-glightbox=&#34;description: screenshot-2025-01-15T17-31-20-430Z.png&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;i-burned-all-of-my-january-credits&#34;&gt;I burned all of my January Credits &lt;a href=&#34;#i-burned-all-of-my-january-credits&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;So I had an issue with my &lt;a href=&#34;/self-host/&#34; class=&#34;glossary-term&#34; title=&#34;Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...&#34;&gt;self hosted&lt;/a&gt; shots not making them fast enough for&#xA;ahrefs, and essentially ddosing myself on one of their runs.  The long wait&#xA;times for images burnt all of my credits.&lt;/p&gt;&#xA;&lt;p&gt;Here was the next successful run with a HUGE improvement in overall score.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/cfed3e97-8dd4-4381-b38f-5dc6f40e7fad.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/cfed3e97-8dd4-4381-b38f-5dc6f40e7fad.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;The trend for errors is looking quite good.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/1ffbd8f7-1f81-40b9-b110-1b0f03bdd56f.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/1ffbd8f7-1f81-40b9-b110-1b0f03bdd56f.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;md-files-were-missing&#34;&gt;md files were Missing &lt;a href=&#34;#md-files-were-missing&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I had several links out to the raw source of some pages generally hosted at&#xA;&lt;code&gt;{slug}.md&lt;/code&gt;, but I had turned it off due to it causing builds to fail.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/db074f86-725a-4b34-a5e2-8424628f521e.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/db074f86-725a-4b34-a5e2-8424628f521e.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Taking another look at the error it was obvious what was going on, thoughts&#xA;never had a file extension and Pathlib was throwing isADirecotryError because&#xA;the path was already a directory for the index.&lt;a href=&#34;/html/&#34; class=&#34;glossary-term&#34; title=&#34;HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...&#34;&gt;html&lt;/a&gt;, adding a .md to the path&#xA;for the thoughts plugin fixed it.&lt;/p&gt;&#xA;&lt;p&gt;I made this fix in commit&#xA;&lt;a href=&#34;https://github.com/WaylonWalker/waylonwalker.com/commit/e0bbc777efd5d0309a107b0d3e7355b2426e8c47&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;e0bbc&lt;/a&gt;&#xA;on my site repo.&lt;/p&gt;&#xA;&lt;h2 id=&#34;broken-links-to-tags&#34;&gt;Broken links to tags &lt;a href=&#34;#broken-links-to-tags&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I wrote a cli plugin to automatically generate feeds for my tags, but I have&#xA;not ran it in awhile so I had a number of posts trying to link tags to feeds&#xA;that did not exist.  I fixed this in commit&#xA;[5d2e22](&lt;a href=&#34;https://github.com/WaylonWalker/waylonwalker.com/commit/5d2e227a03acb1104e4214507872c61ae2a47d64&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://github.com/WaylonWalker/waylonwalker.com/commit/5d2e227a03acb1104e4214507872c61ae2a47d64&lt;/a&gt;].&lt;/p&gt;&#xA;&lt;h2 id=&#34;fix-open-graph-url-not-matching-canonical&#34;&gt;fix: Open Graph URL not matching canonical &lt;a href=&#34;#fix-open-graph-url-not-matching-canonical&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;[[ thoughts-565 ]] fixes an error introduced while fixing &lt;a href=&#34;/og/&#34; class=&#34;glossary-term&#34; title=&#34;OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...&#34;&gt;og&lt;/a&gt; tags.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>markdown split panel</title>
    <id>https://go.waylonwalker.com/markdown-split-panel/</id>
    <updated>2025-02-03T13:21:23Z</updated>
    <published>2025-02-03T13:21:23Z</published>
    <link href="https://go.waylonwalker.com/markdown-split-panel/" rel="alternate" type="text/html"></link>
    <summary type="text">Today I was playing with markdown split panels. I want to be able to compare and constrast occasionually, today the inspiration hit to do this using...</summary>
    <content type="html">&lt;p&gt;Today I was playing with markdown split panels.  I want to be able to compare&#xA;and constrast occasionually, today the inspiration hit to do this using&#xA;admonitions.&lt;/p&gt;&#xA;&lt;!-- ![screenshot-2025-02-04T02-28-26-951Z.png](https://dropper.waylonwalker.com/api/file/46ead069-5731-4028-886a-f76d56792691.png){.more-cinematic} --&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/e3d40c22-643d-433c-8eb4-c3ddf91d0527.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img src=&#34;https://dropper.waylonwalker.com/api/file/e3d40c22-643d-433c-8eb4-c3ddf91d0527.png&#34; alt=&#34;screenshot-2025-02-04T02-28-46-750Z.png&#34; class=&#34;more-cinematic glightbox&#34;/ data-glightbox=&#34;description: screenshot-2025-02-04T02-28-46-750Z.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p class=&#34;rounded-xl&#34;&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Mobile Users 🔄&lt;/p&gt;&#xA;&lt;p&gt;You will need to rotate your device to see the side by side feature.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;the-markdown&#34;&gt;The Markdown &lt;a href=&#34;#the-markdown&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;This is what I am going for, one admonition that is easy to remember, that&#xA;nests inside of itself , and I can put as much markdown on the inside that I&#xA;want.&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;!!! vsplit I Have two opinions&#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;    !!! vsplit Left Opinion&#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;        supporting arguments&#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;k&#34;&gt;*&lt;/span&gt; lorem ipsum&#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;k&#34;&gt;*&lt;/span&gt; ipsum dolor&#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;k&#34;&gt;- [x]&lt;/span&gt; lorem ipsum&#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;k&#34;&gt;- [ ]&lt;/span&gt; ipsum dolor&#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;    !!! vsplit Right Opinion&#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;        supporting arguments&#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;k&#34;&gt;*&lt;/span&gt; lorem ipsum&#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;k&#34;&gt;*&lt;/span&gt; ipsum dolor&#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;k&#34;&gt;- [ ]&lt;/span&gt; lorem ipsum&#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;k&#34;&gt;- [x]&lt;/span&gt; ipsum dolor&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Here is the result of that markdown.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition vsplit&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;I Have two opinions&lt;/p&gt;&#xA;&lt;div class=&#34;admonition vsplit&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Left Opinion&lt;/p&gt;&#xA;&lt;p&gt;supporting arguments&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;lorem ipsum&lt;/li&gt;&#xA;&lt;li&gt;ipsum dolor&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; lorem ipsum&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; ipsum dolor&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;admonition vsplit&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Right Opinion&lt;/p&gt;&#xA;&lt;p&gt;supporting arguments&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;lorem ipsum&lt;/li&gt;&#xA;&lt;li&gt;ipsum dolor&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; lorem ipsum&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; ipsum dolor&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p class=&#34;clean&#34;&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;admonition vsplit&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Vsplit&lt;/p&gt;&#xA;&lt;div class=&#34;admonition vsplit&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Hello World&lt;/p&gt;&#xA;&lt;p&gt;Here is a hello world application written in the typer cli framework&#xA;for cli.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;admonition vsplit&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Vsplit&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;    ``` python&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;#!/usr/bin/env -S uv run –quiet –script&lt;/p&gt;&#xA;&lt;h1 id=&#34;heading&#34;&gt;///&lt;/h1&gt;&#xA;&lt;h1 id=&#34;requires-python--312&#34;&gt;requires-python = “&amp;gt;=3.12”&lt;/h1&gt;&#xA;&lt;h1 id=&#34;dependencies--&#34;&gt;dependencies = [&lt;/h1&gt;&#xA;&lt;h1 id=&#34;typer&#34;&gt;“typer”,&lt;/h1&gt;&#xA;&lt;h1 id=&#34;heading-1&#34;&gt;]&lt;/h1&gt;&#xA;&lt;h1 id=&#34;heading-2&#34;&gt;///&lt;/h1&gt;&#xA;&lt;p&gt;import typer&lt;/p&gt;&#xA;&lt;p&gt;app = typer.Typer()&lt;/p&gt;&#xA;&lt;p&gt;@app.command()&#xA;def hello(name: str = “World”):&#xA;“““Prints a greeting message.”””&#xA;typer.echo(f&amp;#34;Hello, {name}!&amp;#34;)&lt;/p&gt;&#xA;&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == “&lt;strong&gt;main&lt;/strong&gt;”:&#xA;app()&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>markdown it attrs with slashes dont work</title>
    <id>https://go.waylonwalker.com/markdown-it-attrs-with-slashes-dont-work/</id>
    <updated>2025-02-01T11:21:10Z</updated>
    <published>2025-02-01T11:21:10Z</published>
    <link href="https://go.waylonwalker.com/markdown-it-attrs-with-slashes-dont-work/" rel="alternate" type="text/html"></link>
    <summary type="text">Attrs does not like &#39;/&#39; characters in its classes, so to use some tailwind classes with custom values we must make new classes in our tailwind input css.</summary>
    <content type="html">&lt;p&gt;Attrs does not like ‘/’ characters in its classes, so to use some tailwind&#xA;classes with custom values we must make new classes in our tailwind input css.&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;nc&#34;&gt;cinematic&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;err&#34;&gt;@apply&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;aspect-[2.39/1]&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;/code&gt;&lt;/pre&gt;&lt;p&gt;Given the following markdown with attrs added to the image and to the paragraph&#xA;block.&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;nt&#34;&gt;screenshot-2025-01-31T14-50-00-094Z.png&lt;/span&gt;](&lt;span class=&#34;na&#34;&gt;https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png&lt;/span&gt;){.aspect-[2.39/1]}&#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;nt&#34;&gt;screenshot-2025-01-31T14-50-00-094Z.png&lt;/span&gt;](&lt;span class=&#34;na&#34;&gt;https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png&lt;/span&gt;){.cinematic}&#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;{.cinematic}&#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;screenshot-2025-01-31T14-50-00-094Z.png&lt;/span&gt;](&lt;span class=&#34;na&#34;&gt;https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;We get the following output with only the middle one working correctly.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png&#34; alt=&#34;screenshot-2025-01-31T14-50-00-094Z.png&#34;/ data-glightbox=&#34;description: screenshot-2025-01-31T14-50-00-094Z.png&#34;&gt;&lt;/a&gt;{.aspect-[2.39/1]}&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img src=&#34;https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png&#34; alt=&#34;screenshot-2025-01-31T14-50-00-094Z.png&#34; class=&#34;cinematic glightbox&#34;/ data-glightbox=&#34;description: screenshot-2025-01-31T14-50-00-094Z.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p class=&#34;cinematic&#34;&gt;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png&#34; alt=&#34;screenshot-2025-01-31T14-50-00-094Z.png&#34;/ data-glightbox=&#34;description: screenshot-2025-01-31T14-50-00-094Z.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;The inline version of `.cinematic` works, but `.aspect-[2.39/1]` does not,&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;it turns into text after the image.  The block version with the class&#xA;before the image applies to the paragraph, not the image.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>pesos</title>
    <id>https://go.waylonwalker.com/pesos/</id>
    <updated>2025-01-25T17:20:55Z</updated>
    <published>2025-01-25T17:20:55Z</published>
    <link href="https://go.waylonwalker.com/pesos/" rel="alternate" type="text/html"></link>
    <summary type="text">Pesos is the act of Publish Elsewhere Syncicate to Own Site. It is an indieweb concept that I recently started applying to my own site.</summary>
    <content type="html">&lt;p&gt;Pesos is the act of Publish Elsewhere Syncicate to Own Site.  It is an indieweb&#xA;concept that I recently started applying to my own site.&lt;/p&gt;&#xA;&lt;p&gt;here does it skip again&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;See &amp;lt;https://indieweb.org/PESOS&amp;gt; for more information, they have a ton of&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;information about the indieweb&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;In short it is the concept of pulling data from other sites that you use and&#xA;republishing it to your own site.  This gives a single source of information&#xA;for you, and protection against sites and apis changing or rug pulling.  Other&#xA;people might have a lot more use cases for this, but I already begin a lot of&#xA;my data right on my site.&lt;/p&gt;&#xA;&lt;h2 id=&#34;github-stars&#34;&gt;GitHub stars &lt;a href=&#34;#github-stars&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I am using the github api to get a list of my stars and then create posts in&#xA;the github repo for my blog.  This allows me to keep track of things I star on&#xA;GitHub in my own way, and share them out with my rss feeds.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/2380f814-a8cb-45d1-bb5b-538d171933e3.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/2380f814-a8cb-45d1-bb5b-538d171933e3.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Why I Write</title>
    <id>https://go.waylonwalker.com/thought-531/</id>
    <updated>2025-01-13T02:28:21Z</updated>
    <published>2025-01-13T02:28:21Z</published>
    <link href="https://go.waylonwalker.com/thought-531/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://brittanyellich.com/why-i-write/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://brittanyellich.com/why-i-write/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://brittanyellich.com/_astro/typewriter.LhfVZpCN_Z1bzYMR.jpg&#34; alt=&#34;Why I Write — Staff Software Engineer at GitHub specializing in developer productivity, AI-assisted development, and accessibility. Creator of The Balanced Engineer newsletter and co-host of the Overcommitted podcast.&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: Why I Write — Staff Software Engineer at GitHub specializing in developer productivity, AI-assisted development, and accessibility. Creator of The Balanced Engineer newsletter and co-host of the Overcommitted podcast.&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Why I Write&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Staff Software Engineer at GitHub specializing in developer productivity, AI-assisted development, and accessibility. Creator of The Balanced Engineer newsletter and co-host of the Overcommitted po...&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;Brittany Ellich · brittanyellich.com&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;It’s interesting how many people in tech maintain a blog.  I think part of this brings us back to web 1.0 days when so many individual websites owned the web it was a free for all unindexed land and you got to own a small piece of it.&lt;/p&gt;&#xA;&lt;p&gt;I agree with most of Brittany’s points here I write a lot to keep my skills sharp, and to refer back to.  Brittany mentions keeping all her old posts, even the cringy ones.  I’m all with you here, I’m just wodering how you look back at anything you wrote in the past and not get a bit of that feel, maybe its just me, but I see cringe and mistakes gallore, but it all makes me better moving forward.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 bic | Static blog generator, in bash</title>
    <id>https://go.waylonwalker.com/thought-521/</id>
    <updated>2025-01-09T14:22:47Z</updated>
    <published>2025-01-09T14:22:47Z</published>
    <link href="https://go.waylonwalker.com/thought-521/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://bic.sh/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://bic.sh/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;bic&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Static blog generator, in bash&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;bic · bic.sh&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Intereresting someone built a blog generator in bash.  it comes with normal markdown to &lt;a href=&#34;/html/&#34; class=&#34;glossary-term&#34; title=&#34;HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...&#34;&gt;html&lt;/a&gt;, static content, robots.txt, sitemap, rss, and tags.  It uses pandoc to take markdown to html and mustache for page templates.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Realign – Chris Coyier</title>
    <id>https://go.waylonwalker.com/thought-503/</id>
    <updated>2025-01-04T14:25:02Z</updated>
    <published>2025-01-04T14:25:02Z</published>
    <link href="https://go.waylonwalker.com/thought-503/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://chriscoyier.net/2025/01/03/realign/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://chriscoyier.net/2025/01/03/realign/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://jetpack.com/redirect/?source=sigenerate&amp;amp;query=t%3DeyJ0eHQiOiJSZWFsaWduIiwidGVtcGxhdGUiOiJmdWxsc2NyZWVuIiwiYmxvZ19pZCI6NzQwNzQyNDh9.MbeAu1AeMezY52RJjFG9lceg8PN8Y3YjvU4J6PtSV3EMQ&#34; alt=&#34;Realign — I just popped out a realign of the ol’ personal website. I only say realign as I didn’t rethink every single detail of the thing. I’d say probably 40% of the original HTML and CSS…&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: Realign — I just popped out a realign of the ol’ personal website. I only say realign as I didn’t rethink every single detail of the thing. I’d say probably 40% of the original HTML and CSS…&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Realign&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;I just popped out a realign of the ol’ personal website. I only say realign as I didn’t rethink every single detail of the thing. I’d say probably 40% of the original HTML and CSS…&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;Chris Coyier · chriscoyier.net&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Chris Coyier had a small re-align on his site, some good nuggets in here.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I like the idea of having a photo of myself prominently on the site, so you know who you’re dealing with here.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;I really like this after thinking about it and I think I am going to make sure I get my face back on my posts.  I do have my 8bit style pixel art image of me that I use on social media, but no real picture.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I feel like a lot of people redesign their entire website when it’s time to update to the latest list of social networks and I’m no different. Once you touch it you gotta keep going.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;I can totally relate to this, once you open the thing, you get the build tools greased up, and your confidence high that re-deploying isn’t going to mess something up, I tend to start digging in to other things.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Changelog • Robb Knight</title>
    <id>https://go.waylonwalker.com/thought-495/</id>
    <updated>2025-01-02T18:16:10Z</updated>
    <published>2025-01-02T18:16:10Z</published>
    <link href="https://go.waylonwalker.com/thought-495/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://rknight.me/log/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://rknight.me/log/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://v1.screenshot.11ty.dev/https%3A%2F%2Frknight.me%2Fopengraph%2Flog%2F/opengraph/_14334&#34; alt=&#34;Changelog — Maker of web things, sticker merchant, viral toot-based business man, blogger, podcaster, and pizzaiolo. Human dad.&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: Changelog — Maker of web things, sticker merchant, viral toot-based business man, blogger, podcaster, and pizzaiolo. Human dad.&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Changelog&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Maker of web things, sticker merchant, viral toot-based business man, blogger, podcaster, and pizzaiolo. Human dad.&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;rknight.me&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Well done changelog with some really good inspirational nuggets.  Many slash pages I want to check out and an 11ty contribution graph.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 slash pages</title>
    <id>https://go.waylonwalker.com/thought-494/</id>
    <updated>2025-01-02T16:17:51Z</updated>
    <published>2025-01-02T16:17:51Z</published>
    <link href="https://go.waylonwalker.com/thought-494/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://slashpages.net/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://slashpages.net/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://slashpages.net/icons/preview.jpg&#34; alt=&#34;slash pages — A guide to common pages you can add to your website&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: slash pages — A guide to common pages you can add to your website&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;slash pages&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;A guide to common pages you can add to your website&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;slashpages.net&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;A nice list of slashpages you might want to consider including / aliasing / 301ing. These feel like nice things to setup and keep in the back pocket for obsidian style wiki link to easily.  I get kinda bad at wiki-linking as much as I would like to, mostly because it does require some amount of work to make the page, and keep it up to date over time, then remember that you even have it.&lt;/p&gt;&#xA;&lt;p&gt;Some are serious, some very common, some quite useful.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.wayl.one/api/file/ba4edf27-03d4-49ff-ab4e-712e9ab8acda.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/ba4edf27-03d4-49ff-ab4e-712e9ab8acda.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>/colophon</title>
    <id>https://go.waylonwalker.com/colophon/</id>
    <updated>2025-01-02T10:21:23Z</updated>
    <published>2025-01-02T10:21:23Z</published>
    <link href="https://go.waylonwalker.com/colophon/" rel="alternate" type="text/html"></link>
    <summary type="text">Colophon a page that describes how the site &gt; is made, with what tools, supporting what technologies</summary>
    <content type="html">&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://indieweb.org/colophon&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/indieweb.org.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/indieweb.org.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Colophon&lt;/a&gt; a page that describes how the site&#xA;is made, with what tools, supporting what technologies&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;author&#34;&gt;Author &lt;a href=&#34;#author&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/profile.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/profile.webp&#34; alt=&#34;Waylon Walker’s Profile Picture&#34;/ data-glightbox=&#34;description: Waylon Walker’s Profile Picture&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;All posts on this site are written by &lt;a href=&#34;https://waylonwalker.com&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Waylon&#xA;Walker&lt;/a&gt;, the typical content has changed and evolved&#xA;over time.  I go back and make a few corrections, but for the most part things&#xA;stay pretty much as they were published originally.&lt;/p&gt;&#xA;&lt;p&gt;see more in &lt;a href=&#34;/about/&#34; class=&#34;wikilink&#34; data-title=&#34;Waylon Walker&#34; data-description=&#34;Husband, dad of two, and hobbyist builder of things on the internet.&#34; data-date=&#34;2021-11-20&#34; data-preview=&#34;Husband, dad of two, and hobbyist builder of things on the internet.&#34;&gt;Waylon Walker&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;tech&#34;&gt;tech &lt;a href=&#34;#tech&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;This site is a static site build with my own static site generator &lt;a href=&#34;/markata/&#34; class=&#34;wikilink&#34; data-title=&#34;markata&#34; data-description=&#34;This post is a work in progress.&#34; data-date=&#34;2024-05-30&#34; data-preview=&#34;This post is a work in progress.&#34;&gt;markata&lt;/a&gt;, &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;Thoughts&lt;/a&gt; or as Simon Willison calls it a &lt;a href=&#34;https://simonwillison.net/2024/Dec/22/link-blog/#atom-everything&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/simonwillison.net.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/simonwillison.net.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;link&#xA;blog&lt;/a&gt; posts&#xA;are pulled in as a regular posts, all is hosted on cloudflare pages.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/markata/&#34; class=&#34;wikilink&#34; data-title=&#34;markata&#34; data-description=&#34;This post is a work in progress.&#34; data-date=&#34;2024-05-30&#34; data-preview=&#34;This post is a work in progress.&#34;&gt;markata&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;Thoughts&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;cloudflare pages&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;see more about these components in &lt;a href=&#34;/about-this-site/&#34; class=&#34;wikilink&#34; data-title=&#34;about this site&#34; data-description=&#34;I registered waylonwalker.com and started making content for it in 2017 after a big industry downturn in 2016 that left me scared for what would happen if I...&#34; data-date=&#34;2024-05-31&#34; data-preview=&#34;I registered waylonwalker.com and started making content for it in 2017 after a big industry downturn in 2016 that left me scared for what would happen if I...&#34;&gt;about this site&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;analytics&#34;&gt;Analytics &lt;a href=&#34;#analytics&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I do not track users, I respect the privacy of my readers and do not track&#xA;their information.  I do track &lt;a href=&#34;/analytics/&#34; class=&#34;wikilink&#34; data-title=&#34;analytics&#34; data-description=&#34;I&amp;#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...&#34; data-date=&#34;2025-01-22&#34; data-preview=&#34;I&amp;#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...&#34;&gt;analytics&lt;/a&gt; on my own writing a post rate.&#xA;Its more of an interesting history of the site.&lt;/p&gt;&#xA;&lt;h2 id=&#34;meta&#34;&gt;meta &lt;a href=&#34;#meta&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Some evergreen pages that are more about me or this site from the &lt;a href=&#34;/tags/meta/&#34; class=&#34;wikilink&#34; data-title=&#34;Posts tagged: meta&#34; data-description=&#34;All posts with the tag &amp;#34;meta&amp;#34;&#34; data-preview=&#34;All posts with the tag &amp;#34;meta&amp;#34;&#34;&gt;Posts tagged: meta&lt;/a&gt; feed.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 My approach to running a link blog</title>
    <id>https://go.waylonwalker.com/thought-457/</id>
    <updated>2024-12-23T01:47:47Z</updated>
    <published>2024-12-23T01:47:47Z</published>
    <link href="https://go.waylonwalker.com/thought-457/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://simonwillison.net/2024/Dec/22/link-blog/#atom-everything</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://simonwillison.net/2024/Dec/22/link-blog/#atom-everything&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://static.simonwillison.net/static/2024/link-blog-card.jpg&#34; alt=&#34;My approach to running a link blog — I started running a basic link blog on this domain back in November 2003—publishing links (which I called “blogmarks”) with a title, URL, short snippet of commentary and a “via” …&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: My approach to running a link blog — I started running a basic link blog on this domain back in November 2003—publishing links (which I called “blogmarks”) with a title, URL, short snippet of commentary and a “via” …&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;My approach to running a link blog&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;I started running a basic link blog on this domain back in November 2003—publishing links (which I called “blogmarks”) with a title, URL, short snippet of commentary and a “via” …&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;Simon Willison’s Weblog · simonwillison.net&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;I still cannot believe I thought I had such a unique idea with thoughts only to find out shortly thereafter that Simon beat me to the punch by about 20 years!&lt;/p&gt;&#xA;&lt;p&gt;Simon put a lot of work into this [post](&lt;a href=&#34;https://simonwillison.net/2024/Dec/22/link-blog/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/simonwillison.net.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/simonwillison.net.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://simonwillison.net/2024/Dec/22/link-blog/&lt;/a&gt;&lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;.waylonwalker.com) please check it out.  Its not only filled with tons of little nuggets about blogging, it has just a ton of links to other posts I’m itching to read now.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://simonwillison.net/2024/Dec/22/link-blog/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/simonwillison.net.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/simonwillison.net.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://simonwillison.net/2024/Dec/22/link-blog/&lt;/a&gt;&lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;.waylonwalker.com&lt;/p&gt;&#xA;&lt;h2 id=&#34;a-linkblog-proves-that-you-read&#34;&gt;a linkblog proves that you read &lt;a href=&#34;#a-linkblog-proves-that-you-read&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Simon mentions it in the post as well, but one thing about having a link blog does is that it proves that you actually read articles that you share.  This is really more about proving to myself, and reminding myself that anyone else, it’s a good feeling.&lt;/p&gt;&#xA;&lt;h2 id=&#34;trying-to-add-soemthing-extra&#34;&gt;Trying to add soemthing extra &lt;a href=&#34;#trying-to-add-soemthing-extra&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;include names of people, and add tags for common people&lt;/li&gt;&#xA;&lt;li&gt;something extra - the whole point is to bring something to the post without stealing thunder, but rather linkbuilding for the author that put the hard work in.&lt;/li&gt;&#xA;&lt;li&gt;copious amounts of quotes&lt;/li&gt;&#xA;&lt;li&gt;It should bring the author up not put them down&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;a-post-a-day&#34;&gt;A post a day &lt;a href=&#34;#a-post-a-day&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;well .98 posts per day&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Simon mentions starting in Nov 2003, which puts that at 7722 days since then.  That is so close to a post a day for 21 years, even though they are often as short as one sentence that is impressive to keep up over time.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;So far I’ve published 7,607 link blog posts and counting.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;whats-my-rate&#34;&gt;What’s my rate &lt;a href=&#34;#whats-my-rate&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I just check and I am at 513 days in with 413 posts (0.8 posts/day).  Not quite up to Simon, but close enough to be proud of.  My only grief is that I didn’t start sooner.&lt;/p&gt;&#xA;&lt;h2 id=&#34;my-stack&#34;&gt;My stack &lt;a href=&#34;#my-stack&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I have a full post explaining more about how I do mine and the stack behind it here.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://waylonwalker.com/thoughts/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://waylonwalker.com/thoughts/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;see-images-are-hard&#34;&gt;See Images &lt;strong&gt;are&lt;/strong&gt; hard! &lt;a href=&#34;#see-images-are-hard&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;This is one of the main reasons that I built &lt;a href=&#34;https://dropper.wayl.one&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/dropper.wayl.one.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/dropper.wayl.one.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;dropper&lt;/a&gt; for myself, and plan to include it in &lt;a href=&#34;https://fokais.com&#34;&gt;fokais&lt;/a&gt; as a product to help others with their blog.  This is definite evidence that I am not the only one with this issue!&lt;/p&gt;&#xA;&lt;h2 id=&#34;ive-made-images-easy-form-myself&#34;&gt;I’ve made images easy form myself &lt;a href=&#34;#ive-made-images-easy-form-myself&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I’ve tried half a dozen or so easy techniques from obsidian to various github repos and none have really hit me with inspiration to really add screenshots like I do with &lt;a href=&#34;https://dropper.wayl.one&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/dropper.wayl.one.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/dropper.wayl.one.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;dropper&lt;/a&gt;.  I write all of my thoughts posts in a chrome extension drop down local first style and when i hit paste it uploads and gives me a markdown image link, it cannot be easier for me.&lt;/p&gt;&#xA;&lt;p&gt;When I store them I compress them and convert them to webp.  I serve them by streaming them out of an s3 bucket with &lt;a href=&#34;/fastapi/&#34; class=&#34;glossary-term&#34; title=&#34;FastAPI is a modern and efficient web framework for Python, built on top of the Starlette web framework, and pydantic for data validation and serialization.&#34;&gt;fastapi&lt;/a&gt; and some very generous cloudflare cache headers, so I should only get a request for that image about once a year.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Warning, I built dropper for me, no guarantees that it works forever, foakis will be for more users.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.wayl.one/api/file/2d54112d-b6c0-4f42-bbbb-eeb5fea133bd.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/2d54112d-b6c0-4f42-bbbb-eeb5fea133bd.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;bluesky-does-not-penalize-for-links&#34;&gt;Bluesky does not penalize for links &lt;a href=&#34;#bluesky-does-not-penalize-for-links&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I am loving bluesky more and more, learning this just gave it another level up.&lt;/p&gt;&#xA;&lt;hr/&gt;&#xA;&lt;h2 id=&#34;series&#34;&gt;Series &lt;a href=&#34;#series&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I just noticed that Simon has Series on his blog in a very elegant way.  One I need to get back to blogging more, I did not do so good in 2024, and two this is awesome and I want it.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://dropper.wayl.one/api/file/ec59349e-cca7-4fa9-a57e-50cc442305db.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/ec59349e-cca7-4fa9-a57e-50cc442305db.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;test&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 How I use Obsidian Templater</title>
    <id>https://go.waylonwalker.com/thought-454/</id>
    <updated>2024-12-22T16:53:28Z</updated>
    <published>2024-12-22T16:53:28Z</published>
    <link href="https://go.waylonwalker.com/thought-454/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://cassidoo.co/post/obsidian-templater/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://cassidoo.co/post/obsidian-templater/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://cassidoo.co/og-image/obsidian-templater.png&#34; alt=&#34;How I use Obsidian Templater — One of my favorite Obsidian plugins is Templater, which lets you create reusable templates in your notes vault!&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: How I use Obsidian Templater — One of my favorite Obsidian plugins is Templater, which lets you create reusable templates in your notes vault!&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;How I use Obsidian Templater&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;One of my favorite Obsidian plugins is Templater, which lets you create reusable templates in your notes vault!&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;cassidoo.co&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;I really like this idea of keeping a set up contacts in a markdown repo, and being able to wikilink them to different tickets / meetings and what not.  I’m imagining the graph you can build, it feels quite interesting.  Even more relevant as we see things like teams rolling out retention limits to messages.&lt;/p&gt;&#xA;&lt;p&gt;Here is Cassidy’s format, I like it but I’m probably not going to track the birthday of most people I work with, thats just not the relationship I tend to have with work friends.  It might be a midwest or non tech thing, but I am not even aware if any of my co-workers have social media, and I assume that if they did it would not include anything work related but more football and other sports.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.wayl.one/api/file/32859bd6-1b9f-4d40-a87c-0b96a5a42084.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/32859bd6-1b9f-4d40-a87c-0b96a5a42084.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Damn, I love dropper already</title>
    <id>https://go.waylonwalker.com/thought-449/</id>
    <updated>2024-12-18T00:42:07Z</updated>
    <published>2024-12-18T00:42:07Z</published>
    <link href="https://go.waylonwalker.com/thought-449/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://thoughts.waylonwalker.com/post/448</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://thoughts.waylonwalker.com/post/448&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img src=&#34;https://shots.wayl.one/shot/?url=https://thoughts.waylonwalker.com/post/448&amp;amp;height=600&amp;amp;width=1200&amp;amp;scaled_width=1200&amp;amp;scaled_height=600&#34; alt=&#34;How to make your RSS feed pretty&#xA; — &#xA;&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;I love me some styled rss, it&amp;amp;#39;s how the OG internet was made to be.  You choose what you want to read and when.  There is no middleman aggregator infl...&amp;#34; loading=&amp;#34;lazy&amp;#34;&amp;gt;&#xA;&amp;lt;/div&amp;gt;&#xA;&amp;lt;div class=&amp;#34;embed-card-content&amp;#34;&amp;gt;&#xA;  &amp;lt;div class=&amp;#34;embed-card-title&amp;#34;&amp;gt;&#xA;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&#xA;&amp;lt;p&amp;gt;How to make your RSS feed pretty&amp;lt;/p&amp;gt;&#xA;&amp;lt;/div&amp;gt;&#xA;      &amp;lt;div class=&#34; embed-card-description glightbox&#34;=&#34;&#34;/ data-glightbox=&#34;description: How to make your RSS feed pretty&#xA; — &#xA;&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;I love me some styled rss, it&amp;amp;#39;s how the OG internet was made to be.  You choose what you want to read and when.  There is no middleman aggregator infl...&amp;#34; loading=&amp;#34;lazy&amp;#34;&amp;gt;&#xA;&amp;lt;/div&amp;gt;&#xA;&amp;lt;div class=&amp;#34;embed-card-content&amp;#34;&amp;gt;&#xA;  &amp;lt;div class=&amp;#34;embed-card-title&amp;#34;&amp;gt;&#xA;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&#xA;&amp;lt;p&amp;gt;How to make your RSS feed pretty&amp;lt;/p&amp;gt;&#xA;&amp;lt;/div&amp;gt;&#xA;      &amp;lt;div class=&#34;&gt;&#xA;&lt;pre&gt;&lt;code&gt;I love me some styled rss, it&amp;amp;#39;s how the OG internet was made to be.  You choose what you want to read and when.  There is no middleman aggregator infl...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;thoughts.waylonwalker.com&lt;/div&gt;&#xA;    &lt;/a&gt;&lt;/div&gt;&lt;a href=&#34;https://thoughts.waylonwalker.com/post/448&#34; class=&#34;embed-card-link  has-avatar has-avatar-before&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/thoughts.waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/thoughts.waylonwalker.com.ico&#34;&gt;&#xA;  &lt;/a&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 How to make your RSS feed pretty</title>
    <id>https://go.waylonwalker.com/thought-448/</id>
    <updated>2024-12-18T00:38:24Z</updated>
    <published>2024-12-18T00:38:24Z</published>
    <link href="https://go.waylonwalker.com/thought-448/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://cassidoo.co/post/prettify-rss/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://cassidoo.co/post/prettify-rss/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;https://cassidoo.co/og-image/prettify-rss.png&#34; alt=&#34;How to make your RSS feed pretty — Life is too short for ugly XML.&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: How to make your RSS feed pretty — Life is too short for ugly XML.&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;How to make your RSS feed pretty&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Life is too short for ugly XML.&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;cassidoo.co&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;I love me some styled rss, it’s how the &lt;a href=&#34;/og/&#34; class=&#34;glossary-term&#34; title=&#34;OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...&#34;&gt;OG&lt;/a&gt; internet was made to be.  You choose what you want to read and when.  There is no middleman aggregator inflating the reach of things they want you to see or suffocating things against them.  It’s just you and your internet friends.&lt;/p&gt;&#xA;&lt;h2 id=&#34;cassidys-styled-rsshttpscassidoocorssxml&#34;&gt;&lt;a href=&#34;https://cassidoo.co/rss.xml&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/cassidoo.co.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/cassidoo.co.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Cassidy’s Styled rss&lt;/a&gt; &lt;a href=&#34;#cassidys-styled-rsshttpscassidoocorssxml&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Cassidy has a quite lovely and easy to read rss feed, with an open source style sheet, that is part of her open source blog template for astro &lt;a href=&#34;https://github.com/cassidoo/blahg&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;blahg&lt;/a&gt;, love that name by the way!&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.wayl.one/api/file/f8a6c448-2a95-47e1-b128-2bd7c3865253.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/f8a6c448-2a95-47e1-b128-2bd7c3865253.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;dave-ruperts-feedhttpsdaverupertcomatomxml&#34;&gt;&lt;a href=&#34;https://daverupert.com/atom.xml&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/daverupert.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/daverupert.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Dave Rupert’s Feed&lt;/a&gt; &lt;a href=&#34;#dave-ruperts-feedhttpsdaverupertcomatomxml&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I first learned of styled rss feeds from shoptalkshow.com, specifically from &lt;a href=&#34;daverupert.com&#34;&gt;Dave Rupert&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.wayl.one/api/file/1be6c1e1-1645-4387-9e6d-134e001c04cb.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/1be6c1e1-1645-4387-9e6d-134e001c04cb.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Dave uses a pretty bog standard styled rss feed with &lt;a href=&#34;https://github.com/genmon/aboutfeeds/blob/main/tools/pretty-feed-v3.xsl&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;pretty-feed-v3&lt;/a&gt;.  This repo is probably the best place to start if you are looking to style your rss feed.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/genmon/aboutfeeds/blob/main/tools/pretty-feed-v3.xsl&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://github.com/genmon/aboutfeeds/blob/main/tools/pretty-feed-v3.xsl&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;my-rss-feedhttpswaylonwalkercomarchiverssxml&#34;&gt;&lt;a href=&#34;https://waylonwalker.com/archive/rss.xml&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;My RSS Feed&lt;/a&gt; &lt;a href=&#34;#my-rss-feedhttpswaylonwalkercomarchiverssxml&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;My feed comes from my static site generator &lt;a href=&#34;markata.dev&#34;&gt;markata&lt;/a&gt;, a plugins all the way down static site generator written in python, made for customizing, lacking just about any and all docs so you are on your own.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.wayl.one/api/file/214bd66f-88e1-4907-8e47-51d22b376678.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/214bd66f-88e1-4907-8e47-51d22b376678.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Dropper</title>
    <id>https://go.waylonwalker.com/thought-447/</id>
    <updated>2024-12-16T22:26:59Z</updated>
    <published>2024-12-16T22:26:59Z</published>
    <link href="https://go.waylonwalker.com/thought-447/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://dropper.wayl.one/</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://dropper.wayl.one/&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img class=&#34;glightbox&#34; src=&#34;http://dropper.wayl.one/static/dropper.png&#34; alt=&#34;Dropper — Dropper is a simple file sharing service.&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: Dropper — Dropper is a simple file sharing service.&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Dropper&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Dropper is a simple file sharing service.&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;Dropper · dropper.wayl.one&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Dropper is a place for me to drop files for quick posts like this.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.wayl.one/api/file/c3a4c39d-c9ab-4e0a-b4c1-b74362877342.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/c3a4c39d-c9ab-4e0a-b4c1-b74362877342.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 statically makes OG images **easy**</title>
    <id>https://go.waylonwalker.com/thought-429/</id>
    <updated>2024-11-17T21:48:04Z</updated>
    <published>2024-11-17T21:48:04Z</published>
    <link href="https://go.waylonwalker.com/thought-429/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://cdn.statically.io/og/statically%20makes%20OG%20images%20**</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://cdn.statically.io/og/statically%20makes%20OG%20images%20**easy**&#34; class=&#34;embed-card-link  has-avatar has-avatar-before&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/cdn.statically.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/cdn.statically.io.png&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;External Link&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;cdn.statically.io&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Staically makes creating &lt;a href=&#34;/og/&#34; class=&#34;glossary-term&#34; title=&#34;OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...&#34;&gt;OG&lt;/a&gt; images so easy, you can just pop this in your  section with some og tags.&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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:image&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:image&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;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;https://cdn.statically.io/og/{{post.title}}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;twitter:image&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;twitter:image&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;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;https://cdn.statically.io/og/{{post.title}}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:image:height&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;640&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;og:image:width&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;1280&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>blogging in 2024</title>
    <id>https://go.waylonwalker.com/blogging-in-2024/</id>
    <updated>2024-08-05T10:02:09Z</updated>
    <published>2024-08-05T10:02:09Z</published>
    <link href="https://go.waylonwalker.com/blogging-in-2024/" rel="alternate" type="text/html"></link>
    <summary type="text">Over the past years couple of years blog traffic has been tanking, for some time I thought it might have just been me, but then i heard it from Dave Rupert...</summary>
    <content type="html">&lt;p&gt;Over the past years couple of years blog traffic has been tanking, for some&#xA;time I thought it might have just been me, but then i heard it from Dave Rupert&#xA;on Shop Talk show, and it made sense.  LLMs and AI is slowly killing the&#xA;internet as we know it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;my-metrics&#34;&gt;My metrics &lt;a href=&#34;#my-metrics&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I dug into my emails from the google search console team and found two results&#xA;nearly one year apart.  Impressions are only 60% of its value a year ago while&#xA;clicks are only 35% of where they were a year ago.  I’m getting less&#xA;impressions and even less clicks.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/2706f990-f2fa-4ccb-a7a9-142ee20686c7.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/2706f990-f2fa-4ccb-a7a9-142ee20686c7.webp&#34; alt=&#34;blogging-in-2024-20240805080104035.webp&#34;/ data-glightbox=&#34;description: blogging-in-2024-20240805080104035.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;May 2023&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/cd708a26-27d2-4a33-9f22-b0cb0dd54fc5.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/cd708a26-27d2-4a33-9f22-b0cb0dd54fc5.webp&#34; alt=&#34;blogging-in-2024-20240805080137554.webp&#34;/ data-glightbox=&#34;description: blogging-in-2024-20240805080137554.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;June 2024&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;suspicions&#34;&gt;Suspicions &lt;a href=&#34;#suspicions&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;What I think is happening is a large portion of users are getting their answers&#xA;from ChatGPT, Copilot, and llms like this.  A lot of my posts have been filling&#xA;gaps in the internet, notes for myself when I struggle to integrate x in y&#xA;because there was a gap of how to do so in the docs and stack overflow. Some&#xA;small fraction of users have moved on to duck duck go and other non global&#xA;warming search engines with AI in their results.&lt;/p&gt;&#xA;&lt;p&gt;Clicks are down even further, than impressions.  I can’t tell for sure but my&#xA;gut feeling is that people are using the AI generated results.  I know I use&#xA;them quite often, but listening to Justin and Autumn at the end of the latest&#xA;ship it podcast &lt;a href=&#34;https://changelog.com/shipit/115&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/changelog.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/changelog.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://changelog.com/shipit/115&lt;/a&gt;, they both claim that they get&#xA;no benefits from it and don’t know anyone who does.  In fact Justin has taken&#xA;the most ethical approach to move to duck duck go since it doesn’t kill the&#xA;earth with each search by injecting AI results.  Personally I do find it quite&#xA;helpful, sometimes the answer is there, or an idea that triggers me to think of&#xA;the idea.&lt;/p&gt;&#xA;&lt;h2 id=&#34;ok-blogging-is-dead-why-keep-going&#34;&gt;Ok blogging is dead why keep going &lt;a href=&#34;#ok-blogging-is-dead-why-keep-going&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Just as always blogging has been for me. It’s a great place to write down your&#xA;thoughts for later reference, and to help cement them into your brain.  Beyond&#xA;getting famous and clicks blogging is useful to you first and foremost, that&#xA;should be the number one reason.&lt;/p&gt;&#xA;&lt;h2 id=&#34;how-do-we-keep-the-internet-of-old&#34;&gt;How do we keep the internet of old &lt;a href=&#34;#how-do-we-keep-the-internet-of-old&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;RSS feed readers is a great way to keep creators that you like and want to&#xA;support in your feed regardless of what the higher powers of search and social&#xA;media think of them.  This year I built my own [[reader]], and I use it every&#xA;single day to read articles out of my own custom curated feed.&lt;/p&gt;&#xA;&lt;p&gt;I have also created &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;Thoughts&lt;/a&gt; to help share and lift up creators that make&#xA;good posts.  I have a crome extension that allows me to create a blog post tied&#xA;to a link right within chrome.  I use this several times per day to save some&#xA;pages for later with a small note.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Trying Obsidian</title>
    <id>https://go.waylonwalker.com/trying-obsidian/</id>
    <updated>2024-07-31T00:00:00Z</updated>
    <published>2024-07-31T00:00:00Z</published>
    <link href="https://go.waylonwalker.com/trying-obsidian/" rel="alternate" type="text/html"></link>
    <summary type="text">I am giving obsidian a try, this is a test post to learn the flow. Something that has been really hard for me for a long time is images, I don&#39;t include a...</summary>
    <content type="html">&lt;p&gt;I am giving obsidian a try, this is a test post to learn the flow.  Something&#xA;that has been really hard for me for a long time is images, I don’t include a&#xA;lot of images just because it takes so much longer just to get the post out.  I&#xA;store them in a separate repo, I need to resize and compress them for the web&#xA;so they aren’t so big.&lt;/p&gt;&#xA;&lt;h2 id=&#34;images-are-easy&#34;&gt;Images are easy &lt;a href=&#34;#images-are-easy&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;This is my current wallpaper.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/fe97308b-00f8-4860-be80-6869fa45d05a.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/fe97308b-00f8-4860-be80-6869fa45d05a.webp&#34; alt=&#34;trying-obsidian-20240731135759007.webp&#34;/ data-glightbox=&#34;description: trying-obsidian-20240731135759007.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I took he screenshot and just pasted it in.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;I have more about my process in this post about &lt;a href=&#34;/obsidian-image-converter/&#34; class=&#34;wikilink&#34; data-title=&#34;Obsidian Image Converter&#34; data-description=&#34;I&amp;#39;m giving obsidian a go as an editor for my blog and one of the main things I want to fix in my workflow is the ability to quickly drop in images. on first...&#34; data-date=&#34;2024-07-30&#34; data-preview=&#34;I&amp;#39;m giving obsidian a go as an editor for my blog and one of the main things I want to fix in my workflow is the ability to quickly drop in images. on first...&#34;&gt;Obsidian Image Converter&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;its-still-just-markdown&#34;&gt;It’s still just markdown &lt;a href=&#34;#its-still-just-markdown&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I don’t know why it took me so long to understand this but obsidian is just&#xA;markdown files.  I pretty much just plugged in my existing blog and it picked&#xA;up all the tags and was ready to run.  I now get some nice visualizations to&#xA;help me identify posts that were not ever tagged or maybe left unfinished.&lt;/p&gt;&#xA;&lt;h2 id=&#34;it-leans-hard-on-wikilinks&#34;&gt;It leans hard on wikilinks &lt;a href=&#34;#it-leans-hard-on-wikilinks&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I just finished moving my backend over to md-it-python, which comes with some&#xA;good wiliklink support. I even make a &lt;a href=&#34;/sick-wikilink-hover/&#34; class=&#34;wikilink&#34; data-title=&#34;sick wikilink hover&#34; data-description=&#34;Today I set up some sick wikilink hover effects using tailwind see a-case-for-tailwindcss. When you hover over them they show an image preview of the link...&#34; data-date=&#34;2024-05-30&#34; data-preview=&#34;Today I set up some sick wikilink hover effects using tailwind see a-case-for-tailwindcss. When you hover over them they show an image preview of the link...&#34;&gt;sick wikilink hover&lt;/a&gt; feature that&#xA;previews wikilinks on hover.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/fe12e8ca-fdfd-41de-adcb-dc14155324c3.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/fe12e8ca-fdfd-41de-adcb-dc14155324c3.webp&#34; alt=&#34;trying-obsidian-20240804194656515.webp&#34;/ data-glightbox=&#34;description: trying-obsidian-20240804194656515.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Inside of obsidian when you start a wikilink it starts searching for posts to&#xA;link.  I get this feature in using the marksman lsp, and it’s nice to see that&#xA;it works pretty similarly, but with much less setup and configuration.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/4e0883a8-2430-49bf-99f3-2ce4df9516f5.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/4e0883a8-2430-49bf-99f3-2ce4df9516f5.webp&#34; alt=&#34;trying-obsidian-20240804194934445.webp&#34;/ data-glightbox=&#34;description: trying-obsidian-20240804194934445.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;creating-new-files&#34;&gt;creating new files &lt;a href=&#34;#creating-new-files&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The same keybinding that will take you to a new fill will create a &lt;a href=&#34;/obsidian-new-file/&#34; class=&#34;wikilink&#34; data-title=&#34;Obsidian-new-file&#34; data-description=&#34;Wikilinks are a core concept within obsidian to link to documents by slug wrapped in double square brackets. These are commonly used within wiki site...&#34; data-date=&#34;2024-08-05&#34; data-preview=&#34;Wikilinks are a core concept within obsidian to link to documents by slug wrapped in double square brackets. These are commonly used within wiki site...&#34;&gt;Obsidian-new-file&lt;/a&gt; in the root directory of your project.  This is very handy to create a bunch of new links and files quickly.  This feature does not work the greatest for my blog currently as it does not create them from a template, and I use templates to start all of my posts. see &lt;a href=&#34;/obsidian-using-templater-like-copier/&#34; class=&#34;wikilink&#34; data-title=&#34;Obsidian Using Templater Like Copier&#34; data-description=&#34;I&amp;#39;ve long used copier to create all of my posts for my blog, and it works really well for my workflow. I think of a title, call a template, and give it a...&#34; data-date=&#34;2024-07-31&#34; data-preview=&#34;I&amp;#39;ve long used copier to create all of my posts for my blog, and it works really well for my workflow. I think of a title, call a template, and give it a...&#34;&gt;Obsidian Using Templater Like Copier&lt;/a&gt;.  I am now seeing why these plugins push so much automation into the templating system by directory.&lt;/p&gt;&#xA;&lt;h2 id=&#34;new-keybindings&#34;&gt;New keybindings &lt;a href=&#34;#new-keybindings&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Until I really got myself in and working I didn’t realize all of the vim&#xA;features that I would really need, &lt;a href=&#34;/obsidian-go-to-definition/&#34; class=&#34;wikilink&#34; data-title=&#34;Obsidian-go-to-definition&#34; data-description=&#34;It was not obvious to me, but if you have a wikilink such as trying-obsidian, you can jump to the file in obsidian, just like you can with lsp go to...&#34; data-date=&#34;2024-08-04&#34; data-preview=&#34;It was not obvious to me, but if you have a wikilink such as trying-obsidian, you can jump to the file in obsidian, just like you can with lsp go to...&#34;&gt;Obsidian-go-to-definition&lt;/a&gt; was one of the&#xA;very first ones.  Obsidian has a feature to take you to the note under the&#xA;cursor by pressing alt+enter, but that was not obvious at first.&lt;/p&gt;&#xA;&lt;h2 id=&#34;renaming-posts&#34;&gt;Renaming posts &lt;a href=&#34;#renaming-posts&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Obsidian makes it so easy to rename a post, and it renames the file for you&#xA;without leaving the editor, needing to close the file or anything.  You can&#xA;just go to the top of the file and change the name without needing to find it&#xA;in a file tree or anything.  Its a very nice and clean feature.&lt;/p&gt;&#xA;&lt;h2 id=&#34;i-miss-my-gqap&#34;&gt;I miss my gqap &lt;a href=&#34;#i-miss-my-gqap&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;There are still some vim features like &lt;a href=&#34;/vim-gq/&#34; class=&#34;wikilink&#34; data-title=&#34;Vim-gq&#34; data-description=&#34;Vim has a handy feature to format text with . You can use it in visual mode, give it a motion, or if you give it it will format the current line. I use this...&#34; data-date=&#34;2024-08-05&#34; data-preview=&#34;Vim has a handy feature to format text with . You can use it in visual mode, give it a motion, or if you give it it will format the current line. I use this...&#34;&gt;Vim-gq&lt;/a&gt; that I use constantly to reflow&#xA;long lines into readable paragraphs no matter where I open them that I cannot&#xA;find a way to do in obsidian, and I miss it. ## Recent Posts.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;ok, so vim mode inside of obsidian really does work, and it does this, its&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;just less obvious because of obsidians softwraps in the editor.  And I&#xA;don’t think it works on indented lines like these, in this note.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;missing-seemless-publish&#34;&gt;missing seemless publish &lt;a href=&#34;#missing-seemless-publish&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I run pre-commit on my posts to clean up the whitespace and line endings.&#xA;Generally this does not do much, but aparantly obsidian is clashing with my&#xA;setup, and not running pre-commit correctly so I need to leave my editor to&#xA;publish a post.&lt;/p&gt;&#xA;&lt;p&gt;With neovim I have a hotkey to commit verbosely with fugitive, &lt;code&gt;gic&lt;/code&gt;, and to&#xA;push &lt;code&gt;gpp&lt;/code&gt;, and I use this all the time as I am writing.&lt;/p&gt;&#xA;&lt;h2 id=&#34;recent-posts&#34;&gt;Recent Posts &lt;a href=&#34;#recent-posts&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Using obsidian I edited  over 260 posts just this week!  Some whole sections&#xA;like my gratitute posts were kinda sitting completely untagged and I fixed that&#xA;up.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/weeknote-0/&#34; class=&#34;wikilink&#34; data-title=&#34;Weeknote 0&#34; data-description=&#34;Inspired by Simon Willison I&amp;#39;m starting a weeknotes retrospective post to recap the week. The theme this week has been learning and setting up obsidian to...&#34; data-date=&#34;2024-08-04&#34; data-preview=&#34;Inspired by Simon Willison I&amp;#39;m starting a weeknotes retrospective post to recap the week. The theme this week has been learning and setting up obsidian to...&#34;&gt;Weeknote 0&lt;/a&gt; (Modified: 2024-08-04 20:47:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/obsidian-go-to-definition/&#34; class=&#34;wikilink&#34; data-title=&#34;Obsidian-go-to-definition&#34; data-description=&#34;It was not obvious to me, but if you have a wikilink such as trying-obsidian, you can jump to the file in obsidian, just like you can with lsp go to...&#34; data-date=&#34;2024-08-04&#34; data-preview=&#34;It was not obvious to me, but if you have a wikilink such as trying-obsidian, you can jump to the file in obsidian, just like you can with lsp go to...&#34;&gt;Obsidian-go-to-definition&lt;/a&gt; (Modified: 2024-08-04 20:44:09)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/trying-obsidian/&#34; class=&#34;wikilink&#34; data-title=&#34;Trying Obsidian&#34; data-description=&#34;I am giving obsidian a try, this is a test post to learn the flow. Something that has been really hard for me for a long time is images, I don&amp;#39;t include a...&#34; data-date=&#34;2024-07-31&#34; data-preview=&#34;I am giving obsidian a try, this is a test post to learn the flow. Something that has been really hard for me for a long time is images, I don&amp;#39;t include a...&#34;&gt;Trying Obsidian&lt;/a&gt; (Modified: 2024-08-04 20:40:48)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/knock-and-sweep/&#34; class=&#34;wikilink&#34; data-title=&#34;Printing 42 keys at once&#34; data-description=&#34;I&amp;#39;m working on creating some gcode to create a whole set of key caps in one print, it is getting tedious to print them one at a time, and my past experience...&#34; data-date=&#34;2024-08-03&#34; data-preview=&#34;I&amp;#39;m working on creating some gcode to create a whole set of key caps in one print, it is getting tedious to print them one at a time, and my past experience...&#34;&gt;Printing 42 keys at once&lt;/a&gt; (Modified: 2024-08-03 21:44:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/blogging-in-2024/&#34; class=&#34;wikilink&#34; data-title=&#34;blogging in 2024&#34; data-description=&#34;Over the past years couple of years blog traffic has been tanking, for some time I thought it might have just been me, but then i heard it from Dave Rupert...&#34; data-date=&#34;2024-08-05&#34; data-preview=&#34;Over the past years couple of years blog traffic has been tanking, for some time I thought it might have just been me, but then i heard it from Dave Rupert...&#34;&gt;blogging in 2024&lt;/a&gt; (Modified: 2024-08-03 21:43:28)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/pandas-pattern/&#34; class=&#34;wikilink&#34; data-title=&#34;My favorite pandas pattern&#34; data-description=&#34;I work with a lot of transactional timeseries data that includes categories. I often want to create timeseries plots with each category as its own line. This...&#34; data-date=&#34;2018-03-01&#34; data-preview=&#34;I work with a lot of transactional timeseries data that includes categories. I often want to create timeseries plots with each category as its own line. This...&#34;&gt;My favorite pandas pattern&lt;/a&gt; (Modified: 2024-08-03 21:43:28)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/python-tips/&#34; class=&#34;wikilink&#34; data-title=&#34;Python Tips&#34; data-description=&#34;** func(** locals().update(d)&#34; data-date=&#34;2019-01-21&#34; data-preview=&#34;** func(** locals().update(d)&#34;&gt;Python Tips&lt;/a&gt; (Modified: 2024-08-03 21:43:28)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/productive-one-on-one/&#34; class=&#34;wikilink&#34; data-title=&#34;Productive one on one&#34; data-date=&#34;2020-02-24&#34; data-preview=&#34;Inspired by https://m.soundcloud.com/front-end-happy-hour/episode-095-shot-for-shot-one-on-ones&#34;&gt;Productive one on one&lt;/a&gt; (Modified: 2024-08-03 21:42:14)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/kedro-basics/&#34; class=&#34;wikilink&#34; data-title=&#34;Kedro Basics&#34; data-description=&#34;In my upcoming free kedro course, you can learn how to start building pipelines in 5 days.&#34; data-date=&#34;2020-08-08&#34; data-preview=&#34;In my upcoming free kedro course, you can learn how to start building pipelines in 5 days.&#34;&gt;Kedro Basics&lt;/a&gt; (Modified: 2024-08-03 21:41:58)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/passion/&#34; class=&#34;wikilink&#34; data-title=&#34;Follow Your Passion&#34; data-description=&#34;none&#34; data-date=&#34;2019-01-01&#34; data-preview=&#34;none&#34;&gt;Follow Your Passion&lt;/a&gt; (Modified: 2024-08-03 21:41:48)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/thank-you/&#34; class=&#34;wikilink&#34; data-title=&#34;Thanks For Subscribing&#34; data-description=&#34;You&amp;#39;re awesome! Thanks for subscribing to my newsletter.&#34; data-date=&#34;2020-05-20&#34; data-preview=&#34;You&amp;#39;re awesome! Thanks for subscribing to my newsletter.&#34;&gt;Thanks For Subscribing&lt;/a&gt; (Modified: 2024-08-03 21:41:17)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/animal-well-keyboard/&#34; class=&#34;wikilink&#34; data-title=&#34;animal well keyboard&#34; data-description=&#34;Animal well does not let you remap keys, and really doesn&amp;#39;t even inform you that it is keyboard compatible. I had to play around and discover the keymap,...&#34; data-date=&#34;2024-07-04&#34; data-preview=&#34;Animal well does not let you remap keys, and really doesn&amp;#39;t even inform you that it is keyboard compatible. I had to play around and discover the keymap,...&#34;&gt;animal well keyboard&lt;/a&gt; (Modified: 2024-08-03 21:41:07)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/automate-your-deploys/&#34; class=&#34;wikilink&#34; data-title=&#34;automate your deploys&#34; data-date=&#34;2020-02-07&#34;&gt;automate your deploys&lt;/a&gt; (Modified: 2024-08-03 21:40:36)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/expand-one-line-links/&#34; class=&#34;wikilink&#34; data-title=&#34;Expand One Line Links&#34; data-description=&#34;I wanted a super simple way to cross-link blog posts that require as little effort as possible, yet still looks good in vanilla markdown in GitHub. I have...&#34; data-date=&#34;2020-11-18&#34; data-preview=&#34;I wanted a super simple way to cross-link blog posts that require as little effort as possible, yet still looks good in vanilla markdown in GitHub. I have...&#34;&gt;Expand One Line Links&lt;/a&gt; (Modified: 2024-08-03 21:39:48)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/journey/&#34; class=&#34;wikilink&#34; data-title=&#34;It&amp;#39;s not all about winning&#34; data-description=&#34;This is my story into data science.&#34; data-date=&#34;2019-02-02&#34; data-preview=&#34;This is my story into data science.&#34;&gt;It&amp;#39;s not all about winning&lt;/a&gt; (Modified: 2024-08-03 21:39:36)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/2018-retrospective/&#34; class=&#34;wikilink&#34; data-title=&#34;2018 Retrospective&#34; data-description=&#34;2018 was a year of many ups and downs, and learning to deal with a whole new set of problems professionally and at home. In 2018 I logged in to my first...&#34; data-date=&#34;2019-01-05&#34; data-preview=&#34;2018 was a year of many ups and downs, and learning to deal with a whole new set of problems professionally and at home. In 2018 I logged in to my first...&#34;&gt;2018 Retrospective&lt;/a&gt; (Modified: 2024-08-03 21:39:25)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/goals-2019/&#34; class=&#34;wikilink&#34; data-title=&#34;2019 goals&#34; data-description=&#34;2019 goals&#34; data-date=&#34;2019-01-12&#34; data-preview=&#34;2019 goals&#34;&gt;2019 goals&lt;/a&gt; (Modified: 2024-08-03 21:39:11)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/debugging-python/&#34; class=&#34;wikilink&#34; data-title=&#34;Debugging Python&#34; data-description=&#34;Debugging Python&#34; data-date=&#34;2019-10-01&#34; data-preview=&#34;Debugging Python&#34;&gt;Debugging Python&lt;/a&gt; (Modified: 2024-08-03 21:38:11)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gatsby-rss-feed/&#34; class=&#34;wikilink&#34; data-title=&#34;RSS feed for your Gatsby Site&#34; data-description=&#34;Add an rss feed to your Gatsby Site&#34; data-date=&#34;2020-01-21&#34; data-preview=&#34;Add an rss feed to your Gatsby Site&#34;&gt;RSS feed for your Gatsby Site&lt;/a&gt; (Modified: 2024-08-03 21:38:01)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/pyspark/&#34; class=&#34;wikilink&#34; data-title=&#34;Pyspark&#34; data-description=&#34;I have been using pyspark since March 2019, here are my thoughts.&#34; data-date=&#34;2019-09-22&#34; data-preview=&#34;I have been using pyspark since March 2019, here are my thoughts.&#34;&gt;Pyspark&lt;/a&gt; (Modified: 2024-08-03 21:37:51)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/packages-to-investigate/&#34; class=&#34;wikilink&#34; data-title=&#34;📝 Packages to Investigate Notes&#34; data-description=&#34;Tabnine&#34; data-date=&#34;2019-10-14&#34; data-preview=&#34;Tabnine&#34;&gt;📝 Packages to Investigate Notes&lt;/a&gt; (Modified: 2024-08-03 21:37:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/git-diff-branches/&#34; class=&#34;wikilink&#34; data-title=&#34;Today I learned `git diff feature..main`&#34; data-description=&#34;Sometimes we get a little happy and mistakenly commit something that we just cant figure out. This is a good way to figure out what the heck has changed on the current branch compared to any other branch.&#34; data-date=&#34;2020-03-03&#34;&gt;Today I learned &lt;code&gt;git diff feature..main&lt;/code&gt;&lt;/a&gt; (Modified: 2024-08-03 21:37:33)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/practice-your-craft/&#34; class=&#34;wikilink&#34; data-title=&#34;Practice your craft&#34; data-date=&#34;2020-03-04&#34; data-preview=&#34;Show up For Practice # how I practice # What Works for You #&#34;&gt;Practice your craft&lt;/a&gt; (Modified: 2024-08-03 21:37:23)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/mentorship-vs-sponsorship/&#34; class=&#34;wikilink&#34; data-title=&#34;Mentorship Vs Sponsorship&#34; data-description=&#34;https://www.hanselminutes.com/784/doing-open-source-with-brian-douglas&#34; data-date=&#34;2021-04-17&#34; data-preview=&#34;https://www.hanselminutes.com/784/doing-open-source-with-brian-douglas&#34;&gt;Mentorship Vs Sponsorship&lt;/a&gt; (Modified: 2024-08-03 21:37:17)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gatsby-scripts-with-onload/&#34; class=&#34;wikilink&#34; data-title=&#34;Gatsby Scripts with onload&#34; data-description=&#34;This might be useful&#34; data-date=&#34;2020-05-22&#34; data-preview=&#34;This might be useful&#34;&gt;Gatsby Scripts with onload&lt;/a&gt; (Modified: 2024-08-03 21:37:06)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/long-variable-names-are-good/&#34; class=&#34;wikilink&#34; data-title=&#34;Long variable names are good&#34; data-description=&#34;🏷️ Long variable names are a good thing. Self documenting code is more important than poorly documented code. Simply adding a few characters to your...&#34; data-date=&#34;2020-02-24&#34; data-preview=&#34;🏷️ Long variable names are a good thing. Self documenting code is more important than poorly documented code. Simply adding a few characters to your...&#34;&gt;Long variable names are good&lt;/a&gt; (Modified: 2024-08-03 21:36:51)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/kedro-dependency-management/&#34; class=&#34;wikilink&#34; data-title=&#34;Kedro Dependency Management&#34; data-description=&#34;https://kedro.readthedocs.io/en/stable/04_project_dependencies.html?highlight=install&#34; data-date=&#34;2021-01-19&#34; data-preview=&#34;https://kedro.readthedocs.io/en/stable/04_project_dependencies.html?highlight=install&#34;&gt;Kedro Dependency Management&lt;/a&gt; (Modified: 2024-08-03 21:36:12)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/vim-notes/&#34; class=&#34;wikilink&#34; data-title=&#34;Vim Notes&#34; data-description=&#34;norcalli/neovim-plugin&#34; data-date=&#34;2018-02-01&#34; data-preview=&#34;norcalli/neovim-plugin&#34;&gt;Vim Notes&lt;/a&gt; (Modified: 2024-08-03 21:35:59)&lt;/li&gt;&#xA;&lt;li&gt;[[stories-10-10-2020-10-21-2020]] (Modified: 2024-08-03 21:34:59)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/new-machine-tpio/&#34; class=&#34;wikilink&#34; data-title=&#34;New Machine for developing Tests with TestProject.io&#34; data-description=&#34;Today I setup a new machine on Digital Ocean to use with TestProject.io, Here are my installation notes.&#34; data-date=&#34;2020-07-25&#34; data-preview=&#34;Today I setup a new machine on Digital Ocean to use with TestProject.io, Here are my installation notes.&#34;&gt;New Machine for developing Tests with TestProject.io&lt;/a&gt; (Modified: 2024-08-03 21:34:49)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/find-kedro-release/&#34; class=&#34;wikilink&#34; data-title=&#34;📢 Announcing find-kedro&#34; data-description=&#34;kedro is an amazing project that allows for super-fast prototyping of data pipelines, yet yielding production-ready pipelines. find-kedro enhances this experience by adding a pytest-like node discovery eliminating the need to bubble up pipelines through modules.&#34; data-date=&#34;2020-05-04&#34; data-preview=&#34;kedro is an amazing project that allows for super-fast prototyping of data pipelines, yet yielding production-ready pipelines. find-kedro enhances this experience by adding a pytest-like node...&#34;&gt;📢 Announcing find-kedro&lt;/a&gt; (Modified: 2024-08-03 21:34:35)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/serverless-things-to-investigate/&#34; class=&#34;wikilink&#34; data-title=&#34;Serverless things to investigate&#34; data-description=&#34;Free - only one step is free - can take rss to social&#34; data-date=&#34;2020-02-10&#34; data-preview=&#34;Free - only one step is free - can take rss to social&#34;&gt;Serverless things to investigate&lt;/a&gt; (Modified: 2024-08-03 21:34:24)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/cmd-exe-tips/&#34; class=&#34;wikilink&#34; data-title=&#34;cmd.exe tips&#34; data-description=&#34;cmd.exe tips&#34; data-date=&#34;2020-01-23&#34; data-preview=&#34;cmd.exe tips&#34;&gt;cmd.exe tips&lt;/a&gt; (Modified: 2024-08-03 21:34:12)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/last-n-git-files/&#34; class=&#34;wikilink&#34; data-title=&#34;List the latest files to change in a git repo&#34; data-date=&#34;2020-10-08&#34; data-preview=&#34;while read file; do echo $(git log --pretty=format:%ad -n 1 --date=raw -- $file) $file; done &amp;lt; &amp;lt;(git ls-tree -r --name-only HEAD | grep static/stories) | sort -r | head -n 3 | cut -d &amp;amp;#34; &amp;amp;#34; -f 3&#34;&gt;List the latest files to change in a git repo&lt;/a&gt; (Modified: 2024-08-03 21:33:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/maintianing-multiple-git-remotes/&#34; class=&#34;wikilink&#34; data-title=&#34;Maintianing multiple git remotes&#34; data-date=&#34;2020-05-07&#34; data-preview=&#34;git remote -v git remote add gitlab &amp;lt;url&amp;gt; git push gitlab main&#34;&gt;Maintianing multiple git remotes&lt;/a&gt; (Modified: 2024-08-03 21:33:49)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/fix-git-commit-author/&#34; class=&#34;wikilink&#34; data-title=&#34;Fix git commit author&#34; data-description=&#34;I was 20 commits into a hackoberfest PR when I suddenly realized they they all had my work email on them instead of my personal email 😱.&#34; data-date=&#34;2020-10-17&#34; data-preview=&#34;I was 20 commits into a hackoberfest PR when I suddenly realized they they all had my work email on them instead of my personal email 😱.&#34;&gt;Fix git commit author&lt;/a&gt; (Modified: 2024-08-03 21:33:41)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/reasons-to-kedro-notes/&#34; class=&#34;wikilink&#34; data-title=&#34;Reasons to Kedro&#34; data-description=&#34;collaboration - Sharable catalog - small nodes over monolithic notebooks - catalog - easily load anything without needing to run - No need to write...&#34; data-date=&#34;2020-10-31&#34; data-preview=&#34;collaboration - Sharable catalog - small nodes over monolithic notebooks - catalog - easily load anything without needing to run - No need to write...&#34;&gt;Reasons to Kedro&lt;/a&gt; (Modified: 2024-08-03 21:33:32)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/out-of-space/&#34; class=&#34;wikilink&#34; data-title=&#34;Out of Space&#34; data-description=&#34;Out of Space! How to remove 65 conda environments in one command.&#34; data-date=&#34;2020-02-01&#34; data-preview=&#34;Out of Space! How to remove 65 conda environments in one command.&#34;&gt;Out of Space&lt;/a&gt; (Modified: 2024-08-03 21:33:10)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/adding-google-fonts-to-a-gatsbyjs-site/&#34; class=&#34;wikilink&#34; data-title=&#34;Adding google fonts to a gatsbyjs site&#34; data-description=&#34;https://stackoverflow.com/questions/47488440/how-do-i-add-google-fonts-to-a-gatsby-site&#34; data-date=&#34;2020-05-17&#34; data-preview=&#34;https://stackoverflow.com/questions/47488440/how-do-i-add-google-fonts-to-a-gatsby-site&#34;&gt;Adding google fonts to a gatsbyjs site&lt;/a&gt; (Modified: 2024-08-03 21:32:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/strip-trailing-whitespace/&#34; class=&#34;wikilink&#34; data-title=&#34;Strip Trailing Whitespace from Git projects&#34; data-description=&#34;A common linting error thrown by various linters is for trailing whitespace. I most often use flake8. I generally have pre-commit hooks setup to strip this,...&#34; data-date=&#34;2020-09-30&#34; data-preview=&#34;A common linting error thrown by various linters is for trailing whitespace. I most often use flake8. I generally have pre-commit hooks setup to strip this,...&#34;&gt;Strip Trailing Whitespace from Git projects&lt;/a&gt; (Modified: 2024-08-03 21:32:44)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/happy/&#34; class=&#34;wikilink&#34; data-title=&#34;Do More of What Brings You Joy&#34; data-description=&#34;happiness in the workplace&#34; data-date=&#34;2019-01-01&#34; data-preview=&#34;happiness in the workplace&#34;&gt;Do More of What Brings You Joy&lt;/a&gt; (Modified: 2024-08-03 21:31:48)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/brainstorming-kedro-hooks/&#34; class=&#34;wikilink&#34; data-title=&#34;Brainstorming Kedro Hooks&#34; data-description=&#34;This post is a 🧠 branstorming work in progress. I will likely use it as a storage location/brain dump of hook ideas.&#34; data-date=&#34;2020-05-22&#34; data-preview=&#34;This post is a 🧠 branstorming work in progress. I will likely use it as a storage location/brain dump of hook ideas.&#34;&gt;Brainstorming Kedro Hooks&lt;/a&gt; (Modified: 2024-08-03 21:31:37)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/kedro-preflight/&#34; class=&#34;wikilink&#34; data-title=&#34;📝 Kedro Preflight Notes&#34; data-description=&#34;run checks before running the pipeline&#34; data-date=&#34;2020-05-09&#34; data-preview=&#34;run checks before running the pipeline&#34;&gt;📝 Kedro Preflight Notes&lt;/a&gt; (Modified: 2024-08-03 21:31:06)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/should-i-switch-to-zeit-now/&#34; class=&#34;wikilink&#34; data-title=&#34;Should I switch to Zeit Now&#34; data-description=&#34;Should I switch to Zeit Now. Netlify build times are starting to creep in.&#34; data-date=&#34;2020-02-06&#34; data-preview=&#34;Should I switch to Zeit Now. Netlify build times are starting to creep in.&#34;&gt;Should I switch to Zeit Now&lt;/a&gt; (Modified: 2024-08-03 21:30:50)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/kedro-catalog/&#34; class=&#34;wikilink&#34; data-title=&#34;Kedro Catalog&#34; data-description=&#34;I am exploring a kedro catalog meta data hook&#34; data-date=&#34;2020-07-24&#34; data-preview=&#34;I am exploring a kedro catalog meta data hook&#34;&gt;Kedro Catalog&lt;/a&gt; (Modified: 2024-08-03 21:30:35)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/python-deepwatch/&#34; class=&#34;wikilink&#34; data-title=&#34;python-deepwatch&#34; data-description=&#34;Is it possible to deep watch a single python function for changes?&#34; data-date=&#34;2020-04-27&#34; data-preview=&#34;Is it possible to deep watch a single python function for changes?&#34;&gt;python-deepwatch&lt;/a&gt; (Modified: 2024-08-03 21:30:20)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/career-day-wapello-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;Career Day Wapello 2021&#34; data-description=&#34;_&#34; data-date=&#34;2021-03-25&#34; data-preview=&#34;_&#34;&gt;Career Day Wapello 2021&lt;/a&gt; (Modified: 2024-08-01 15:44:43)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/obsidian-image-converter/&#34; class=&#34;wikilink&#34; data-title=&#34;Obsidian Image Converter&#34; data-description=&#34;I&amp;#39;m giving obsidian a go as an editor for my blog and one of the main things I want to fix in my workflow is the ability to quickly drop in images. on first...&#34; data-date=&#34;2024-07-30&#34; data-preview=&#34;I&amp;#39;m giving obsidian a go as an editor for my blog and one of the main things I want to fix in my workflow is the ability to quickly drop in images. on first...&#34;&gt;Obsidian Image Converter&lt;/a&gt; (Modified: 2024-08-01 15:40:11)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/obsidian-using-templater-like-copier/&#34; class=&#34;wikilink&#34; data-title=&#34;Obsidian Using Templater Like Copier&#34; data-description=&#34;I&amp;#39;ve long used copier to create all of my posts for my blog, and it works really well for my workflow. I think of a title, call a template, and give it a...&#34; data-date=&#34;2024-07-31&#34; data-preview=&#34;I&amp;#39;ve long used copier to create all of my posts for my blog, and it works really well for my workflow. I think of a title, call a template, and give it a...&#34;&gt;Obsidian Using Templater Like Copier&lt;/a&gt; (Modified: 2024-08-01 15:39:49)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-199/&#34; class=&#34;wikilink&#34;&gt;Gratitude 199&lt;/a&gt; (Modified: 2024-08-01 12:47:18)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude/&#34; class=&#34;wikilink&#34;&gt;gratitude&lt;/a&gt; (Modified: 2024-08-01 11:26:34)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-97/&#34; class=&#34;wikilink&#34;&gt;Gratitude 096&lt;/a&gt; (Modified: 2024-08-01 10:17:01)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-147/&#34; class=&#34;wikilink&#34;&gt;Gratitude 147&lt;/a&gt; (Modified: 2024-08-01 10:16:15)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-007/&#34; class=&#34;wikilink&#34;&gt;Gratitude 007&lt;/a&gt; (Modified: 2024-08-01 10:15:59)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/good-morning/&#34; class=&#34;wikilink&#34;&gt;Good Morning&lt;/a&gt; (Modified: 2024-08-01 10:15:48)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-005/&#34; class=&#34;wikilink&#34;&gt;Gratitude 005&lt;/a&gt; (Modified: 2024-08-01 10:15:33)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-003/&#34; class=&#34;wikilink&#34;&gt;Gratitude 003&lt;/a&gt; (Modified: 2024-08-01 10:15:11)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-004/&#34; class=&#34;wikilink&#34;&gt;Gratitude 004&lt;/a&gt; (Modified: 2024-08-01 10:14:59)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-001/&#34; class=&#34;wikilink&#34;&gt;Gratitude 001&lt;/a&gt; (Modified: 2024-08-01 10:14:50)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-008/&#34; class=&#34;wikilink&#34;&gt;Gratitude 008&lt;/a&gt; (Modified: 2024-08-01 10:14:38)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-002/&#34; class=&#34;wikilink&#34;&gt;Gratitude 002&lt;/a&gt; (Modified: 2024-08-01 10:14:26)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-006/&#34; class=&#34;wikilink&#34;&gt;Gratitude 006&lt;/a&gt; (Modified: 2024-08-01 10:14:09)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-093/&#34; class=&#34;wikilink&#34;&gt;Gratitude 093&lt;/a&gt; (Modified: 2024-08-01 10:12:37)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-081/&#34; class=&#34;wikilink&#34;&gt;Gratitude 081&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-082/&#34; class=&#34;wikilink&#34;&gt;Gratitude 082&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-083/&#34; class=&#34;wikilink&#34;&gt;Gratitude 083&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-084/&#34; class=&#34;wikilink&#34;&gt;Gratitude 084&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-085/&#34; class=&#34;wikilink&#34;&gt;Gratitude 085&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-086/&#34; class=&#34;wikilink&#34;&gt;Gratitude 086&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-087/&#34; class=&#34;wikilink&#34;&gt;Gratitude 087&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-088/&#34; class=&#34;wikilink&#34;&gt;Gratitude 088&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-089/&#34; class=&#34;wikilink&#34;&gt;Gratitude 089&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-090/&#34; class=&#34;wikilink&#34;&gt;Gratitude 090&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-103/&#34; class=&#34;wikilink&#34;&gt;Gratitude 103&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-104/&#34; class=&#34;wikilink&#34;&gt;Gratitude 104&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/the-good-old-days/&#34; class=&#34;wikilink&#34;&gt;The Good Old Days&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-050/&#34; class=&#34;wikilink&#34;&gt;Gratitude 049&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-051/&#34; class=&#34;wikilink&#34;&gt;Gratitude 051&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-052/&#34; class=&#34;wikilink&#34;&gt;Gratitude 052&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-053/&#34; class=&#34;wikilink&#34;&gt;Gratitude 053&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-054/&#34; class=&#34;wikilink&#34;&gt;Gratitude 054&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-055/&#34; class=&#34;wikilink&#34;&gt;Gratitude 055&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-056/&#34; class=&#34;wikilink&#34;&gt;Gratitude 056&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-057/&#34; class=&#34;wikilink&#34;&gt;Gratitude 057&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-058/&#34; class=&#34;wikilink&#34;&gt;Gratitude 058&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-059/&#34; class=&#34;wikilink&#34;&gt;Gratitude 059&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-060/&#34; class=&#34;wikilink&#34;&gt;Gratitude 060&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-061/&#34; class=&#34;wikilink&#34;&gt;Gratitude 061&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-062/&#34; class=&#34;wikilink&#34;&gt;Gratitude 062&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-063/&#34; class=&#34;wikilink&#34;&gt;Gratitude 063&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-064/&#34; class=&#34;wikilink&#34;&gt;Gratitude 64&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-065/&#34; class=&#34;wikilink&#34;&gt;Gratitude 065&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-066/&#34; class=&#34;wikilink&#34;&gt;Gratitude 066&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-067/&#34; class=&#34;wikilink&#34;&gt;Gratitude 067&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-068/&#34; class=&#34;wikilink&#34;&gt;Gratitude 068&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-069/&#34; class=&#34;wikilink&#34;&gt;Gratitude 069&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-070/&#34; class=&#34;wikilink&#34;&gt;Gratitude 070&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-071/&#34; class=&#34;wikilink&#34;&gt;Gratitude 071&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-072/&#34; class=&#34;wikilink&#34;&gt;Gratitude 072&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-073/&#34; class=&#34;wikilink&#34;&gt;gratitude 073&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-074/&#34; class=&#34;wikilink&#34;&gt;Gratitude 074&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-075/&#34; class=&#34;wikilink&#34;&gt;Gratitude 075&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-076/&#34; class=&#34;wikilink&#34;&gt;Gratitude 076&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-077/&#34; class=&#34;wikilink&#34;&gt;Gratitude 077&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-078/&#34; class=&#34;wikilink&#34;&gt;Gratitude 078&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-079/&#34; class=&#34;wikilink&#34;&gt;Gratitude 079&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-080/&#34; class=&#34;wikilink&#34;&gt;Gratitude 080&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-023/&#34; class=&#34;wikilink&#34;&gt;Gratitude 023&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-024/&#34; class=&#34;wikilink&#34;&gt;Gratitude 024&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-025/&#34; class=&#34;wikilink&#34;&gt;Gratitude 025&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-026/&#34; class=&#34;wikilink&#34;&gt;Gratitude 026&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-027/&#34; class=&#34;wikilink&#34;&gt;Gratitude 027&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-028/&#34; class=&#34;wikilink&#34;&gt;Gratitude 028&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-029/&#34; class=&#34;wikilink&#34;&gt;Gratitude 029&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-030/&#34; class=&#34;wikilink&#34;&gt;Gratitude 030&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-031/&#34; class=&#34;wikilink&#34;&gt;Gratitude 031&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-032/&#34; class=&#34;wikilink&#34;&gt;Gratitude 032&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-033/&#34; class=&#34;wikilink&#34;&gt;Gratitude 033&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-034/&#34; class=&#34;wikilink&#34;&gt;Gratitude 034&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-035/&#34; class=&#34;wikilink&#34;&gt;Gratitude 035&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-036/&#34; class=&#34;wikilink&#34;&gt;Gratitude 036&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-037/&#34; class=&#34;wikilink&#34;&gt;Gratitude 037&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-039/&#34; class=&#34;wikilink&#34;&gt;Gratitude 039&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-040/&#34; class=&#34;wikilink&#34;&gt;Gratitude 0040&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-041/&#34; class=&#34;wikilink&#34;&gt;Gratitude 0040&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-042/&#34; class=&#34;wikilink&#34;&gt;Gratitude 042&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-043/&#34; class=&#34;wikilink&#34;&gt;Gratitude 043&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-044/&#34; class=&#34;wikilink&#34;&gt;Gratitude 044&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-045/&#34; class=&#34;wikilink&#34;&gt;Gratitude 045&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-046/&#34; class=&#34;wikilink&#34;&gt;Gratitude 046&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-047/&#34; class=&#34;wikilink&#34;&gt;Gratitude 047&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-048/&#34; class=&#34;wikilink&#34;&gt;Gratitude 048&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-049/&#34; class=&#34;wikilink&#34;&gt;Gratitude 049&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-190/&#34; class=&#34;wikilink&#34;&gt;Gratitude 190&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-191/&#34; class=&#34;wikilink&#34;&gt;Gratitude 191&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-192/&#34; class=&#34;wikilink&#34;&gt;Gratitude 192&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-193/&#34; class=&#34;wikilink&#34;&gt;Gratitude 193&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-194/&#34; class=&#34;wikilink&#34;&gt;Gratitude 194&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-195/&#34; class=&#34;wikilink&#34;&gt;Gratitude 195&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-196/&#34; class=&#34;wikilink&#34;&gt;Gratitude 196&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-197/&#34; class=&#34;wikilink&#34;&gt;Gratitude 197&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-198/&#34; class=&#34;wikilink&#34;&gt;Gratitude 198&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-91/&#34; class=&#34;wikilink&#34;&gt;Gratitude 91&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-98/&#34; class=&#34;wikilink&#34;&gt;Gratitude 098&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-99/&#34; class=&#34;wikilink&#34;&gt;Gratitude 099&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-009/&#34; class=&#34;wikilink&#34;&gt;Gratitude 009&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-010/&#34; class=&#34;wikilink&#34;&gt;Gratitude 010&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-011/&#34; class=&#34;wikilink&#34;&gt;Gratitude 011&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-012/&#34; class=&#34;wikilink&#34;&gt;Gratitude 012&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-013/&#34; class=&#34;wikilink&#34;&gt;Gratitude 013&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-014/&#34; class=&#34;wikilink&#34;&gt;Gratitude 014&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-015/&#34; class=&#34;wikilink&#34;&gt;Gratitude 015&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-016/&#34; class=&#34;wikilink&#34;&gt;Gratitude 016&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-017/&#34; class=&#34;wikilink&#34;&gt;Gratitude 017&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-018/&#34; class=&#34;wikilink&#34;&gt;Gratitude 018&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-019/&#34; class=&#34;wikilink&#34;&gt;Gratitude 019&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-020/&#34; class=&#34;wikilink&#34;&gt;Gratitude 020&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-021/&#34; class=&#34;wikilink&#34;&gt;Gratitude 022&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-022/&#34; class=&#34;wikilink&#34;&gt;Gratitude 022&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-160/&#34; class=&#34;wikilink&#34;&gt;Gratitude 160&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-161/&#34; class=&#34;wikilink&#34;&gt;Gratitude 161&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-162/&#34; class=&#34;wikilink&#34;&gt;Gratitude 162&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-163/&#34; class=&#34;wikilink&#34;&gt;Gratitude 163&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-164/&#34; class=&#34;wikilink&#34;&gt;Gratitude 164&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-165/&#34; class=&#34;wikilink&#34;&gt;Gratitude 165&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-166/&#34; class=&#34;wikilink&#34;&gt;Gratitude 166&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-167/&#34; class=&#34;wikilink&#34;&gt;Gratitude 167&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-168/&#34; class=&#34;wikilink&#34;&gt;Gratitude 168&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-169/&#34; class=&#34;wikilink&#34;&gt;Gratitude 169&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-170/&#34; class=&#34;wikilink&#34;&gt;Gratitude 170&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-171/&#34; class=&#34;wikilink&#34;&gt;Gratitude 171&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-172/&#34; class=&#34;wikilink&#34;&gt;Gratitude 172&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-173/&#34; class=&#34;wikilink&#34;&gt;Gratitude 173&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-174/&#34; class=&#34;wikilink&#34;&gt;Gratitude 174&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-175/&#34; class=&#34;wikilink&#34;&gt;Gratitude 175&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-176/&#34; class=&#34;wikilink&#34;&gt;Gratitude 176&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-177/&#34; class=&#34;wikilink&#34;&gt;Gratitude 177&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-178/&#34; class=&#34;wikilink&#34;&gt;Gratitude 178&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-179/&#34; class=&#34;wikilink&#34;&gt;Gratitude 178&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-180/&#34; class=&#34;wikilink&#34;&gt;Gratitude 180&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-181/&#34; class=&#34;wikilink&#34;&gt;Gratitude 181&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-182/&#34; class=&#34;wikilink&#34;&gt;Gratitude 182&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-183/&#34; class=&#34;wikilink&#34;&gt;Gratitude 183&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-184/&#34; class=&#34;wikilink&#34;&gt;Gratitude 184&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-185/&#34; class=&#34;wikilink&#34;&gt;Gratitude 185&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-186/&#34; class=&#34;wikilink&#34;&gt;Gratitude 186&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-187/&#34; class=&#34;wikilink&#34;&gt;Gratitude 187&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-188/&#34; class=&#34;wikilink&#34;&gt;Gratitude 188&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-189/&#34; class=&#34;wikilink&#34;&gt;Gratitude 189&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-127/&#34; class=&#34;wikilink&#34;&gt;Gratitude 127&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-128/&#34; class=&#34;wikilink&#34;&gt;Gratitude 128&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-129/&#34; class=&#34;wikilink&#34;&gt;Gratitude 129&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-130/&#34; class=&#34;wikilink&#34;&gt;Gratitude 130&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-131/&#34; class=&#34;wikilink&#34;&gt;Gratitude 131&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-132/&#34; class=&#34;wikilink&#34;&gt;Gratitude 132&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-133/&#34; class=&#34;wikilink&#34;&gt;Gratitude 133&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-134/&#34; class=&#34;wikilink&#34;&gt;Gratitude 134&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-135/&#34; class=&#34;wikilink&#34;&gt;Gratitude 135&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-136/&#34; class=&#34;wikilink&#34;&gt;Gratitude 136&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-137/&#34; class=&#34;wikilink&#34;&gt;Gratitude 137&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-138/&#34; class=&#34;wikilink&#34;&gt;Gratitude 138&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-139/&#34; class=&#34;wikilink&#34;&gt;Gratitude 139&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-140/&#34; class=&#34;wikilink&#34;&gt;Gratitude 140&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-141/&#34; class=&#34;wikilink&#34;&gt;Gratitude 141&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-142/&#34; class=&#34;wikilink&#34;&gt;Gratitude 142&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-143/&#34; class=&#34;wikilink&#34;&gt;Gratitude 143&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-144/&#34; class=&#34;wikilink&#34;&gt;Gratitude 144&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-146/&#34; class=&#34;wikilink&#34;&gt;Gratitude 146&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-148/&#34; class=&#34;wikilink&#34;&gt;Gratitude 148&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-149/&#34; class=&#34;wikilink&#34;&gt;Gratitude 149&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-150/&#34; class=&#34;wikilink&#34;&gt;Gratitude 150&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-151/&#34; class=&#34;wikilink&#34;&gt;Gratitude 151&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-152/&#34; class=&#34;wikilink&#34;&gt;Gratitude 152&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-153/&#34; class=&#34;wikilink&#34;&gt;Gratitude 153&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-154/&#34; class=&#34;wikilink&#34;&gt;Gratitude 154&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-155/&#34; class=&#34;wikilink&#34;&gt;Gratitude 155&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-156/&#34; class=&#34;wikilink&#34;&gt;Gratitude 156&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-157/&#34; class=&#34;wikilink&#34;&gt;Gratitude 157&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-158/&#34; class=&#34;wikilink&#34;&gt;Gratitude 158&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-159/&#34; class=&#34;wikilink&#34;&gt;Gratitude 159&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-095/&#34; class=&#34;wikilink&#34;&gt;Gratitude 095&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-096/&#34; class=&#34;wikilink&#34;&gt;Gratitude 097&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-100/&#34; class=&#34;wikilink&#34;&gt;Gratitude 100&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-101/&#34; class=&#34;wikilink&#34;&gt;Gratitude 101&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-102/&#34; class=&#34;wikilink&#34;&gt;Gratitude 102&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-105/&#34; class=&#34;wikilink&#34;&gt;Gratitude 105&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-106/&#34; class=&#34;wikilink&#34;&gt;Gratitude 106&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-107/&#34; class=&#34;wikilink&#34;&gt;Gratitude 107&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-108/&#34; class=&#34;wikilink&#34;&gt;Gratitude 108&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-109/&#34; class=&#34;wikilink&#34;&gt;Gratitude 109&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-110/&#34; class=&#34;wikilink&#34;&gt;Gratitude 110&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-111/&#34; class=&#34;wikilink&#34;&gt;Gratitude 111&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-112/&#34; class=&#34;wikilink&#34;&gt;Gratitude 112&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-113/&#34; class=&#34;wikilink&#34;&gt;Gratitude 113&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-114/&#34; class=&#34;wikilink&#34;&gt;Gratitude 114&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-115/&#34; class=&#34;wikilink&#34;&gt;Gratitude 115&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-116/&#34; class=&#34;wikilink&#34;&gt;Gratitude 116&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-117/&#34; class=&#34;wikilink&#34;&gt;Gratitude 117&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-118/&#34; class=&#34;wikilink&#34;&gt;Gratitude 118&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-119/&#34; class=&#34;wikilink&#34;&gt;Gratitude 119&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-120/&#34; class=&#34;wikilink&#34;&gt;Gratitude 120&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-121/&#34; class=&#34;wikilink&#34;&gt;Gratitude 121&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-122/&#34; class=&#34;wikilink&#34;&gt;Gratitude 122&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-123/&#34; class=&#34;wikilink&#34;&gt;Gratitude 123&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-124/&#34; class=&#34;wikilink&#34;&gt;Gratitude 124&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-125/&#34; class=&#34;wikilink&#34;&gt;Gratitude 125&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-126/&#34; class=&#34;wikilink&#34;&gt;Gratitude 126&lt;/a&gt; (Modified: 2024-08-01 07:16:40)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/gratitude-093-1/&#34; class=&#34;wikilink&#34;&gt;Gratitude 094&lt;/a&gt; (Modified: 2024-07-31 18:27:43)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/markata-supports-jinja-plugins-0-5-0-dev2/&#34; class=&#34;wikilink&#34; data-title=&#34;Markata Supports Jinja Plugins 0.5.0.dev2&#34; data-description=&#34;Markata now allows you to create jinja extensions that will be loaded right in with nothing more than a .&#34; data-date=&#34;2022-10-11&#34; data-preview=&#34;Markata now allows you to create jinja extensions that will be loaded right in with nothing more than a .&#34;&gt;Markata Supports Jinja Plugins 0.5.0.dev2&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/markata-telescope-picker/&#34; class=&#34;wikilink&#34; data-title=&#34;Markata Filters as Telescope Pickers in Neovim&#34; data-description=&#34;I often pop into my blog from neovim with the intent to look at just a single series of posts, , , or just see todays posts. Markata has a great way of...&#34; data-date=&#34;2022-01-23&#34; data-preview=&#34;I often pop into my blog from neovim with the intent to look at just a single series of posts, , , or just see todays posts. Markata has a great way of...&#34;&gt;Markata Filters as Telescope Pickers in Neovim&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/pyohio-cfp/&#34; class=&#34;wikilink&#34; data-title=&#34;PyOhio CFP&amp;#39;s&#34; data-description=&#34;Here are some CFP&amp;#39;s that I used for PyOhio 2022.&#34; data-date=&#34;2022-04-12&#34; data-preview=&#34;Here are some CFP&amp;#39;s that I used for PyOhio 2022.&#34;&gt;PyOhio CFP&amp;#39;s&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;[[reader]] (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/ubuntu/&#34; class=&#34;wikilink&#34; data-title=&#34;Copy and Paste on Linux&#34; data-description=&#34;These are the notes that I used as I set up my first ever ubuntu desktop.&#34; data-date=&#34;2021-06-25&#34; data-preview=&#34;These are the notes that I used as I set up my first ever ubuntu desktop.&#34;&gt;Copy and Paste on Linux&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/uses/&#34; class=&#34;wikilink&#34; data-title=&#34;Uses&#34; data-description=&#34;This is a listing of all the things that I use on a daily basis to build data pipelines, lead my team, and build this website.&#34; data-date=&#34;2021-11-20&#34; data-preview=&#34;This is a listing of all the things that I use on a daily basis to build data pipelines, lead my team, and build this website.&#34;&gt;Uses&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/upcoming-streams/&#34; class=&#34;wikilink&#34; data-title=&#34;Upcoming Stream&#34; data-description=&#34;!!! Caution I&amp;#39;m no longer streaming As much as I would really love to make streaming work, its really hard for my family situation to make large blocks of...&#34; data-date=&#34;2021-06-08&#34; data-preview=&#34;!!! Caution I&amp;#39;m no longer streaming As much as I would really love to make streaming work, its really hard for my family situation to make large blocks of...&#34;&gt;Upcoming Stream&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/from-markdown-to-blog-with-markata/&#34; class=&#34;wikilink&#34; data-title=&#34;From Markdown to Blog with Markata | lightning talk | python web conf 2022&#34; data-description=&#34;Markata is a great python framework that allows you to go from markdown to a full website very quickly. You can get up and running with nothing more than...&#34; data-date=&#34;2022-08-31&#34; data-preview=&#34;Markata is a great python framework that allows you to go from markdown to a full website very quickly. You can get up and running with nothing more than...&#34;&gt;From Markdown to Blog with Markata | lightning talk | python web conf 2022&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/lookatme-slides/&#34; class=&#34;wikilink&#34; data-title=&#34;How I Present Markdown Slides from the Terminal&#34; data-description=&#34;I love the freedom of writing in markdown. It allows me to write content from the comfort of my editor with very little focus on page style. It turns out...&#34; data-date=&#34;2022-03-21&#34; data-preview=&#34;I love the freedom of writing in markdown. It allows me to write content from the comfort of my editor with very little focus on page style. It turns out...&#34;&gt;How I Present Markdown Slides from the Terminal&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/markata-0-3-0/&#34; class=&#34;wikilink&#34; data-title=&#34;markata 0.3.0 is 15-20% faster&#34; data-date=&#34;2022-08-21&#34; data-preview=&#34;a sprinter edging out his opponent by Dall-e It’s about time to release Markata 0.3.0. I’ve had 8 pre-releases since the last release, but more importantly it has about 3 months of updates. Many of...&#34;&gt;markata 0.3.0 is 15-20% faster&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/markata-configure-head/&#34; class=&#34;wikilink&#34; data-title=&#34;markata extend &amp;lt;head&amp;gt; in configuration&#34; data-date=&#34;2022-09-11&#34; data-preview=&#34;A long needed feature of markata has been the ability to really configure out templates with configuration rather. It’s been long that you needed that if you really want to change the style, meta...&#34;&gt;markata extend &amp;lt;head&amp;gt; in configuration&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/markata-github-pages/&#34; class=&#34;wikilink&#34; data-title=&#34;Markata GitHub Pages&#34; data-description=&#34;hugo puts it in the base url https://gohugo.io/getting-started/configuration/#baseurl * mkdocs uses a special cli build command...&#34; data-date=&#34;2022-10-19&#34; data-preview=&#34;hugo puts it in the base url https://gohugo.io/getting-started/configuration/#baseurl * mkdocs uses a special cli build command...&#34;&gt;Markata GitHub Pages&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/markata-now-uses-hatch/&#34; class=&#34;wikilink&#34; data-title=&#34;Markata now uses hatch&#34; data-description=&#34;Markata now uses hatch as its build backend, and version bumping tool. , and are completely gone.&#34; data-date=&#34;2022-10-08&#34; data-preview=&#34;Markata now uses hatch as its build backend, and version bumping tool. , and are completely gone.&#34;&gt;Markata now uses hatch&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/htmx-on-my-blog/&#34; class=&#34;wikilink&#34; data-title=&#34;I&amp;#39;ve added htmx to my blog&#34; data-description=&#34;I&amp;#39;ve added htmx to my blog. It&amp;#39;s extra bloatware that I long avoided, but it&amp;#39;s so damn convenient.&#34; data-date=&#34;2024-06-15&#34; data-preview=&#34;I&amp;#39;ve added htmx to my blog. It&amp;#39;s extra bloatware that I long avoided, but it&amp;#39;s so damn convenient.&#34;&gt;I&amp;#39;ve added htmx to my blog&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/keyboard-driven-vscode/&#34; class=&#34;wikilink&#34; data-title=&#34;Keyboard Driven VSCode&#34; data-description=&#34;Reimagining my tmux configuration inside of vscode.&#34; data-date=&#34;2019-07-07&#34; data-preview=&#34;Reimagining my tmux configuration inside of vscode.&#34;&gt;Keyboard Driven VSCode&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/markata-todoui-live-replay-4-6-2022/&#34; class=&#34;wikilink&#34; data-title=&#34;LIVE-REPLAY - Python dev | Markata todoui | 4/6/2022&#34; data-description=&#34;https://youtu.be/-42A5210HYo&#34; data-date=&#34;2022-05-12&#34; data-preview=&#34;https://youtu.be/-42A5210HYo&#34;&gt;LIVE-REPLAY - Python dev | Markata todoui | 4/6/2022&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/markata/&#34; class=&#34;wikilink&#34; data-title=&#34;markata&#34; data-description=&#34;This post is a work in progress.&#34; data-date=&#34;2024-05-30&#34; data-preview=&#34;This post is a work in progress.&#34;&gt;markata&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/packages-i-maintain/&#34; class=&#34;wikilink&#34; data-title=&#34;Packages I Maintain&#34; data-description=&#34;I open sourced the static site framework that I use to build my-blog among other side projects. It&amp;#39;s a plugins all the way down static site generator, that...&#34; data-date=&#34;2022-08-30&#34; data-preview=&#34;I open sourced the static site framework that I use to build my-blog among other side projects. It&amp;#39;s a plugins all the way down static site generator, that...&#34;&gt;Packages I Maintain&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/pipx-examples/&#34; class=&#34;wikilink&#34; data-title=&#34;pipx examples&#34; data-date=&#34;2022-01-07&#34; data-preview=&#34;count lines of code # pipx run pygount markata pipx run pygount markata --format=summary pipx run pygount markata --suffix=cfg,py,yml&#34;&gt;pipx examples&lt;/a&gt; (Modified: 2024-07-31 13:41:57)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Obsidian Image Converter</title>
    <id>https://go.waylonwalker.com/obsidian-image-converter/</id>
    <updated>2024-07-30T21:09:35Z</updated>
    <published>2024-07-30T21:09:35Z</published>
    <link href="https://go.waylonwalker.com/obsidian-image-converter/" rel="alternate" type="text/html"></link>
    <summary type="text">I&#39;m giving obsidian a go as an editor for my blog and one of the main things I want to fix in my workflow is the ability to quickly drop in images. on first...</summary>
    <content type="html">&lt;p&gt;I’m giving obsidian a go as an editor for my blog and one of the main things I&#xA;want to fix in my workflow is the ability to quickly drop in images.  on first&#xA;look through the community plugins I found Image Converter.  I set it up to&#xA;convert to webp and drop them in a &lt;a href=&#34;/glossary/git/&#34; class=&#34;glossary-term&#34; title=&#34;Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...&#34;&gt;git&lt;/a&gt; submodule.  I may make it something&#xA;other than a git repo in the future, but I’ve learned that adding images to my&#xA;blog repo quickly makes it heavy and hard to clone on other machines.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/626d85b1-5588-45c4-a4f4-c372dc7c8ff3.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/626d85b1-5588-45c4-a4f4-c372dc7c8ff3.webp&#34; alt=&#34;obsidian-image-converter-20240731211310793.webp&#34;/ data-glightbox=&#34;description: obsidian-image-converter-20240731211310793.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Once the images are there they are pushed and deployed as their own site to&#xA;cloudflare pages.  I made a quick edit to my &lt;a href=&#34;/sick-wikilink-hover/&#34; class=&#34;wikilink&#34; data-title=&#34;sick wikilink hover&#34; data-description=&#34;Today I set up some sick wikilink hover effects using tailwind see a-case-for-tailwindcss. When you hover over them they show an image preview of the link...&#34; data-date=&#34;2024-05-30&#34; data-preview=&#34;Today I set up some sick wikilink hover effects using tailwind see a-case-for-tailwindcss. When you hover over them they show an image preview of the link...&#34;&gt;sick wikilink hover&lt;/a&gt; plugin for&#xA;my blog.  if it sees a wikilink ending in webp, convert the domain over to&#xA;obsidian-assets.waylonwalker.com, and clean up the remaining &lt;code&gt;&amp;#34;!  &amp;#34;&lt;/code&gt; that the&#xA;python md-it library leaves behind.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;after first try I needed to increase the width from 600 to 1400, the image in this post was unreadable.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;This is part of me getting set up and &lt;a href=&#34;/trying-obsidian/&#34; class=&#34;wikilink&#34; data-title=&#34;Trying Obsidian&#34; data-description=&#34;I am giving obsidian a try, this is a test post to learn the flow. Something that has been really hard for me for a long time is images, I don&amp;#39;t include a...&#34; data-date=&#34;2024-07-31&#34; data-preview=&#34;I am giving obsidian a try, this is a test post to learn the flow. Something that has been really hard for me for a long time is images, I don&amp;#39;t include a...&#34;&gt;Trying Obsidian&lt;/a&gt;&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 he&#39;s back again</title>
    <id>https://go.waylonwalker.com/thought-369/</id>
    <updated>2024-07-25T23:09:50Z</updated>
    <published>2024-07-25T23:09:50Z</published>
    <link href="https://go.waylonwalker.com/thought-369/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://thoughts.waylonwalker.com/post/368</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://thoughts.waylonwalker.com/post/368&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img src=&#34;https://shots.wayl.one/shot/?url=https://thoughts.waylonwalker.com/post/368&amp;amp;height=600&amp;amp;width=1200&amp;amp;scaled_width=1200&amp;amp;scaled_height=600&#34; alt=&#34;im back again &#xA; — &#xA;&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;yooooooooo its me...&amp;#34; loading=&amp;#34;lazy&amp;#34;&amp;gt;&#xA;&amp;lt;/div&amp;gt;&#xA;&amp;lt;div class=&amp;#34;embed-card-content&amp;#34;&amp;gt;&#xA;  &amp;lt;div class=&amp;#34;embed-card-title&amp;#34;&amp;gt;&#xA;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&#xA;&amp;lt;p&amp;gt;im back again&amp;lt;/p&amp;gt;&#xA;&amp;lt;/div&amp;gt;&#xA;      &amp;lt;div class=&#34; embed-card-description glightbox&#34;=&#34;&#34;/ data-glightbox=&#34;description: im back again &#xA; — &#xA;&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;yooooooooo its me...&amp;#34; loading=&amp;#34;lazy&amp;#34;&amp;gt;&#xA;&amp;lt;/div&amp;gt;&#xA;&amp;lt;div class=&amp;#34;embed-card-content&amp;#34;&amp;gt;&#xA;  &amp;lt;div class=&amp;#34;embed-card-title&amp;#34;&amp;gt;&#xA;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&#xA;&amp;lt;p&amp;gt;im back again&amp;lt;/p&amp;gt;&#xA;&amp;lt;/div&amp;gt;&#xA;      &amp;lt;div class=&#34;&gt;&#xA;&lt;pre&gt;&lt;code&gt;yooooooooo its me...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;thoughts.waylonwalker.com&lt;/div&gt;&#xA;    &lt;/a&gt;&lt;/div&gt;&lt;a href=&#34;https://thoughts.waylonwalker.com/post/368&#34; class=&#34;embed-card-link  has-avatar has-avatar-before&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/thoughts.waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/thoughts.waylonwalker.com.ico&#34;&gt;&#xA;  &lt;/a&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 Note-taking with Zettelkasten - An Introduction - YouTube</title>
    <id>https://go.waylonwalker.com/thought-361/</id>
    <updated>2024-07-25T23:06:28Z</updated>
    <published>2024-07-25T23:06:28Z</published>
    <link href="https://go.waylonwalker.com/thought-361/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://www.youtube.com/watch?v=o1NJYnZCfmY</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external embed-card-provider-youtube&#34;&gt;&#xA;  &lt;div class=&#34;embed-card-rich&#34;&gt;&#xA;&lt;lite-youtube videoid=&#34;o1NJYnZCfmY&#34; title=&#34;Note-taking with Zettelkasten - An Introduction&#34; playlabel=&#34;Play: Note-taking with Zettelkasten - An Introduction&#34;&gt;&lt;/lite-youtube&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Niklas Luhmann created the Zettelkasten method of notetaking, He was the Da Vinci of writing, holding a high standard that we can take inspiration from even today in this digital era.&lt;/p&gt;&#xA;&lt;p&gt;As many times as I have seem the Zettelkasten covered, I never knew that it roughly translated to little cards in a box.&lt;/p&gt;&#xA;&lt;h2 id=&#34;four-principles&#34;&gt;Four Principles &lt;a href=&#34;#four-principles&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Mischa lays out four principles of Zettelkasten.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Atomic - &lt;em&gt;each card conains one idea&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Link - &lt;em&gt;cards are linked together&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Structure - &lt;em&gt;comes from the links&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Own Words - &lt;em&gt;You write the note in your own words&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;My blog, tils, and thoughts make up my own zettelkasten.  I am not going to say that mine is a perfect representation of his method, but the components are here.  rather than building books, my thoughts and tils build up to blog posts.   The rate of blog posts I write definitely changes with the seasons of life, as seasons change it becomes a bigger or smaller part of the season.&lt;/p&gt;&#xA;&lt;p&gt;I really like Mischa’s most important note to Write in your own words, this is what really promotes learning, and proves to yourself that you can form a thought around the topic.  Up until recently I’ve wrote everything, but lately I’ve taken to copy pasting some quotes into my thoughts posts, but I think this is fine, because generally its used to build on the narrative and give me a place to talk about the linked post.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Thoughts</title>
    <id>https://go.waylonwalker.com/thoughts/</id>
    <updated>2024-04-01T16:14:47Z</updated>
    <published>2024-04-01T16:14:47Z</published>
    <link href="https://go.waylonwalker.com/thoughts/" rel="alternate" type="text/html"></link>
    <summary type="text">These are generally my thoughts on a web page or some sort of url, except a rare few don&#39;t have a link. These are dual published off of my...</summary>
    <content type="html">&lt;p&gt;These are generally my thoughts on a web page or some sort of url, except a&#xA;rare few don’t have a link.  These are dual published off of my&#xA;&lt;a href=&#34;https://thoughts.waylonwalker.com&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/thoughts.waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/thoughts.waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;thoughts.waylonwalker.com&lt;/a&gt; site.  It’s a&#xA;fully dynamically rendered site 2000’s style.  Posts are stored in a database&#xA;and instantly available.  Almost all of the posts were written in a small&#xA;&lt;code&gt;&amp;lt;textarea&amp;gt;&lt;/code&gt; field within a chrome extension that I built for it.&lt;/p&gt;&#xA;&lt;p&gt;These posts are intended to in two ways.  One, link building for the author.  I&#xA;hope that I give the people helping me out along the way just a little bit of a&#xA;boost.  Two, they serve as a permanant commented bookmark for me to search, and&#xA;come back to later when I have forgotten where I have seen something.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://waylonwalker.com/tags/thought&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;web&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://waylonwalker.com/tags/thought/rss.xml&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;rss&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;All thoughts posts cross posted to my site are prefixed with a thought balloon 💭.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;the-tech&#34;&gt;The tech &lt;a href=&#34;#the-tech&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Since this blog is mostly a tech blog about software development, and my&#xA;journey as I learn, lets talk tech.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;python&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/fastapi/&#34; class=&#34;glossary-term&#34; title=&#34;FastAPI is a modern and efficient web framework for Python, built on top of the Starlette web framework, and pydantic for data validation and serialization.&#34;&gt;fastapi&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/htmx/&#34; class=&#34;glossary-term&#34; title=&#34;htmx is a frontend javascript library for creating dynamic web applications.&#34;&gt;htmx&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;sqlite&lt;/li&gt;&#xA;&lt;li&gt;docker&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://fly.io&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/fly.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/fly.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://fly.io&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;fastapi&#34;&gt;fastapi &lt;a href=&#34;#fastapi&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;The core of the site is a python web server running fastapi.  Most of the&#xA;endpoints return &lt;a href=&#34;/html/&#34; class=&#34;glossary-term&#34; title=&#34;HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...&#34;&gt;html&lt;/a&gt; via jinja templates to the browser and json to anything&#xA;else.  So you go to the list of posts at&#xA;[https://thoughts.waylonwalker.com/posts/waylonwalker/?page_size=9999999999 in](&lt;a href=&#34;https://thoughts.waylonwalker.com/posts/waylonwalker/?page_size=9999999999&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/thoughts.waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/thoughts.waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://thoughts.waylonwalker.com/posts/waylonwalker/?page_size=9999999999&lt;/a&gt; in){.hoverlink}&#xA;a web browser it will be a rendered feed, but from curl you will get json.&lt;/p&gt;&#xA;&lt;h3 id=&#34;htmx&#34;&gt;htmx &lt;a href=&#34;#htmx&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;The main page is an infite scrolling feed of the posts.  All loaded in with&#xA;htmx.  Which just works so beautifully for this.  I really like python its my&#xA;jam, I can make endpoints that return things out of a database very effectively&#xA;with it, but it takes me some time to do the js side, htmx just makes these&#xA;common patterns available right in html.&lt;/p&gt;&#xA;&lt;h3 id=&#34;sqlite&#34;&gt;sqlite &lt;a href=&#34;#sqlite&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;The data storage is a sqlite database using the sqlmodel orm.  This was my very&#xA;first time using sqlmodel, which is an ORM built on top of pydantic.  It works&#xA;really well with fastapi.  The only thing that it lacks is the same history,&#xA;community, and stack overflow posts that sqlalchemy has.&lt;/p&gt;&#xA;&lt;h3 id=&#34;docker&#34;&gt;docker &lt;a href=&#34;#docker&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Docker is my go to way for containerizing web applications.  I know it really&#xA;well and makes it easy to build and deploy on a number of platforms.&lt;/p&gt;&#xA;&lt;h3 id=&#34;httpsflyio&#34;&gt;&lt;a href=&#34;https://fly.io&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/fly.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/fly.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://fly.io&lt;/a&gt; &lt;a href=&#34;#httpsflyio&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;I have this running on &lt;a href=&#34;https://fly.io&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/fly.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/fly.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://fly.io&lt;/a&gt;.  Its my first real production application&#xA;running on &lt;a href=&#34;https://fly.io&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/fly.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/fly.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://fly.io&lt;/a&gt;, and its been great for me.  It runs my container for me,&#xA;gives me tools to scale, and ssh right into the running container.  It’s still&#xA;free for the time being, but goes up quick for my cheap taste if I were to&#xA;scale it up much.&lt;/p&gt;&#xA;&lt;p&gt;Id highly recomend it if you have a server that you want to get running on the&#xA;public internet, and you don’t want to manage any of your own infrastructure.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>💭 searching my thoughts locally</title>
    <id>https://go.waylonwalker.com/thought-211/</id>
    <updated>2024-03-07T23:42:00Z</updated>
    <published>2024-03-07T23:42:00Z</published>
    <link href="https://go.waylonwalker.com/thought-211/" rel="alternate" type="text/html"></link>
    <summary type="text">!None</summary>
    <content type="html">&lt;!-- embed not found: None --&gt;&#xA;&lt;p&gt;![[None]]&lt;/p&gt;&#xA;&lt;p&gt;First I need to fetch my thoughts from the api, and put it in a local sqlite database using &lt;code&gt;sqlite-utils&lt;/code&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;fthoughts &lt;span class=&#34;o&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#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;# fetch thoughts&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 &lt;span class=&#34;s1&#34;&gt;&amp;#39;https://thoughts.waylonwalker.com/posts/waylonwalker/?page_size=9999999999&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sqlite-utils insert ~/.config/thoughts/database2.db post --pk&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;id --alter --ignore -&#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;o&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now that I have my posts in a local sqlite database I can use &lt;code&gt;sqlite-utils&lt;/code&gt; to enable full text search  and populate the full text search on the post table using the title message and tags columns as search.&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;sthoughts &lt;span class=&#34;o&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#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;# search thoughts&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;# sqlite-utils enable-fts ~/.config/thoughts/database2.db post title message tags&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;# sqlite-utils populate-fts ~/.config/thoughts/database2.db post title message tags&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    sqlite-utils search ~/.config/thoughts/database2.db post &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$*&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; ~/git/thoughts/format_thought.py &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bat --style&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;plain --color&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;always --language&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;markdown&#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;o&#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;&#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;nb&#34;&gt;alias&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;st&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;sthoughts&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now I am ready to search my thoughts, which is a tiny blog format that I created mostly for  leaving my own personal comment on web pages, so most of them have a link to some other online content, and their title is based on the authors title.&lt;/p&gt;&#xA;&lt;a href=&#34;https://vhs.charm.sh/vhs-5UMOPkPbr43X3PKi6q1sih.gif&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://vhs.charm.sh/vhs-5UMOPkPbr43X3PKi6q1sih.gif&#34; alt=&#34;Made with VHS&#34;/ data-glightbox=&#34;description: Made with VHS&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://vhs.charm.sh&#34;&gt;&#xA;  &lt;img class=&#34;glightbox&#34; src=&#34;https://stuff.charm.sh/vhs/badge.svg&#34;/ data-glightbox=&#34;description: &#34;&gt;&#xA;&lt;/a&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Converting markdown to pdf with pandoc on linux</title>
    <id>https://go.waylonwalker.com/convert-markdown-pdf-linux/</id>
    <updated>2022-01-12T03:25:36Z</updated>
    <published>2022-01-12T03:25:36Z</published>
    <link href="https://go.waylonwalker.com/convert-markdown-pdf-linux/" rel="alternate" type="text/html"></link>
    <summary type="text">Converting markdown posts to pdf on ubuntu takes a few packages from the standard repos. I had to go through a few stack overflow posts, and nothing seemed...</summary>
    <content type="html">&lt;p&gt;Converting markdown posts to pdf on ubuntu takes a few packages from the&#xA;standard repos.  I had to go through a few stack overflow posts, and&#xA;nothing seemed to have all the fonts and packages that I needed to&#xA;convert markdown, but this is what ended up working for me.&lt;/p&gt;&#xA;&lt;h2 id=&#34;installing-all-the-packages&#34;&gt;Installing all the packages &lt;a href=&#34;#installing-all-the-packages&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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;sudo apt install &lt;span class=&#34;se&#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;se&#34;&gt;&lt;/span&gt;  pandoc &lt;span class=&#34;se&#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;se&#34;&gt;&lt;/span&gt;  texlive-latex-base &lt;span class=&#34;se&#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;se&#34;&gt;&lt;/span&gt;  texlive-fonts-recommended &lt;span class=&#34;se&#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;se&#34;&gt;&lt;/span&gt;  texlive-extra-utils &lt;span class=&#34;se&#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;se&#34;&gt;&lt;/span&gt;  texlive-latex-extra &lt;span class=&#34;se&#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;se&#34;&gt;&lt;/span&gt;  texlive-xetex&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;using-pandoc-to-convert-markdown-to-a-pdf&#34;&gt;Using pandoc to convert markdown to a pdf &lt;a href=&#34;#using-pandoc-to-convert-markdown-to-a-pdf&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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;# older versions of pandoc, I needed this one on ubuntu 18.04&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;pandoc&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pages&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;til&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;markdown&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pdf&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linux&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;md&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;o&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;markdown&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pdf&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pdf&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;--&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;latex&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;engine&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xelatex&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;# newer versions of pandoc, I needed this one on ubuntu 21.04&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;pandoc&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pages&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;til&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;markdown&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pdf&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;linux&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;md&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;o&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;markdown&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pdf&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pdf&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;--&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pdf&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;engine&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xelatex&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/convert-markdown-pdf-linux-result.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/convert-markdown-pdf-linux-result.png&#34; alt=&#34;results of converting this post to a pdf&#34;/ data-glightbox=&#34;description: results of converting this post to a pdf&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Here is an image of what converting this article over to a pdf looks&#xA;like.  The raw markdown is&#xA;&lt;a href=&#34;https://waylonwalker.com/convert-markdown-pdf-linux.md&#34; title=&#34;a link to the raw markdown of this post&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>How I deploy my blog in 2022</title>
    <id>https://go.waylonwalker.com/how-i-deploy-2022/</id>
    <updated>2021-10-29T00:00:00Z</updated>
    <published>2021-10-29T00:00:00Z</published>
    <link href="https://go.waylonwalker.com/how-i-deploy-2022/" rel="alternate" type="text/html"></link>
    <summary type="text">Content at the speed of thought.</summary>
    <content type="html">&lt;h2 id=&#34;how-i-continuously-deliver-content-to-my-blog-with-markdown-github-python-and-netlify&#34;&gt;How I Continuously Deliver Content to my Blog with Markdown, GitHub, Python, and netlify &lt;a href=&#34;#how-i-continuously-deliver-content-to-my-blog-with-markdown-github-python-and-netlify&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Content at the speed of thought.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;well, as fast as I can type&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;me&#34;&gt;Me &lt;a href=&#34;#me&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mechanical Engineering&lt;/li&gt;&#xA;&lt;li&gt;Data Engineering&lt;/li&gt;&#xA;&lt;li&gt;Terminal Junkie&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;ask-questions-in-slido&#34;&gt;Ask Questions in slido &lt;a href=&#34;#ask-questions-in-slido&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Please ask questions in slido # 983 911 | App Dev 1 Track&lt;/p&gt;&#xA;&lt;h2 id=&#34;slido-poll&#34;&gt;Slido Poll &lt;a href=&#34;#slido-poll&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Do &lt;strong&gt;you&lt;/strong&gt; have a personal blog / notes / website?&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Yes - Static, built with python&lt;/li&gt;&#xA;&lt;li&gt;Yes - I manage a server running python&lt;/li&gt;&#xA;&lt;li&gt;Yes - Not python&lt;/li&gt;&#xA;&lt;li&gt;No&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;we will circle back around in a few minutes&lt;/p&gt;&#xA;&lt;h2 id=&#34;ill-give-away-my-answer&#34;&gt;I’ll give away my answer &lt;a href=&#34;#ill-give-away-my-answer&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Yes - Static, built with python&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;slack-channel-track-1-appdev&#34;&gt;Slack Channel: #track-1-appdev &lt;a href=&#34;#slack-channel-track-1-appdev&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;If you are in the slack give me a 🔥🔥🔥🔥🔥🔥🔥&lt;/p&gt;&#xA;&lt;p&gt;Let’s light up slack 🔥🔥🔥🔥🔥🔥🔥&lt;/p&gt;&#xA;&lt;h2 id=&#34;4-parts&#34;&gt;4 parts &lt;a href=&#34;#4-parts&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Why&lt;/li&gt;&#xA;&lt;li&gt;My workflow&lt;/li&gt;&#xA;&lt;li&gt;Under the hood&lt;/li&gt;&#xA;&lt;li&gt;Open Source&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;part-1-why&#34;&gt;Part 1 WHY &lt;a href=&#34;#part-1-why&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;2016&#34;&gt;2016 &lt;a href=&#34;#2016&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;i-want-to-own-my-content&#34;&gt;I want to own my content &lt;a href=&#34;#i-want-to-own-my-content&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Twitter is a great networking tool, but it’s rare to see anything more&#xA;than a few hours old.&lt;/p&gt;&#xA;&lt;h2 id=&#34;i-want-to-own-my-content-1&#34;&gt;I want to own my content &lt;a href=&#34;#i-want-to-own-my-content-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;No one can take my domain or shut down the platform that my content is on.&lt;/p&gt;&#xA;&lt;h2 id=&#34;some-of-my-stats&#34;&gt;Some of my Stats &lt;a href=&#34;#some-of-my-stats&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;48 Google top 10 ranking pages&lt;/li&gt;&#xA;&lt;li&gt;6500 monthly clicks on google&lt;/li&gt;&#xA;&lt;li&gt;12k page monthly views&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;from ahrefs and google search console&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;learn-in-publichttpswwwswyxiolearn-in-public&#34;&gt;&lt;a href=&#34;https://www.swyx.io/learn-in-public/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.swyx.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.swyx.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Learn In Public&lt;/a&gt; &lt;a href=&#34;#learn-in-publichttpswwwswyxiolearn-in-public&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I’m creating learning exhaust.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Inspired by &lt;a href=&#34;https://www.swyx.io/learn-in-public/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.swyx.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.swyx.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;swyx&lt;/a&gt;&#xA;&lt;a href=&#34;https://www.swyx.io/learn-in-public/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.swyx.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.swyx.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://www.swyx.io/learn-in-public/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;from-swyx&#34;&gt;from swyx &lt;a href=&#34;#from-swyx&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Whatever your thing is, make the thing you wish you had found when you&#xA;were learning. Don’t judge your results by “claps” or retweets or&#xA;stars or upvotes - just talk to yourself from 3 months ago. I keep an&#xA;almost-daily dev blog written for no one else but me.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;focus-on-content&#34;&gt;Focus on content &lt;a href=&#34;#focus-on-content&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I could not do any of this if I was focused on Building rather than&#xA;writing.&lt;/p&gt;&#xA;&lt;h2 id=&#34;focus-on-content-1&#34;&gt;Focus on content &lt;a href=&#34;#focus-on-content-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;No one needs elastic search navigate your first 50 posts.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;when you are starting&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;focus-on-content-2&#34;&gt;Focus on content &lt;a href=&#34;#focus-on-content-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;No one is going to make comments.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;when you are starting&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;write-for-yourself&#34;&gt;Write for yourself &lt;a href=&#34;#write-for-yourself&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;You are your biggest audience out of the gate.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;If you continue writing others like you will find you&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;dont-worry-about-the-trolls&#34;&gt;Don’t worry about the Trolls &lt;a href=&#34;#dont-worry-about-the-trolls&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;No one is going to take your python keys away.&lt;/p&gt;&#xA;&lt;h2 id=&#34;slido-check&#34;&gt;Slido Check &lt;a href=&#34;#slido-check&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Please ask questions in slack/slido&lt;/p&gt;&#xA;&lt;h2 id=&#34;part-2-workflow-and-tools&#34;&gt;Part 2 Workflow and tools &lt;a href=&#34;#part-2-workflow-and-tools&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;To the meat of the talk&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Let’s start by making a post&lt;/li&gt;&#xA;&lt;li&gt;then show how it works under the hood&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;if-you-take-away-anything&#34;&gt;If you take away anything &lt;a href=&#34;#if-you-take-away-anything&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Focus on content that you want to consume.&lt;/p&gt;&#xA;&lt;h2 id=&#34;my-flow&#34;&gt;My Flow &lt;a href=&#34;#my-flow&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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;   ┌───────┐&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   │  TIL  │&#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;     │&#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;     │  │             │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     └─►│    Posts    │&#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;        └─┬───────────┘&#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;          │   ┌────────────────┐&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          └──►│    YouTube     │&#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;          │   ┌────────────────┐&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          └──►│    Conference  │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;              │    Talks       │&#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;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;lets-start-with-a-til&#34;&gt;Let’s start with a Til &lt;a href=&#34;#lets-start-with-a-til&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;the process&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;shoutout-to-jbranchahttpstwittercomjbrancha&#34;&gt;shoutout to @&lt;a href=&#34;https://twitter.com/jbrancha&#34;&gt;jbrancha&lt;/a&gt; &lt;a href=&#34;#shoutout-to-jbranchahttpstwittercomjbrancha&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Check out his amazing &lt;a href=&#34;https://github.com/jbranchaud/til&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;til repo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;If you ask google very many questions about &lt;a href=&#34;/glossary/git/&#34; class=&#34;glossary-term&#34; title=&#34;Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...&#34;&gt;git&lt;/a&gt;, you will end up&#xA;finding him on the top&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;copier&#34;&gt;Copier &lt;a href=&#34;#copier&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I use &lt;a href=&#34;https://copier.readthedocs.io/en/stable/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/copier.readthedocs.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/copier.readthedocs.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;copier&lt;/a&gt; for single file&#xA;templates.&lt;/p&gt;&#xA;&lt;h2 id=&#34;copier-give-me-a-new-page&#34;&gt;Copier give me a new page &lt;a href=&#34;#copier-give-me-a-new-page&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;How I Present from the terminal with lookatme&#xA;lookatme-slides&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;copier copy ~/.copier-templates/&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;ls ~/.copier-templates &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;se&#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;se&#34;&gt;&lt;/span&gt;    fzf --header &lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;pwd&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt; --preview&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;tree ~/.copier-templates/{} |\&#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;s1&#34;&gt;    lolcat&amp;#39;&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt; . &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;nvim-open-my-file&#34;&gt;nvim open my file &lt;a href=&#34;#nvim-open-my-file&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;!TIP Once it starts getting uncomfortable to find posts, its nice to have&#xA;good shortcuts to get around.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I have about 700 files on my blog to sift through&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;nvim-open-my-file-1&#34;&gt;nvim open my file &lt;a href=&#34;#nvim-open-my-file-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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 list --map path --filter &lt;span class=&#34;s1&#34;&gt;&amp;#39;templateKey==&amp;#34;til&amp;#34;&amp;#39;&lt;/span&gt; --sort date --reverse&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&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;nnoremap&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;geil&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;cmd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Telescope&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;find_files&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;find_command&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,--&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;map&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,--&lt;/span&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;nx&#34;&gt;templateKey&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;==&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;til&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,--&lt;/span&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;nx&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,--&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;reverse&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;cr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;paste-in-a-snippet&#34;&gt;Paste in a snippet &lt;a href=&#34;#paste-in-a-snippet&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Often times I am working away on some sort of project, and I just need&#xA;to save a snippet for a later post.&lt;/p&gt;&#xA;&lt;h2 id=&#34;write-the-content&#34;&gt;Write the content &lt;a href=&#34;#write-the-content&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Later I come back and fill in the content.&lt;/p&gt;&#xA;&lt;h2 id=&#34;git-push&#34;&gt;git push &lt;a href=&#34;#git-push&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I have a vim hotkey &lt;code&gt;gic&lt;/code&gt; to commit my current file, and &lt;code&gt;gpp&lt;/code&gt; to push&#xA;it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;its-nearly-live&#34;&gt;It’s nearly live &lt;a href=&#34;#its-nearly-live&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;It will be live within a few minutes.&lt;/p&gt;&#xA;&lt;h2 id=&#34;cross-post&#34;&gt;Cross Post &lt;a href=&#34;#cross-post&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I’ve tried to cross post to more, but it really gets overwhelming.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Twitter&lt;/li&gt;&#xA;&lt;li&gt;dev.to&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;cross-post-1&#34;&gt;Cross Post &lt;a href=&#34;#cross-post-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I have a plugin to convert my markdown to a more dev.to friendly format.&lt;/p&gt;&#xA;&lt;h2 id=&#34;slido-check-1&#34;&gt;Slido Check &lt;a href=&#34;#slido-check-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Let’g grab a question from slack/slido&lt;/p&gt;&#xA;&lt;h2 id=&#34;part-3-how-its-deployed&#34;&gt;Part 3 How it’s deployed &lt;a href=&#34;#part-3-how-its-deployed&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;In March of 2021 I made the big switch from a javascript based framework&#xA;to my own ssg.&lt;/p&gt;&#xA;&lt;h2 id=&#34;i-thought-it-would-be-easy&#34;&gt;I thought it would be easy &lt;a href=&#34;#i-thought-it-would-be-easy&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;There are a bunch of open source libraries that do all the things I need&#xA;an ssg to do.&lt;/p&gt;&#xA;&lt;h2 id=&#34;moving-to-python&#34;&gt;Moving to python &lt;a href=&#34;#moving-to-python&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;One of the biggest selling points to moving back to python was that I&#xA;use it every day and know the ecosystem much better.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://ipython.org/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/ipython.org.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/ipython.org.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;ipython&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/joerick/pyinstrument&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;pyinstrument&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;breakpoint&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;part-3-how-its-deployed-1&#34;&gt;Part 3 How it’s deployed &lt;a href=&#34;#part-3-how-its-deployed-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;word of caution&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;This part might be a lot of code coming quick.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Show how it comes together&lt;/li&gt;&#xA;&lt;li&gt;Link to the slides&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;everything-is-markdown&#34;&gt;Everything is markdown &lt;a href=&#34;#everything-is-markdown&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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;pymdown&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;extensions&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;python&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;frontmatter&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;frontmatter&#34;&gt;frontmatter &lt;a href=&#34;#frontmatter&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;All the metadata is defined in yaml frontmatter and read in with the&#xA;&lt;a href=&#34;https://github.com/eyeseast/python-frontmatter&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;python-frontmatter&lt;/a&gt;&#xA;library.&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;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;templateKey&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;blog-post&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;tags&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;webdev&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;meta&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;How I deploy my blog in 2022&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;ld&#34;&gt;2021-10-29&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;published&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;w&#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;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;setting-up-extensions&#34;&gt;setting up extensions &lt;a href=&#34;#setting-up-extensions&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;markata supports &lt;a href=&#34;https://facelessuser.github.io/pymdown-extensions/&#34;&gt;pymdown-extensions&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;n&#34;&gt;DEFAULT_MD_EXTENSIONS&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;s2&#34;&gt;&amp;#34;markdown.extensions.toc&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;s2&#34;&gt;&amp;#34;markdown.extensions.admonition&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;s2&#34;&gt;&amp;#34;markdown.extensions.tables&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;s2&#34;&gt;&amp;#34;markdown.extensions.md_in_html&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;s2&#34;&gt;&amp;#34;pymdownx.magiclink&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;s2&#34;&gt;&amp;#34;pymdownx.betterem&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;s2&#34;&gt;&amp;#34;pymdownx.tilde&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;s2&#34;&gt;&amp;#34;pymdownx.emoji&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;s2&#34;&gt;&amp;#34;pymdownx.tasklist&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;s2&#34;&gt;&amp;#34;pymdownx.superfences&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;s2&#34;&gt;&amp;#34;pymdownx.highlight&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;s2&#34;&gt;&amp;#34;pymdownx.inlinehilite&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;s2&#34;&gt;&amp;#34;pymdownx.keys&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;s2&#34;&gt;&amp;#34;pymdownx.saneheaders&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;s2&#34;&gt;&amp;#34;codehilite&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;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;setting-the-markdown-object&#34;&gt;setting the markdown object &lt;a href=&#34;#setting-the-markdown-object&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;markdown_extensions&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;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_MD_EXTENSIONS&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;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;markdown_extensions&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;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;md&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markdown&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Markdown&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;extensions&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;markdown_extensions&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;h2 id=&#34;pluggyhttpspluggyreadthedocsioenstable&#34;&gt;&lt;a href=&#34;https://pluggy.readthedocs.io/en/stable/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Pluggy&lt;/a&gt; &lt;a href=&#34;#pluggyhttpspluggyreadthedocsioenstable&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;comes from pytest&lt;/li&gt;&#xA;&lt;li&gt;allows users to easily modify the framework to their liking&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;one of the biggest reasons I started down this path is that I wanted&#xA;to build my own plugins all the way down framework.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;pluggyhttpspluggyreadthedocsioenstable-1&#34;&gt;&lt;a href=&#34;https://pluggy.readthedocs.io/en/stable/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Pluggy&lt;/a&gt; &lt;a href=&#34;#pluggyhttpspluggyreadthedocsioenstable-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pluggy.readthedocs.io/en/stable/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Pluggy&lt;/a&gt; is what I use to&#xA;implement my lifecycle.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;configure&lt;/li&gt;&#xA;&lt;li&gt;glob&lt;/li&gt;&#xA;&lt;li&gt;load&lt;/li&gt;&#xA;&lt;li&gt;pre_render&lt;/li&gt;&#xA;&lt;li&gt;render&lt;/li&gt;&#xA;&lt;li&gt;post_render&lt;/li&gt;&#xA;&lt;li&gt;save&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;pluggy&#34;&gt;Pluggy &lt;a href=&#34;#pluggy&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Pluggy allows the framework to crate a &lt;code&gt;hook_spec&lt;/code&gt; and plugin authors to&#xA;implement hooks with the &lt;code&gt;hook_impl&lt;/code&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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Define hook specs.&amp;#34;&amp;#34;&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;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pluggy&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;&#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;# the framework&amp;#39;s definition&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;hook_spec&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pluggy&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HookspecMarker&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;markata&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;&#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;# the plugin author&amp;#39;s implementation&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;hook_impl&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pluggy&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HookimplMarker&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;markata&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;h2 id=&#34;creating-the-hookspec&#34;&gt;creating the hookspec &lt;a href=&#34;#creating-the-hookspec&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;It’s an empty class.&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;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;MarkataSpecs&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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;&#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;s2&#34;&gt;    Namespace that defines all specifications for Load hooks.&#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;s2&#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;s2&#34;&gt;    glob -&amp;gt; load -&amp;gt; render -&amp;gt; save&#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;s2&#34;&gt;    &amp;#34;&amp;#34;&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;nd&#34;&gt;@hook_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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;glob&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Markata&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Glob for files to load.&amp;#34;&amp;#34;&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;k&#34;&gt;pass&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;nd&#34;&gt;@hook_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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;load&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Markata&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Load list of files.&amp;#34;&amp;#34;&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;k&#34;&gt;pass&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;nd&#34;&gt;@hook_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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;pre_render&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Markata&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Pre render content from loaded data.&amp;#34;&amp;#34;&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;k&#34;&gt;pass&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;nd&#34;&gt;@hook_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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;render&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Markata&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Render content from loaded data.&amp;#34;&amp;#34;&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;k&#34;&gt;pass&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;nd&#34;&gt;@hook_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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;post_render&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Markata&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Post render content from loaded data.&amp;#34;&amp;#34;&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;k&#34;&gt;pass&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;nd&#34;&gt;@hook_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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Markata&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Save content from data.&amp;#34;&amp;#34;&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;k&#34;&gt;pass&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;creating-the-plugin-manager&#34;&gt;creating the plugin manager &lt;a href=&#34;#creating-the-plugin-manager&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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;pm&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pluggy&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PluginManager&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;markata&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;pm&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_hookspecs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hookspec&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MarkataSpecs&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;&#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;# register hooks&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;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;hook&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;config&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hooks&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;plugin&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;importlib&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;import_module&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hook&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;pm&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;register&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;plugin&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;h2 id=&#34;diskcache&#34;&gt;Diskcache &lt;a href=&#34;#diskcache&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/grantjenks/python-diskcache/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Diskcache&lt;/a&gt; allows you&#xA;to setup a persistent cache layer.&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;cache&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;FanoutCache&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MARKATA_CACHE_DIR&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;statistics&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;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;make-a-key&#34;&gt;make a key &lt;a href=&#34;#make-a-key&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;To set soemthing to cache we need a unique identifier.&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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;make_hash&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&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;n&#34;&gt;keys&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&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;str_keys&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;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;key&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;keys&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;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;hashlib&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;md5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;str_keys&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;n&#34;&gt;encode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;utf-8&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;n&#34;&gt;hexdigest&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;h2 id=&#34;make-a-key-1&#34;&gt;make a key &lt;a href=&#34;#make-a-key-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;From my plugins I cache anything that the function I run touches.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;plugin code&lt;/li&gt;&#xA;&lt;li&gt;article content&lt;/li&gt;&#xA;&lt;li&gt;article frontmatter&lt;/li&gt;&#xA;&lt;/ul&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;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pathlib&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&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;n&#34;&gt;key&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;make_hash&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;vm&#34;&gt;__file__&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;n&#34;&gt;read_text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;article&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;article&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;metadata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;title&amp;#39;&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;h2 id=&#34;accessing-the-cache&#34;&gt;accessing the cache &lt;a href=&#34;#accessing-the-cache&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Now that we have a cache and a key we can ask the cache for values.&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;html_from_cache&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cache&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;key&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;h2 id=&#34;if-its-not-yet-been-set&#34;&gt;if it’s not yet been set &lt;a href=&#34;#if-its-not-yet-been-set&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;If the content is not yet set or has expired, you will get &lt;code&gt;None&lt;/code&gt; back and need&#xA;to create the value.&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;html_from_cache&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cache&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;key&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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;html_from_cache&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;html&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;md&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;article&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&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;cache&lt;/span&gt;&lt;span class=&#34;o&#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;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;html&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;expire&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;15&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;24&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;60&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;k&#34;&gt;else&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;html&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;html_from_cache&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;configuration&#34;&gt;Configuration &lt;a href=&#34;#configuration&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/ssato/python-anyconfig&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;anyconfig&lt;/a&gt; is a great tool&#xA;to pull your config from generic config files.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;markta.toml&lt;/li&gt;&#xA;&lt;li&gt;markta.yaml&lt;/li&gt;&#xA;&lt;li&gt;markta.ini&lt;/li&gt;&#xA;&lt;li&gt;pyproject.toml&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;configuration-1&#34;&gt;Configuration &lt;a href=&#34;#configuration-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Anyconfig needs a &lt;code&gt;path&lt;/code&gt;, &lt;code&gt;parser&lt;/code&gt;, and &lt;code&gt;keys&lt;/code&gt;.  The key is your tools&#xA;prefix&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;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;anyconfig&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;n&#34;&gt;anyconfig&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;load&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;path_specs&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;Path&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;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;markata.toml&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;ac_parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;toml&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;keys&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;s1&#34;&gt;&amp;#39;markata&amp;#39;&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;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;configuration-2&#34;&gt;Configuration &lt;a href=&#34;#configuration-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Each key in the config files used with &lt;code&gt;anyconfig&lt;/code&gt; must be prefixed with&#xA;the tool’s name.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;# markata.toml&#xA;[markata]&#xA;default_cache_expire = 1209600&#xA;&#xA;[markata.auto_description.description]&#xA;len=160&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;markata-was-born&#34;&gt;Markata was born &lt;a href=&#34;#markata-was-born&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;A plugins all the way doen static site generator written in python.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;6 lifecycle methods&lt;/li&gt;&#xA;&lt;li&gt;21 pre-defined plugins&lt;/li&gt;&#xA;&lt;li&gt;cache store&lt;/li&gt;&#xA;&lt;li&gt;toml based configuration&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;github-actions&#34;&gt;GitHub Actions &lt;a href=&#34;#github-actions&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Rendering the site inside of github actions with the cache is pretty&#xA;straightforward with these four steps.  Keying off of the configuration will&#xA;bust the cache every time we change the configuration.  You can hack a full&#xA;rebuild by changing anything inside of the configuration file.&lt;/p&gt;&#xA;&lt;h2 id=&#34;github-actions-1&#34;&gt;GitHub Actions &lt;a href=&#34;#github-actions-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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;w&#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;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Cache&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;uses&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;actions/cache@v2&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;with&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;.markata.cache&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;${{ runner.os }}-${{ hashfiles(&amp;#39;markata.toml&amp;#39;) }}-markata&lt;/span&gt;&lt;span class=&#34;w&#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;w&#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;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Set up Python 3.8&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;uses&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;actions/setup-python@v1&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;with&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;python-version&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3.8&lt;/span&gt;&lt;span class=&#34;w&#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;w&#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;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;install markata&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;run&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;pip install git+https://github.com/WaylonWalker/markata.git@develop python-twitter background&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# checksumdir&lt;/span&gt;&lt;span class=&#34;w&#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;w&#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;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;run markata&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;run&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;markata --no-rich&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;github-actions-2&#34;&gt;GitHub Actions &lt;a href=&#34;#github-actions-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;install&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markata&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;run&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pip&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;install&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;git&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;https&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;n&#34;&gt;github&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;com&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WaylonWalker&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;git&lt;/span&gt;&lt;span class=&#34;nd&#34;&gt;@develop&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;python&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;twitter&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;background&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# checksumdir&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;Note: I run bleeding edge, don’t do that&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;netlify&#34;&gt;Netlify &lt;a href=&#34;#netlify&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I use deploy to netlify but any static site host would work.&lt;/p&gt;&#xA;&lt;h2 id=&#34;netlify---cloudflare-pages&#34;&gt;Netlify -&amp;gt; Cloudflare Pages &lt;a href=&#34;#netlify---cloudflare-pages&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Since Making the title I’ve moved to Cloudflare pages.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Netlify is great, but I’m cheap and wanted analytics&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;results&#34;&gt;Results &lt;a href=&#34;#results&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;markata.dev&lt;/p&gt;&#xA;&lt;p&gt;Markdown to site, with seo, cover images, full works.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;seo/&lt;a href=&#34;/og/&#34; class=&#34;glossary-term&#34; title=&#34;OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...&#34;&gt;og&lt;/a&gt; tags&lt;/li&gt;&#xA;&lt;li&gt;cover images&lt;/li&gt;&#xA;&lt;li&gt;frontmatter cleansing&lt;/li&gt;&#xA;&lt;li&gt;feeds&lt;/li&gt;&#xA;&lt;li&gt;rss&lt;/li&gt;&#xA;&lt;li&gt;cli&lt;/li&gt;&#xA;&lt;li&gt;sitemap&lt;/li&gt;&#xA;&lt;li&gt;heading links&lt;/li&gt;&#xA;&lt;li&gt;build profiler&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;markatadev&#34;&gt;Markata.dev &lt;a href=&#34;#markatadev&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;In early 2022 I packaged up my blog’s backend as a package for others to use.&lt;/p&gt;&#xA;&lt;h2 id=&#34;markatadev-1&#34;&gt;Markata.dev &lt;a href=&#34;#markatadev-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I now have several users running their site with what I have built&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;My buddy has a near clone of mine with 15 posts&lt;/li&gt;&#xA;&lt;li&gt;Techdestructive&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;markatadev-2&#34;&gt;Markata.dev &lt;a href=&#34;#markatadev-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;plugins all the way down&lt;/li&gt;&#xA;&lt;li&gt;use the parts you want&lt;/li&gt;&#xA;&lt;li&gt;modify to your liking&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;markatadev-3&#34;&gt;Markata.dev &lt;a href=&#34;#markatadev-3&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;It lets you get started quick, write content early, and grow into your own platform&lt;/p&gt;&#xA;&lt;h2 id=&#34;markatadev-4&#34;&gt;Markata.dev &lt;a href=&#34;#markatadev-4&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;⚠ I’ts still very much beta&lt;/p&gt;&#xA;&lt;h2 id=&#34;open-source&#34;&gt;Open Source &lt;a href=&#34;#open-source&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;# install it for your application&#xA;pip install markata&#xA;&#xA;# try it out&#xA;pipx run markata build&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;quickstart&#34;&gt;quickstart &lt;a href=&#34;#quickstart&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;mkdir pages&#xA;echo &amp;#39;# My First Post&amp;#39; &amp;gt; first-post.md&#xA;echo &amp;#39;# Hello World&amp;#39; &amp;gt; hello-world.md&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;# or if pipx is your thing&#xA;pix run markata build&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;you-can-do-it-too&#34;&gt;You can do it too &lt;a href=&#34;#you-can-do-it-too&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Don’t worry about having the perfect post, just make something that is&#xA;useful to you, and others who will find it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;connect&#34;&gt;Connect &lt;a href=&#34;#connect&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://twitter.com/_WaylonWalker&#34;&gt;twitter&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.linkedin.com/in/waylonwalker/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.linkedin.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.linkedin.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/WaylonWalker&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://dev.to/waylonwalker&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/dev.to.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/dev.to.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Dev.to&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.twitch.tv/waylonwalker&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.twitch.tv.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.twitch.tv.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;twitch&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;links&#34;&gt;Links &lt;a href=&#34;#links&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.swyx.io/learn-in-public/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.swyx.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.swyx.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Learn In Public&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.swyx.io/learn-in-public/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.swyx.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.swyx.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;swyx&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://twitter.com/jbrancha&#34;&gt;jbrancha&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/jbranchaud/til&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;til repo&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://copier.readthedocs.io/en/stable/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/copier.readthedocs.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/copier.readthedocs.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;copier&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://ipython.org/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/ipython.org.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/ipython.org.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;ipython&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/joerick/pyinstrument&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;pyinstrument&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/eyeseast/python-frontmatter&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;python-frontmatter&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://facelessuser.github.io/pymdown-extensions/&#34;&gt;pymdown-extensions&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pluggy.readthedocs.io/en/stable/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Pluggy&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pluggy.readthedocs.io/en/stable/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Pluggy&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pluggy.readthedocs.io/en/stable/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Pluggy&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/grantjenks/python-diskcache/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Diskcache&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/ssato/python-anyconfig&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;anyconfig&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>How I deploy my blog in 2021</title>
    <id>https://go.waylonwalker.com/how-i-deploy-2021/</id>
    <updated>2021-10-29T00:00:00Z</updated>
    <published>2021-10-29T00:00:00Z</published>
    <link href="https://go.waylonwalker.com/how-i-deploy-2021/" rel="alternate" type="text/html"></link>
    <summary type="text">Content at the speed of thought.</summary>
    <content type="html">&lt;h2 id=&#34;how-i-continuously-deliver-content-to-my-blog-with-markdown-github-python-and-netlify&#34;&gt;How I Continuously Deliver Content to my Blog with Markdown, GitHub, Python, and netlify &lt;a href=&#34;#how-i-continuously-deliver-content-to-my-blog-with-markdown-github-python-and-netlify&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Content at the speed of thought.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;well, as fast as I can type&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;me&#34;&gt;Me &lt;a href=&#34;#me&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mechanical Engineering&lt;/li&gt;&#xA;&lt;li&gt;Data Engineering&lt;/li&gt;&#xA;&lt;li&gt;Terminal Junkie&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;ask-questions-in-slido&#34;&gt;Ask Questions in slido &lt;a href=&#34;#ask-questions-in-slido&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Please ask questions in slido # 983 911 | App Dev 1 Track&lt;/p&gt;&#xA;&lt;h2 id=&#34;slido-poll&#34;&gt;Slido Poll &lt;a href=&#34;#slido-poll&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Do &lt;strong&gt;you&lt;/strong&gt; have a personal blog / notes / website?&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Yes - Static, built with python&lt;/li&gt;&#xA;&lt;li&gt;Yes - I manage a server running python&lt;/li&gt;&#xA;&lt;li&gt;Yes - Not python&lt;/li&gt;&#xA;&lt;li&gt;No&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;we will circle back around in a few minutes&lt;/p&gt;&#xA;&lt;h2 id=&#34;ill-give-away-my-answer&#34;&gt;I’ll give away my answer &lt;a href=&#34;#ill-give-away-my-answer&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Yes - Static, built with python&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;slack-channel-track-1-appdev&#34;&gt;Slack Channel: #track-1-appdev &lt;a href=&#34;#slack-channel-track-1-appdev&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;If you are in the slack give me a 🔥🔥🔥🔥🔥🔥🔥&lt;/p&gt;&#xA;&lt;p&gt;Let’s light up slack 🔥🔥🔥🔥🔥🔥🔥&lt;/p&gt;&#xA;&lt;h2 id=&#34;4-parts&#34;&gt;4 parts &lt;a href=&#34;#4-parts&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Why&lt;/li&gt;&#xA;&lt;li&gt;My workflow&lt;/li&gt;&#xA;&lt;li&gt;Under the hood&lt;/li&gt;&#xA;&lt;li&gt;Open Source&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;part-1-why&#34;&gt;Part 1 WHY &lt;a href=&#34;#part-1-why&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;2016&#34;&gt;2016 &lt;a href=&#34;#2016&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;i-want-to-own-my-content&#34;&gt;I want to own my content &lt;a href=&#34;#i-want-to-own-my-content&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Twitter is a great networking tool, but it’s rare to see anything more&#xA;than a few hours old.&lt;/p&gt;&#xA;&lt;h2 id=&#34;i-want-to-own-my-content-1&#34;&gt;I want to own my content &lt;a href=&#34;#i-want-to-own-my-content-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;No one can take my domain or shut down the platform that my content is on.&lt;/p&gt;&#xA;&lt;h2 id=&#34;some-of-my-stats&#34;&gt;Some of my Stats &lt;a href=&#34;#some-of-my-stats&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;48 Google top 10 ranking pages&lt;/li&gt;&#xA;&lt;li&gt;6500 monthly clicks on google&lt;/li&gt;&#xA;&lt;li&gt;12k page monthly views&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;from ahrefs and google search console&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;learn-in-publichttpswwwswyxiolearn-in-public&#34;&gt;&lt;a href=&#34;https://www.swyx.io/learn-in-public/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.swyx.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.swyx.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Learn In Public&lt;/a&gt; &lt;a href=&#34;#learn-in-publichttpswwwswyxiolearn-in-public&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I’m creating learning exhaust.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Inspired by &lt;a href=&#34;https://www.swyx.io/learn-in-public/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.swyx.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.swyx.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;swyx&lt;/a&gt;&#xA;&lt;a href=&#34;https://www.swyx.io/learn-in-public/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.swyx.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.swyx.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://www.swyx.io/learn-in-public/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;from-swyx&#34;&gt;from swyx &lt;a href=&#34;#from-swyx&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Whatever your thing is, make the thing you wish you had found when you&#xA;were learning. Don’t judge your results by “claps” or retweets or&#xA;stars or upvotes - just talk to yourself from 3 months ago. I keep an&#xA;almost-daily dev blog written for no one else but me.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;focus-on-content&#34;&gt;Focus on content &lt;a href=&#34;#focus-on-content&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I could not do any of this if I was focused on Building rather than&#xA;writing.&lt;/p&gt;&#xA;&lt;h2 id=&#34;focus-on-content-1&#34;&gt;Focus on content &lt;a href=&#34;#focus-on-content-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;No one needs elastic search navigate your first 50 posts.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;when you are starting&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;focus-on-content-2&#34;&gt;Focus on content &lt;a href=&#34;#focus-on-content-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;No one is going to make comments.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;when you are starting&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;write-for-yourself&#34;&gt;Write for yourself &lt;a href=&#34;#write-for-yourself&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;You are your biggest audience out of the gate.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;If you continue writing others like you will find you&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;dont-worry-about-the-trolls&#34;&gt;Don’t worry about the Trolls &lt;a href=&#34;#dont-worry-about-the-trolls&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;No one is going to take your python keys away.&lt;/p&gt;&#xA;&lt;h2 id=&#34;slido-check&#34;&gt;Slido Check &lt;a href=&#34;#slido-check&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Please ask questions in slack/slido&lt;/p&gt;&#xA;&lt;h2 id=&#34;part-2-workflow-and-tools&#34;&gt;Part 2 Workflow and tools &lt;a href=&#34;#part-2-workflow-and-tools&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;To the meat of the talk&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Let’s start by making a post&lt;/li&gt;&#xA;&lt;li&gt;then show how it works under the hood&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;if-you-take-away-anything&#34;&gt;If you take away anything &lt;a href=&#34;#if-you-take-away-anything&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Focus on content that you want to consume.&lt;/p&gt;&#xA;&lt;h2 id=&#34;my-flow&#34;&gt;My Flow &lt;a href=&#34;#my-flow&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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;   ┌───────┐&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   │  TIL  │&#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;     │&#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;     │  │             │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     └─►│    Posts    │&#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;        └─┬───────────┘&#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;          │   ┌────────────────┐&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          └──►│    YouTube     │&#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;          │   ┌────────────────┐&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          └──►│    Conference  │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;              │    Talks       │&#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;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;lets-start-with-a-til&#34;&gt;Let’s start with a Til &lt;a href=&#34;#lets-start-with-a-til&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;the process&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;shoutout-to-jbranchahttpstwittercomjbrancha&#34;&gt;shoutout to @&lt;a href=&#34;https://twitter.com/jbrancha&#34;&gt;jbrancha&lt;/a&gt; &lt;a href=&#34;#shoutout-to-jbranchahttpstwittercomjbrancha&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Check out his amazing &lt;a href=&#34;https://github.com/jbranchaud/til&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;til repo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;If you ask google very many questions about &lt;a href=&#34;/glossary/git/&#34; class=&#34;glossary-term&#34; title=&#34;Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...&#34;&gt;git&lt;/a&gt;, you will end up&#xA;finding him on the top&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;copier&#34;&gt;Copier &lt;a href=&#34;#copier&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I use &lt;a href=&#34;https://copier.readthedocs.io/en/stable/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/copier.readthedocs.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/copier.readthedocs.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;copier&lt;/a&gt; for single file&#xA;templates.&lt;/p&gt;&#xA;&lt;h2 id=&#34;copier-give-me-a-new-page&#34;&gt;Copier give me a new page &lt;a href=&#34;#copier-give-me-a-new-page&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;How I Present from the terminal with lookatme&#xA;lookatme-slides&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;copier copy ~/.copier-templates/&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;ls ~/.copier-templates &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;se&#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;se&#34;&gt;&lt;/span&gt;    fzf --header &lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;pwd&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt; --preview&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;tree ~/.copier-templates/{} |\&#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;s1&#34;&gt;    lolcat&amp;#39;&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt; . &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;nvim-open-my-file&#34;&gt;nvim open my file &lt;a href=&#34;#nvim-open-my-file&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;!TIP Once it starts getting uncomfortable to find posts, its nice to have&#xA;good shortcuts to get around.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I have about 700 files on my blog to sift through&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;nvim-open-my-file-1&#34;&gt;nvim open my file &lt;a href=&#34;#nvim-open-my-file-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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 list --map path --filter &lt;span class=&#34;s1&#34;&gt;&amp;#39;templateKey==&amp;#34;til&amp;#34;&amp;#39;&lt;/span&gt; --sort date --reverse&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&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;nnoremap&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;geil&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;cmd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Telescope&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;find_files&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;find_command&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,--&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;map&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,--&lt;/span&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;nx&#34;&gt;templateKey&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;==&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;til&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,--&lt;/span&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;nx&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,--&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;reverse&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;cr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;paste-in-a-snippet&#34;&gt;Paste in a snippet &lt;a href=&#34;#paste-in-a-snippet&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Often times I am working away on some sort of project, and I just need&#xA;to save a snippet for a later post.&lt;/p&gt;&#xA;&lt;h2 id=&#34;write-the-content&#34;&gt;Write the content &lt;a href=&#34;#write-the-content&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Later I come back and fill in the content.&lt;/p&gt;&#xA;&lt;h2 id=&#34;git-push&#34;&gt;git push &lt;a href=&#34;#git-push&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I have a vim hotkey &lt;code&gt;gic&lt;/code&gt; to commit my current file, and &lt;code&gt;gpp&lt;/code&gt; to push&#xA;it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;its-nearly-live&#34;&gt;It’s nearly live &lt;a href=&#34;#its-nearly-live&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;It will be live within a few minutes.&lt;/p&gt;&#xA;&lt;h2 id=&#34;cross-post&#34;&gt;Cross Post &lt;a href=&#34;#cross-post&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I’ve tried to cross post to more, but it really gets overwhelming.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Twitter&lt;/li&gt;&#xA;&lt;li&gt;dev.to&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;cross-post-1&#34;&gt;Cross Post &lt;a href=&#34;#cross-post-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I have a plugin to convert my markdown to a more dev.to friendly format.&lt;/p&gt;&#xA;&lt;h2 id=&#34;slido-check-1&#34;&gt;Slido Check &lt;a href=&#34;#slido-check-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Let’g grab a question from slack/slido&lt;/p&gt;&#xA;&lt;h2 id=&#34;part-3-how-its-deployed&#34;&gt;Part 3 How it’s deployed &lt;a href=&#34;#part-3-how-its-deployed&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;In March of 2021 I made the big switch from a javascript based framework&#xA;to my own ssg.&lt;/p&gt;&#xA;&lt;h2 id=&#34;i-thought-it-would-be-easy&#34;&gt;I thought it would be easy &lt;a href=&#34;#i-thought-it-would-be-easy&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;There are a bunch of open source libraries that do all the things I need&#xA;an ssg to do.&lt;/p&gt;&#xA;&lt;h2 id=&#34;moving-to-python&#34;&gt;Moving to python &lt;a href=&#34;#moving-to-python&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;One of the biggest selling points to moving back to python was that I&#xA;use it every day and know the ecosystem much better.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://ipython.org/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/ipython.org.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/ipython.org.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;ipython&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/joerick/pyinstrument&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;pyinstrument&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;breakpoint&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;part-3-how-its-deployed-1&#34;&gt;Part 3 How it’s deployed &lt;a href=&#34;#part-3-how-its-deployed-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;word of caution&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;This part might be a lot of code coming quick.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Show how it comes together&lt;/li&gt;&#xA;&lt;li&gt;Link to the slides&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;everything-is-markdown&#34;&gt;Everything is markdown &lt;a href=&#34;#everything-is-markdown&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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;pymdown&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;extensions&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;python&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;frontmatter&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;frontmatter&#34;&gt;frontmatter &lt;a href=&#34;#frontmatter&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;All the metadata is defined in yaml frontmatter and read in with the&#xA;&lt;a href=&#34;https://github.com/eyeseast/python-frontmatter&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;python-frontmatter&lt;/a&gt;&#xA;library.&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;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;templateKey&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;blog-post&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;tags&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;webdev&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;meta&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;How I deploy my blog in 2022&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;ld&#34;&gt;2021-10-29&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;published&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;w&#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;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;setting-up-extensions&#34;&gt;setting up extensions &lt;a href=&#34;#setting-up-extensions&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;markata supports &lt;a href=&#34;https://facelessuser.github.io/pymdown-extensions/&#34;&gt;pymdown-extensions&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;n&#34;&gt;DEFAULT_MD_EXTENSIONS&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;s2&#34;&gt;&amp;#34;markdown.extensions.toc&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;s2&#34;&gt;&amp;#34;markdown.extensions.admonition&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;s2&#34;&gt;&amp;#34;markdown.extensions.tables&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;s2&#34;&gt;&amp;#34;markdown.extensions.md_in_html&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;s2&#34;&gt;&amp;#34;pymdownx.magiclink&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;s2&#34;&gt;&amp;#34;pymdownx.betterem&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;s2&#34;&gt;&amp;#34;pymdownx.tilde&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;s2&#34;&gt;&amp;#34;pymdownx.emoji&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;s2&#34;&gt;&amp;#34;pymdownx.tasklist&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;s2&#34;&gt;&amp;#34;pymdownx.superfences&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;s2&#34;&gt;&amp;#34;pymdownx.highlight&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;s2&#34;&gt;&amp;#34;pymdownx.inlinehilite&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;s2&#34;&gt;&amp;#34;pymdownx.keys&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;s2&#34;&gt;&amp;#34;pymdownx.saneheaders&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;s2&#34;&gt;&amp;#34;codehilite&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;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;setting-the-markdown-object&#34;&gt;setting the markdown object &lt;a href=&#34;#setting-the-markdown-object&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;markdown_extensions&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;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DEFAULT_MD_EXTENSIONS&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;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;markdown_extensions&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;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;md&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markdown&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Markdown&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;extensions&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;markdown_extensions&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;h2 id=&#34;pluggyhttpspluggyreadthedocsioenstable&#34;&gt;&lt;a href=&#34;https://pluggy.readthedocs.io/en/stable/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Pluggy&lt;/a&gt; &lt;a href=&#34;#pluggyhttpspluggyreadthedocsioenstable&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;comes from pytest&lt;/li&gt;&#xA;&lt;li&gt;allows users to easily modify the framework to their liking&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;one of the biggest reasons I started down this path is that I wanted&#xA;to build my own plugins all the way down framework.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;pluggyhttpspluggyreadthedocsioenstable-1&#34;&gt;&lt;a href=&#34;https://pluggy.readthedocs.io/en/stable/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Pluggy&lt;/a&gt; &lt;a href=&#34;#pluggyhttpspluggyreadthedocsioenstable-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pluggy.readthedocs.io/en/stable/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Pluggy&lt;/a&gt; is what I use to&#xA;implement my lifecycle.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;configure&lt;/li&gt;&#xA;&lt;li&gt;glob&lt;/li&gt;&#xA;&lt;li&gt;load&lt;/li&gt;&#xA;&lt;li&gt;pre_render&lt;/li&gt;&#xA;&lt;li&gt;render&lt;/li&gt;&#xA;&lt;li&gt;post_render&lt;/li&gt;&#xA;&lt;li&gt;save&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;pluggy&#34;&gt;Pluggy &lt;a href=&#34;#pluggy&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Pluggy allows the framework to crate a &lt;code&gt;hook_spec&lt;/code&gt; and plugin authors to&#xA;implement hooks with the &lt;code&gt;hook_impl&lt;/code&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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Define hook specs.&amp;#34;&amp;#34;&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;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pluggy&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;&#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;# the framework&amp;#39;s definition&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;hook_spec&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pluggy&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HookspecMarker&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;markata&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;&#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;# the plugin author&amp;#39;s implementation&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;hook_impl&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pluggy&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HookimplMarker&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;markata&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;h2 id=&#34;creating-the-hookspec&#34;&gt;creating the hookspec &lt;a href=&#34;#creating-the-hookspec&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;It’s an empty class.&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;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;MarkataSpecs&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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;&#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;s2&#34;&gt;    Namespace that defines all specifications for Load hooks.&#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;s2&#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;s2&#34;&gt;    glob -&amp;gt; load -&amp;gt; render -&amp;gt; save&#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;s2&#34;&gt;    &amp;#34;&amp;#34;&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;nd&#34;&gt;@hook_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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;glob&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Markata&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Glob for files to load.&amp;#34;&amp;#34;&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;k&#34;&gt;pass&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;nd&#34;&gt;@hook_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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;load&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Markata&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Load list of files.&amp;#34;&amp;#34;&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;k&#34;&gt;pass&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;nd&#34;&gt;@hook_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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;pre_render&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Markata&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Pre render content from loaded data.&amp;#34;&amp;#34;&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;k&#34;&gt;pass&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;nd&#34;&gt;@hook_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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;render&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Markata&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Render content from loaded data.&amp;#34;&amp;#34;&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;k&#34;&gt;pass&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;nd&#34;&gt;@hook_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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;post_render&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Markata&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Post render content from loaded data.&amp;#34;&amp;#34;&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;k&#34;&gt;pass&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;nd&#34;&gt;@hook_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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Markata&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Save content from data.&amp;#34;&amp;#34;&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;k&#34;&gt;pass&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;creating-the-plugin-manager&#34;&gt;creating the plugin manager &lt;a href=&#34;#creating-the-plugin-manager&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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;pm&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pluggy&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PluginManager&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;markata&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;pm&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;add_hookspecs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hookspec&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MarkataSpecs&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;&#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;# register hooks&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;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;hook&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;config&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hooks&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;plugin&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;importlib&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;import_module&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hook&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;pm&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;register&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;plugin&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;h2 id=&#34;diskcache&#34;&gt;Diskcache &lt;a href=&#34;#diskcache&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/grantjenks/python-diskcache/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Diskcache&lt;/a&gt; allows you&#xA;to setup a persistent cache layer.&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;cache&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;FanoutCache&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MARKATA_CACHE_DIR&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;statistics&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;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;make-a-key&#34;&gt;make a key &lt;a href=&#34;#make-a-key&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;To set soemthing to cache we need a unique identifier.&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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;make_hash&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&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;n&#34;&gt;keys&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;str&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;str_keys&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;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;key&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;keys&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;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;hashlib&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;md5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;str_keys&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;n&#34;&gt;encode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;utf-8&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;n&#34;&gt;hexdigest&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;h2 id=&#34;make-a-key-1&#34;&gt;make a key &lt;a href=&#34;#make-a-key-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;From my plugins I cache anything that the function I run touches.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;plugin code&lt;/li&gt;&#xA;&lt;li&gt;article content&lt;/li&gt;&#xA;&lt;li&gt;article frontmatter&lt;/li&gt;&#xA;&lt;/ul&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;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pathlib&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Path&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;n&#34;&gt;key&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;make_hash&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;vm&#34;&gt;__file__&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;n&#34;&gt;read_text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;article&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;article&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;metadata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;title&amp;#39;&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;h2 id=&#34;accessing-the-cache&#34;&gt;accessing the cache &lt;a href=&#34;#accessing-the-cache&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Now that we have a cache and a key we can ask the cache for values.&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;html_from_cache&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cache&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;key&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;h2 id=&#34;if-its-not-yet-been-set&#34;&gt;if it’s not yet been set &lt;a href=&#34;#if-its-not-yet-been-set&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;If the content is not yet set or has expired, you will get &lt;code&gt;None&lt;/code&gt; back and need&#xA;to create the value.&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;html_from_cache&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cache&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;key&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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;html_from_cache&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&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;html&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;md&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;convert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;article&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&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;cache&lt;/span&gt;&lt;span class=&#34;o&#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;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;html&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;expire&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;15&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;24&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;60&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;k&#34;&gt;else&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;html&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;html_from_cache&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;configuration&#34;&gt;Configuration &lt;a href=&#34;#configuration&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/ssato/python-anyconfig&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;anyconfig&lt;/a&gt; is a great tool&#xA;to pull your config from generic config files.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;markta.toml&lt;/li&gt;&#xA;&lt;li&gt;markta.yaml&lt;/li&gt;&#xA;&lt;li&gt;markta.ini&lt;/li&gt;&#xA;&lt;li&gt;pyproject.toml&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;configuration-1&#34;&gt;Configuration &lt;a href=&#34;#configuration-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Anyconfig needs a &lt;code&gt;path&lt;/code&gt;, &lt;code&gt;parser&lt;/code&gt;, and &lt;code&gt;keys&lt;/code&gt;.  The key is your tools&#xA;prefix&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;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;anyconfig&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;n&#34;&gt;anyconfig&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;load&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;path_specs&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;Path&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;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;markata.toml&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;ac_parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;toml&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;keys&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;s1&#34;&gt;&amp;#39;markata&amp;#39;&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;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;configuration-2&#34;&gt;Configuration &lt;a href=&#34;#configuration-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Each key in the config files used with &lt;code&gt;anyconfig&lt;/code&gt; must be prefixed with&#xA;the tool’s name.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;# markata.toml&#xA;[markata]&#xA;default_cache_expire = 1209600&#xA;&#xA;[markata.auto_description.description]&#xA;len=160&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;markata-was-born&#34;&gt;Markata was born &lt;a href=&#34;#markata-was-born&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;A plugins all the way doen static site generator written in python.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;6 lifecycle methods&lt;/li&gt;&#xA;&lt;li&gt;21 pre-defined plugins&lt;/li&gt;&#xA;&lt;li&gt;cache store&lt;/li&gt;&#xA;&lt;li&gt;toml based configuration&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;github-actions&#34;&gt;GitHub Actions &lt;a href=&#34;#github-actions&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Rendering the site inside of github actions with the cache is pretty&#xA;straightforward with these four steps.  Keying off of the configuration will&#xA;bust the cache every time we change the configuration.  You can hack a full&#xA;rebuild by changing anything inside of the configuration file.&lt;/p&gt;&#xA;&lt;h2 id=&#34;github-actions-1&#34;&gt;GitHub Actions &lt;a href=&#34;#github-actions-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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;w&#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;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Cache&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;uses&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;actions/cache@v2&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;with&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;.markata.cache&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;${{ runner.os }}-${{ hashfiles(&amp;#39;markata.toml&amp;#39;) }}-markata&lt;/span&gt;&lt;span class=&#34;w&#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;w&#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;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Set up Python 3.8&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;uses&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;actions/setup-python@v1&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;with&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;python-version&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3.8&lt;/span&gt;&lt;span class=&#34;w&#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;w&#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;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;install markata&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;run&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;pip install git+https://github.com/WaylonWalker/markata.git@develop python-twitter background&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# checksumdir&lt;/span&gt;&lt;span class=&#34;w&#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;w&#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;w&#34;&gt;&lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;run markata&lt;/span&gt;&lt;span class=&#34;w&#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;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;run&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;markata --no-rich&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;github-actions-2&#34;&gt;GitHub Actions &lt;a href=&#34;#github-actions-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;install&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;markata&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;run&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pip&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;install&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;git&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;https&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;n&#34;&gt;github&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;com&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WaylonWalker&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;git&lt;/span&gt;&lt;span class=&#34;nd&#34;&gt;@develop&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;python&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;twitter&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;background&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# checksumdir&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;Note: I run bleeding edge, don’t do that&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;netlify&#34;&gt;Netlify &lt;a href=&#34;#netlify&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I use deploy to netlify but any static site host would work.&lt;/p&gt;&#xA;&lt;h2 id=&#34;netlify---cloudflare-pages&#34;&gt;Netlify -&amp;gt; Cloudflare Pages &lt;a href=&#34;#netlify---cloudflare-pages&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Since Making the title I’ve moved to Cloudflare pages.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Netlify is great, but I’m cheap and wanted analytics&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;results&#34;&gt;Results &lt;a href=&#34;#results&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;markata.dev&lt;/p&gt;&#xA;&lt;p&gt;Markdown to site, with seo, cover images, full works.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;seo/&lt;a href=&#34;/og/&#34; class=&#34;glossary-term&#34; title=&#34;OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...&#34;&gt;og&lt;/a&gt; tags&lt;/li&gt;&#xA;&lt;li&gt;cover images&lt;/li&gt;&#xA;&lt;li&gt;frontmatter cleansing&lt;/li&gt;&#xA;&lt;li&gt;feeds&lt;/li&gt;&#xA;&lt;li&gt;rss&lt;/li&gt;&#xA;&lt;li&gt;cli&lt;/li&gt;&#xA;&lt;li&gt;sitemap&lt;/li&gt;&#xA;&lt;li&gt;heading links&lt;/li&gt;&#xA;&lt;li&gt;build profiler&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;markatadev&#34;&gt;Markata.dev &lt;a href=&#34;#markatadev&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;In early 2022 I packaged up my blog’s backend as a package for others to use.&lt;/p&gt;&#xA;&lt;h2 id=&#34;markatadev-1&#34;&gt;Markata.dev &lt;a href=&#34;#markatadev-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I now have several users running their site with what I have built&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;My buddy has a near clone of mine with 15 posts&lt;/li&gt;&#xA;&lt;li&gt;Techdestructive&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;markatadev-2&#34;&gt;Markata.dev &lt;a href=&#34;#markatadev-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;plugins all the way down&lt;/li&gt;&#xA;&lt;li&gt;use the parts you want&lt;/li&gt;&#xA;&lt;li&gt;modify to your liking&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;markatadev-3&#34;&gt;Markata.dev &lt;a href=&#34;#markatadev-3&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;It lets you get started quick, write content early, and grow into your own platform&lt;/p&gt;&#xA;&lt;h2 id=&#34;markatadev-4&#34;&gt;Markata.dev &lt;a href=&#34;#markatadev-4&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;⚠ I’ts still very much beta&lt;/p&gt;&#xA;&lt;h2 id=&#34;open-source&#34;&gt;Open Source &lt;a href=&#34;#open-source&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;# install it for your application&#xA;pip install markata&#xA;&#xA;# try it out&#xA;pipx run markata build&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;quickstart&#34;&gt;quickstart &lt;a href=&#34;#quickstart&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;mkdir pages&#xA;echo &amp;#39;# My First Post&amp;#39; &amp;gt; first-post.md&#xA;echo &amp;#39;# Hello World&amp;#39; &amp;gt; hello-world.md&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;pre&gt;&lt;code&gt;# or if pipx is your thing&#xA;pix run markata build&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;you-can-do-it-too&#34;&gt;You can do it too &lt;a href=&#34;#you-can-do-it-too&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Don’t worry about having the perfect post, just make something that is&#xA;useful to you, and others who will find it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;connect&#34;&gt;Connect &lt;a href=&#34;#connect&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://twitter.com/_WaylonWalker&#34;&gt;twitter&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.linkedin.com/in/waylonwalker/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.linkedin.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.linkedin.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/WaylonWalker&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://dev.to/waylonwalker&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/dev.to.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/dev.to.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Dev.to&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.twitch.tv/waylonwalker&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.twitch.tv.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.twitch.tv.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;twitch&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;links&#34;&gt;Links &lt;a href=&#34;#links&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/ssato/python-anyconfig&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;anyconfig&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://copier.readthedocs.io/en/stable/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/copier.readthedocs.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/copier.readthedocs.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;copier&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/grantjenks/python-diskcache/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Diskcache&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://ipython.org/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/ipython.org.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/ipython.org.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;ipython&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://twitter.com/jbrancha&#34;&gt;jbrancha&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.swyx.io/learn-in-public/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.swyx.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.swyx.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Learn In Public&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pluggy.readthedocs.io/en/stable/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/pluggy.readthedocs.io.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Pluggy&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/joerick/pyinstrument&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;pyinstrument&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://facelessuser.github.io/pymdown-extensions/&#34;&gt;pymdown-extensions&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/eyeseast/python-frontmatter&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;python-frontmatter&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.swyx.io/learn-in-public/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.swyx.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.swyx.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;swyx&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/jbranchaud/til&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;til repo&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>I Started Streaming on Twitch</title>
    <id>https://go.waylonwalker.com/start-streaming/</id>
    <updated>2021-06-12T10:11:00Z</updated>
    <published>2021-06-12T10:11:00Z</published>
    <link href="https://go.waylonwalker.com/start-streaming/" rel="alternate" type="text/html"></link>
    <summary type="text">I recently started streaming on twitch.tv/waylonwalker and it&#39;s been a blast so far.</summary>
    <content type="html">&lt;p&gt;I recently started streaming on&#xA;&lt;a href=&#34;https://www.twitch.tv/waylonwalker&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.twitch.tv.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.twitch.tv.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;twitch.tv/waylonwalker&lt;/a&gt; and it’s been a&#xA;blast so far.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;python&lt;/li&gt;&#xA;&lt;li&gt;kedro&lt;/li&gt;&#xA;&lt;li&gt;Data Science&lt;/li&gt;&#xA;&lt;li&gt;Data Engineering&lt;/li&gt;&#xA;&lt;li&gt;webdev&lt;/li&gt;&#xA;&lt;li&gt;digital gardening&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;kedro-spaceflights&#34;&gt;Kedro Spaceflights &lt;a href=&#34;#kedro-spaceflights&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;It all started with&#xA;&lt;a href=&#34;https://github.com/kedro-org/kedro/issues/606&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;kedro/issues/606&lt;/a&gt;, Yetu&#xA;called out for users of kedro to record themselves doing a walk through of&#xA;their tutorials.  I wanted to do this, but was really stuck at the fact that&#xA;recording or editing somewhat polished vide is quite time consuming for me.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/kedro-issue-606.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/kedro-issue-606.png&#34; alt=&#34;kedro-issue-606&#34;/ data-glightbox=&#34;description: kedro-issue-606&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;inspiration&#34;&gt;Inspiration &lt;a href=&#34;#inspiration&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;My introduction to twitch came from&#xA;&lt;a href=&#34;https://twitch.tv/theprimeagen&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/twitch.tv.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/twitch.tv.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;twitch.tv/theprimeagen&lt;/a&gt;. I watched him on&#xA;YouTube, and then decided to drop into a stream.  It was so fun to watch him&#xA;live that I started following others in the science and tech category.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.twitch.tv/teej_dv&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.twitch.tv.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.twitch.tv.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;twitch.tv/teej_dv&lt;/a&gt; Brilliant neovim core dev, I learn a bunch about nvim every time I watch.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.twitch.tv/cmgriffing&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.twitch.tv.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.twitch.tv.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;twitch.tv/cmgriffing&lt;/a&gt; Super Chill and engaging chat.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.twitch.tv/cassidoo&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.twitch.tv.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.twitch.tv.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;twitch.tv/cassidoo&lt;/a&gt; Fantastic discussion/chat.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.twitch.tv/anthonywritescode&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.twitch.tv.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.twitch.tv.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;twitch.tv/anthonywritescode&lt;/a&gt; Building the python ecosystem.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.twitch.tv/kierisi&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.twitch.tv.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.twitch.tv.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;twitch.tv/kierisi&lt;/a&gt; Exploring data in r-studio, taking xgboost to Sliced.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;streaming-what-i-do&#34;&gt;Streaming What I Do &lt;a href=&#34;#streaming-what-i-do&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;After taking a jump in with the spaceflights tutorial I realized that it really&#xA;was not that hard to do, and I can stream things that I am doing anyways.  I&#xA;will be streaming while I build open source kedro plugins, pipelines, and while&#xA;I work on my website.&lt;/p&gt;&#xA;&lt;h2 id=&#34;youtube&#34;&gt;YouTube &lt;a href=&#34;#youtube&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I started storing all the replay, and some clips on&#xA;&lt;a href=&#34;https://www.youtube.com/channel/UChoRUssc5HoO-xQ9hUKZ1mA&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.youtube.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.youtube.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;YouTube&lt;/a&gt;.  If that&#xA;is more of your thing be sure to check it out.  To be completely honest the  editing/ clips will likely come at a minimum, as they take me a lot more time to edit.  I would greatly appreciate&#xA;anyone who subscribes to help me get to the 100 subscriber baseline to get my&#xA;custom url.&lt;/p&gt;&#xA;&lt;p&gt;Come join me while I try to figure out what I am doing.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://youtu.be/55g8FQr0kgA&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Deploying a kedro dataset to netlify&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Here is a small clip from my latest&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Upcoming Stream</title>
    <id>https://go.waylonwalker.com/upcoming-streams/</id>
    <updated>2021-06-08T20:27:53Z</updated>
    <published>2021-06-08T20:27:53Z</published>
    <link href="https://go.waylonwalker.com/upcoming-streams/" rel="alternate" type="text/html"></link>
    <summary type="text">!!! Caution I&#39;m no longer streaming As much as I would really love to make streaming work, its really hard for my family situation to make large blocks of...</summary>
    <content type="html">&lt;div class=&#34;admonition caution&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;I&amp;#39;m no longer streaming&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;As much as I would really love to make streaming work, its really hard for&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;my family situation to make large blocks of time work for me.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://stackoverflow.com/questions/16720541/python-string-replace-regular-expression&#34; class=&#34;hoverlink  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/stackoverflow.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/stackoverflow.com.ico&#34;&gt;https://stackoverflow.com/questions/16720541/python-string-replace-regular-expression&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I am starting to stream 3 days per week, before I start work in the morning.&#xA;These streams will likely be me just talking through things I am already doing.&lt;/p&gt;&#xA;&lt;h2 id=&#34;making-dags-do-magical-things--open-source-python--kedro-plugins-&#34;&gt;Making DAGs do 🔮Magical Things | Open Source 🐍Python | kedro plugins | &lt;a href=&#34;#making-dags-do-magical-things--open-source-python--kedro-plugins-&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;Science &amp;amp; Technology | Every Monday • 7:00 AM - 9:00 AM CDT&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;On Monday’s I am going to be working on open source packages/plugins for kedro.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;kedro-diff&lt;/li&gt;&#xA;&lt;li&gt;test kedro-diff on piplines with history&lt;/li&gt;&#xA;&lt;li&gt;setup deploy pipeline&lt;/li&gt;&#xA;&lt;li&gt;deply to pypi&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;-digital-gardening--blogging-with-python--building-markata-a-static-site-generator-in-python-for-waylonwalkercom&#34;&gt;🌱 Digital Gardening | Blogging with 🐍Python | Building 🔮Markata a static site generator in python for waylonwalker.com &lt;a href=&#34;#-digital-gardening--blogging-with-python--building-markata-a-static-site-generator-in-python-for-waylonwalkercom&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;Science &amp;amp; Technology | Every Wednesday • 7:00 AM - 9:00 AM CDT&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;On Wednesday morning I will be working on my personal website and the static&#xA;site generator that I built for it, Markata.&lt;/p&gt;&#xA;&lt;h3 id=&#34;features&#34;&gt;Features &lt;a href=&#34;#features&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;DONE &lt;del&gt;one_line_gif&lt;/del&gt;&lt;/li&gt;&#xA;&lt;li&gt;DONE automate mp4’s&lt;/li&gt;&#xA;&lt;li&gt;Fix big images&lt;/li&gt;&#xA;&lt;li&gt;Fix Amp issues&lt;/li&gt;&#xA;&lt;li&gt;speed up build times&lt;/li&gt;&#xA;&lt;li&gt;measure plugin performance&lt;/li&gt;&#xA;&lt;li&gt;speed up images.waylonwalker builds&lt;/li&gt;&#xA;&lt;li&gt;build footer&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;error-correction&#34;&gt;Error Correction &lt;a href=&#34;#error-correction&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;redirect detector&lt;/li&gt;&#xA;&lt;li&gt;detect multiple H1&lt;/li&gt;&#xA;&lt;li&gt;title too short (50-70 characters)&lt;/li&gt;&#xA;&lt;li&gt;missing alt text&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;building-dags-with--python---writing-data-pipelines-wih-kedro&#34;&gt;Building DAGS with 🐍 Python | 🛢 Writing data pipelines wih Kedro &lt;a href=&#34;#building-dags-with--python---writing-data-pipelines-wih-kedro&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;Science &amp;amp; Technology | Every Friday • 7:00 AM - 9:00 AM CDT&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Friday will be all about building DAG’s or data related things in python. I&#xA;might reach for something like tidy tuesday, makeover monday, or just do my own&#xA;thing. I have a few ideas of things to do on my own first.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;open pypi package names&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Blogging For Me</title>
    <id>https://go.waylonwalker.com/blogging-for-me/</id>
    <updated>2021-01-21T00:00:00Z</updated>
    <published>2021-01-21T00:00:00Z</published>
    <link href="https://go.waylonwalker.com/blogging-for-me/" rel="alternate" type="text/html"></link>
    <summary type="text">I create this blog with one person in mind, me.</summary>
    <content type="html">&lt;p&gt;I create this blog with one person in mind, me.&lt;/p&gt;&#xA;&lt;h2 id=&#34;there-are-others-like-me&#34;&gt;There are others like me &lt;a href=&#34;#there-are-others-like-me&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;This is not completely selfish, as there are likely many others out there that&#xA;think similarly to me.  Everyone comes from different backgrounds and varying&#xA;levels of experience.  In no way do you need to be an expert to create content&#xA;others will benefit from.&lt;/p&gt;&#xA;&lt;h2 id=&#34;accurate&#34;&gt;Accurate &lt;a href=&#34;#accurate&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I am as accurate as possible.  I don’t know everything, and If I waited for&#xA;that to happen I would never post, or write at such a high level no one else&#xA;(including me) would ever want to read.&lt;/p&gt;&#xA;&lt;p&gt;Generally I know that I am directionally accurate for most of the article.  In&#xA;fact there is often a part of the article that I don’t feel the best about.  It&#xA;may have been some code that could have been better.  I try to point these&#xA;things out.  Often when I am and point out where I know there is&#xA;improvement to be had I get the most welcoming comments, “that was just fine&#xA;how you did that”, or “I tried that myself and saw a better abstraction.&lt;/p&gt;&#xA;&lt;h2 id=&#34;create-the-articles-i-want-to-read&#34;&gt;Create the articles I want to read &lt;a href=&#34;#create-the-articles-i-want-to-read&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Generally the articles I want to read are directly relatable to things I am&#xA;currently working on and vary over time.  Over the last year its been leaning a&#xA;bit more towards automation with&#xA;&lt;a href=&#34;https://waylonwalker.com/linux/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;bash&lt;/a&gt;,&#xA;&lt;a href=&#34;https://waylonwalker.com/python/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;python&lt;/a&gt;,&#xA;&lt;a href=&#34;https://waylonwalker.com/kedro/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;kedro&lt;/a&gt; tools.&lt;/p&gt;&#xA;&lt;h2 id=&#34;on-brand&#34;&gt;On Brand &lt;a href=&#34;#on-brand&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I try to stay on brand to who I am.  I remember writing my first articles.  I&#xA;was trying to be whitty, and include funny memes.  Thats not me.  I am not a&#xA;commedian, and generally memes go right over my head.  I can remember back in&#xA;High School, I was the one that didn’t understand a lot of pop culture and was&#xA;kinda treated as if I was always living under a rock.  I knew it was true and I&#xA;owned it, so no one ever got too mean about it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;honest-never-fake&#34;&gt;Honest, never fake &lt;a href=&#34;#honest-never-fake&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I will not try to pretend that I know everything.  You may read my blog on&#xA;occasion and think I know a lot, also possible that you think “wow what an&#xA;idiot”.  I welcome you to share your thoughts and techniques in a positive way.&#xA;I often cringe at some of my old posts and think about how differently I would&#xA;approach something not that long after posting.  I honest, never fake know what&#xA;I need to know and don’t pretend to know anything outside of my wheelhouse.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Markdown Cli</title>
    <id>https://go.waylonwalker.com/markdown-cli/</id>
    <updated>2021-01-20T00:00:00Z</updated>
    <published>2021-01-20T00:00:00Z</published>
    <link href="https://go.waylonwalker.com/markdown-cli/" rel="alternate" type="text/html"></link>
    <summary type="text">This is a post that may be a work in progress for awhile, Its a collections of thoughts on managing my blog, but could be translated into anythiung that is...</summary>
    <content type="html">&lt;p&gt;This is a post that may be a work in progress for awhile, Its a collections of&#xA;thoughts on managing my blog, but could be translated into anythiung that is&#xA;just a collection of markdown.&lt;/p&gt;&#xA;&lt;h2 id=&#34;listing-things&#34;&gt;Listing things &lt;a href=&#34;#listing-things&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;posts&lt;/li&gt;&#xA;&lt;li&gt;tags&lt;/li&gt;&#xA;&lt;li&gt;draft posts&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;data&#34;&gt;data &lt;a href=&#34;#data&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;frontmatter&lt;/li&gt;&#xA;&lt;li&gt;filepath&lt;/li&gt;&#xA;&lt;li&gt;content&lt;/li&gt;&#xA;&lt;li&gt;template&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/html/&#34; class=&#34;glossary-term&#34; title=&#34;HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...&#34;&gt;html&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;render-content&#34;&gt;render content &lt;a href=&#34;#render-content&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Markdown.Markdown&lt;/li&gt;&#xA;&lt;li&gt;support extentsions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;frontmatter-cleaning&#34;&gt;frontmatter cleaning. &lt;a href=&#34;#frontmatter-cleaning&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;provide ways to hook in or clean up the frontmatter&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;markatamarkata-methods&#34;&gt;Markata.Markata methods &lt;a href=&#34;#markatamarkata-methods&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;load&lt;/li&gt;&#xA;&lt;li&gt;render&lt;/li&gt;&#xA;&lt;li&gt;save&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;markatapost-methods&#34;&gt;Markata.Post methods &lt;a href=&#34;#markatapost-methods&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;load&lt;/li&gt;&#xA;&lt;li&gt;render&lt;/li&gt;&#xA;&lt;li&gt;save&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;markata-plugins&#34;&gt;Markata plugins &lt;a href=&#34;#markata-plugins&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;before_load&lt;/li&gt;&#xA;&lt;li&gt;before_post_load&lt;/li&gt;&#xA;&lt;li&gt;after_load&lt;/li&gt;&#xA;&lt;li&gt;after_post_load&lt;/li&gt;&#xA;&lt;li&gt;before_save&lt;/li&gt;&#xA;&lt;li&gt;before_post_save&lt;/li&gt;&#xA;&lt;li&gt;after_save&lt;/li&gt;&#xA;&lt;li&gt;after_post_save&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;markata-plugins-1&#34;&gt;Markata plugins &lt;a href=&#34;#markata-plugins-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;cleanse_frontmatter&lt;/li&gt;&#xA;&lt;li&gt;html_feed&lt;/li&gt;&#xA;&lt;li&gt;json_feed&lt;/li&gt;&#xA;&lt;li&gt;rss_feed&lt;/li&gt;&#xA;&lt;li&gt;save_posts&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;cli&#34;&gt;CLI &lt;a href=&#34;#cli&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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 list tags&#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;python&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;data&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&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&#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;o&#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;o&#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;title&amp;#34;&lt;/span&gt;: &lt;span class=&#34;s2&#34;&gt;&amp;#34;post title&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;s2&#34;&gt;&amp;#34;description&amp;#34;&lt;/span&gt;: &lt;span class=&#34;s2&#34;&gt;&amp;#34;this is a post&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;s2&#34;&gt;&amp;#34;filepath&amp;#34;&lt;/span&gt;: &lt;span class=&#34;s2&#34;&gt;&amp;#34;path_to.md&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;s2&#34;&gt;&amp;#34;content&amp;#34;&lt;/span&gt;: &lt;span class=&#34;s2&#34;&gt;&amp;#34;the content of the post&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;s2&#34;&gt;&amp;#34;html&amp;#34;&lt;/span&gt;: &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;lt;p&amp;gt;the content of the post&amp;lt;/p&amp;gt;&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;o&#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;    ...&#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;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>My Content Strategy For 2021</title>
    <id>https://go.waylonwalker.com/2021-content-strategy/</id>
    <updated>2021-01-19T00:00:00Z</updated>
    <published>2021-01-19T00:00:00Z</published>
    <link href="https://go.waylonwalker.com/2021-content-strategy/" rel="alternate" type="text/html"></link>
    <summary type="text">I am making another push in 2021 to get my content out in the world and meeting users where they are. See how I plan to execute.</summary>
    <content type="html">&lt;p&gt;I am making another push in 2021 to get my content out in the world and meeting users where they are. See how I plan to execute.&lt;/p&gt;&#xA;&lt;h2 id=&#34;platforms&#34;&gt;Platforms &lt;a href=&#34;#platforms&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;waylonwalker.com&lt;/li&gt;&#xA;&lt;li&gt;Twitter&lt;/li&gt;&#xA;&lt;li&gt;DEV&lt;/li&gt;&#xA;&lt;li&gt;hashnode&lt;/li&gt;&#xA;&lt;li&gt;Medium&lt;/li&gt;&#xA;&lt;li&gt;LinkedIn&lt;/li&gt;&#xA;&lt;li&gt;Anchor&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;markdown&#34;&gt;Markdown &lt;a href=&#34;#markdown&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;My content is written in markdown, all markdown. I find that markdown does a really great job at getting out of the way and letting ideas flow onto the page. I am never fussing with fonts and formatting while physically writing posts. Not that I don’t spend way more time than I need to tweak these things on my own personal site where everything gets posted.&lt;/p&gt;&#xA;&lt;h2 id=&#34;articles&#34;&gt;Articles &lt;a href=&#34;#articles&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Much of what I create is inside of short articles that get posted to my personal site &lt;a href=&#34;https://waylonwalker.com&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;waylonwalker.com&lt;/a&gt;. These will get cross-posted to &lt;a href=&#34;https://dev.to/waylonwalker&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/dev.to.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/dev.to.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;DEV&lt;/a&gt;,&#xA;&lt;a href=&#34;https://h.waylonwalker.com/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/h.waylonwalker.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/h.waylonwalker.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;hashnode&lt;/a&gt;, &lt;a href=&#34;https://waylonwalker.medium.com/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.medium.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.medium.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Medium&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I have made cross-posting a bit easier for myself by posting the markdown for each article next to the post on my personal site. Add .md to any post and there is the source.&lt;/p&gt;&#xA;&lt;p&gt;Should I be giving my articles to Medium?? Personally, I am not a fan of the bait and switch that they did with adding a paywall years after launch. From what I can tell authors are not getting paid much from it, users are discouraged when they are blocked, and they really only promote articles that are behind the paywall.&lt;/p&gt;&#xA;&lt;p&gt;In the end, I am a fan of meeting users where they are, if they like Medium I don’t want them to miss my content.&lt;/p&gt;&#xA;&lt;h2 id=&#34;more-catalytic&#34;&gt;More Catalytic &lt;a href=&#34;#more-catalytic&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;soft skills&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;My articles are very code-heavy, I do want to transition over to some more evergreen type of posts that are long-lasting. I want to create some more content around how to be a good developer, data scientist, engineer, whatever you call yourself.&lt;/p&gt;&#xA;&lt;p&gt;Personally, this is some of the content I enjoy consuming, but for some reason is not something I tend to create.&lt;/p&gt;&#xA;&lt;h2 id=&#34;slides&#34;&gt;Slides &lt;a href=&#34;#slides&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I am really enjoying the slide output of my articles on&#xA;&lt;a href=&#34;https://www.linkedin.com/in/waylonwalker/detail/recent-activity/shares/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.linkedin.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.linkedin.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;LinkedIn&lt;/a&gt;. It makes for something that is unique and easy to digest. I have a pandoc script that takes in the markdown from my posts and kicks out a set of slides, so it’s quick and easy to do. Not every post works well this way by many have so&#xA;far.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://images.waylonwalker.com/linkedin-activity-slides.gif&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/linkedin-activity-slides.gif&#34; alt=&#34;my linked in slide&#xA;activity&#34;/ data-glightbox=&#34;description: my linked in slide&#xA;activity&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;threads&#34;&gt;Threads &lt;a href=&#34;#threads&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;With less success (shares, views, likes) I have been converting articles over to Twitter threads as they are released, again not every article works well this way, but many do.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://twitter.com/_WaylonWalker/status/1349716127887347717&#34; class=&#34;hoverlink&#34;&gt;https://twitter.com/_WaylonWalker/status/1349716127887347717&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;simplicity&#34;&gt;Simplicity &lt;a href=&#34;#simplicity&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;just write markdown&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;In the end, everything needs to be simple and build off of the original markdown post. Automation should be in a place where it makes sense. I am no longer manually creating cover art or article descriptions, those are scripted out of the article itself.&lt;/p&gt;&#xA;&lt;p&gt;I have come cli tooling in place to simplify my process. Expect more of that to come.&lt;/p&gt;&#xA;&lt;h2 id=&#34;audio&#34;&gt;Audio &lt;a href=&#34;#audio&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I have set up a podcast where I read out my posts, but the time that I have available to read them is very constraining to the process. It may be something that I figure out how to work out or something that I drop. It’s something that I think would be really nice, but still trying to figure out how to do it.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://waylonwalker.com/audio-for-blog/&#34; class=&#34;hoverlink  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34;&gt;https://waylonwalker.com/audio-for-blog/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I personally really like this as I often find a cool blog article that I want to read, but it’s time to cook dinner or drive somewhere. Articles with audio make it super convenient to consume while doing a task requiring eye contact.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr&#34;&gt;TLDR &lt;a href=&#34;#tldr&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Meet Users Where They are.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Blog Data With Python</title>
    <id>https://go.waylonwalker.com/blog-data-with-python/</id>
    <updated>2021-01-18T00:00:00Z</updated>
    <published>2021-01-18T00:00:00Z</published>
    <link href="https://go.waylonwalker.com/blog-data-with-python/" rel="alternate" type="text/html"></link>
    <summary type="text">Generating an api for a blog is much simpler than one might expect with python.</summary>
    <content type="html">&lt;p&gt;Generating an api for a blog is much simpler than one might expect with python.&lt;/p&gt;&#xA;&lt;h2 id=&#34;markdown&#34;&gt;Markdown &lt;a href=&#34;#markdown&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;frontmatter&#34;&gt;Frontmatter &lt;a href=&#34;#frontmatter&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;fill-in-the-blanks&#34;&gt;Fill in the blanks &lt;a href=&#34;#fill-in-the-blanks&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;fix missing data&lt;/p&gt;&#xA;&lt;h2 id=&#34;fast&#34;&gt;Fast &lt;a href=&#34;#fast&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Automating my Post Starter</title>
    <id>https://go.waylonwalker.com/automating-my-post-starter/</id>
    <updated>2020-12-11T09:08:00Z</updated>
    <published>2020-12-11T09:08:00Z</published>
    <link href="https://go.waylonwalker.com/automating-my-post-starter/" rel="alternate" type="text/html"></link>
    <summary type="text">One thing we all dread is mundane work of getting started, and all the hoops it takes to get going. This year I want to post more often and I am taking some...</summary>
    <content type="html">&lt;p&gt;One thing we all dread is mundane work of getting started, and all the hoops it&#xA;takes to get going. This year I want to post more often and I am taking some&#xA;steps towards making it easier for myself to just get started.&lt;/p&gt;&#xA;&lt;p&gt;When I start a new post I need to cd into my blog directory, start neovim in a&#xA;markdown file with a clever name, copy some frontmatter boilerplate, update the&#xA;post date, add tags, a description, and a cover.&lt;/p&gt;&#xA;&lt;h2 id=&#34;todo-list-for-starting-a-post&#34;&gt;Todo List for starting a post &lt;a href=&#34;#todo-list-for-starting-a-post&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;frontmatter template&lt;/li&gt;&#xA;&lt;li&gt;Title&lt;/li&gt;&#xA;&lt;li&gt;slug&lt;/li&gt;&#xA;&lt;li&gt;tags&lt;/li&gt;&#xA;&lt;li&gt;date&lt;/li&gt;&#xA;&lt;li&gt;cover&lt;/li&gt;&#xA;&lt;li&gt;description&lt;/li&gt;&#xA;&lt;li&gt;create markdown file&lt;/li&gt;&#xA;&lt;li&gt;open in neovim&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;lets-automate-this&#34;&gt;Lets Automate this &lt;a href=&#34;#lets-automate-this&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;this-aint-no-proper-cli&#34;&gt;This aint no proper cli &lt;a href=&#34;#this-aint-no-proper-cli&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;em&gt;hot and fast&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;As with many thing running behind the scenes on this site, I am the one and&#xA;only user, I have limited time, so this is going to be a bit &lt;strong&gt;hot and fast&lt;/strong&gt;.&#xA;Let’s create a file called new-post.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;small&gt;&lt;mark&gt;start the script new-post&lt;/mark&gt;&lt;/small&gt;&lt;/em&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;ch&#34;&gt;#!python&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;# new-post&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;👆 Works on my machine&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;If this were something that had more users than me I would probably use&#xA;something like click, but for this I want to get it done quick and avoid any&#xA;need to manage dependencies. Be careful if you were to share something with a&#xA;&lt;code&gt;#!python&lt;/code&gt; as it requries the end user to have the right version of python&#xA;ready to go.&lt;/p&gt;&#xA;&lt;h3 id=&#34;title&#34;&gt;Title &lt;a href=&#34;#title&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;The title can’t really be automated this is the core idea coming out of my 🧠,&#xA;but it will be captured through the cli and put into proper position. For this&#xA;I’m going super simple and just pulling it out of &lt;code&gt;sys.argv&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;small&gt;&lt;mark&gt;set the title&lt;/mark&gt;&lt;/small&gt;&lt;/em&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;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;sys&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;n&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;argv&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&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;n&#34;&gt;title&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;blockquote&gt;&#xA;&lt;p&gt;! sys.argv is a list of each argument passed into the script split by spaces.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;slug&#34;&gt;slug &lt;a href=&#34;#slug&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;The slug is what I am calling the route and can simply come out of the title&#xA;automatically, if I want to shorten it later by hand that will be simple enough&#xA;to do manually. All that needs to be done is to lowercase and replace a few&#xA;characters with -.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;small&gt;&lt;mark&gt;set the slug&lt;/mark&gt;&lt;/small&gt;&lt;/em&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;n&#34;&gt;slug&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lower&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;n&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#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;s2&#34;&gt;&amp;#34;-&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#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;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;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;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;tags&#34;&gt;tags &lt;a href=&#34;#tags&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;For tags I decided I wanted the parser to be as simple as possible and didn’t&#xA;want to dance around any flags. I am simply just going to look at every&#xA;argument passed into the command and see if any of them contain one of my&#xA;common tags.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;small&gt;&lt;mark&gt;parse the tags&lt;/mark&gt;&lt;/small&gt;&lt;/em&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;n&#34;&gt;args&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;argv&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&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;tags&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;&#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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;py&amp;#39;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&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;tags&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;python&amp;#39;&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;&#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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;web&amp;#39;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&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;tags&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;webdev&amp;#39;&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;&#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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;blog&amp;#39;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&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;tags&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;blog&amp;#39;&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;&#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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;data&amp;#39;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&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;tags&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;data&amp;#39;&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;strong&gt;antipattern&lt;/strong&gt;?? The above section does an initialize then modify. I generally try to avoid this&#xA;pattern with something like a list comprehension, but didn’t see an obvious&#xA;solution so I just went with it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;frontmatter-template&#34;&gt;Frontmatter Template &lt;a href=&#34;#frontmatter-template&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Now we have enough information going to assemble the frontmatter I use for my&#xA;posts. I am going to just insert the values I need into an f-string. Since&#xA;python 3.6 was released f-strings are my go to templating tool.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;small&gt;&lt;mark&gt;create the markdown&lt;/mark&gt;&lt;/small&gt;&lt;/em&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;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;datetime&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;n&#34;&gt;frontmatter&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;---&#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;s2&#34;&gt;templateKey: blog-post&#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;s2&#34;&gt;tags: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tags&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#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;s2&#34;&gt;title: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#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;s2&#34;&gt;date: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;today&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;n&#34;&gt;strftime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;%Y-%m-&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%d&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;T%H:%M:%S&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#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;s2&#34;&gt;published: false&#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;s2&#34;&gt;description: &amp;#39;&amp;#39;&#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;s2&#34;&gt;cover: &amp;#34;/static/&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;slug&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;.png&amp;#34;&#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;s2&#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;s2&#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;s2&#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;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;create-markdown-file&#34;&gt;create markdown file &lt;a href=&#34;#create-markdown-file&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Now its time to get down to business and make the post. First I want to throw&#xA;an error if the post already exists, I definitely dont want to blow away an&#xA;existing post if a certain slug is already taken. I am a big fan of custom&#xA;error messages and I am going to go ahead and make one here, even though this&#xA;is just a quick script.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;small&gt;&lt;mark&gt;custom error&lt;/mark&gt;&lt;/small&gt;&lt;/em&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;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;PostExistsError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;ne&#34;&gt;FileExistsError&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;k&#34;&gt;pass&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I am a &lt;code&gt;pathlib&lt;/code&gt; superfan. It’s going to make setting up these paths super&#xA;simple. Note I am going to anchor my directory down with the &lt;code&gt;__file__&lt;/code&gt;&#xA;variable. I do this all the time to get paths relative to the module that is&#xA;currently running.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;small&gt;&lt;mark&gt;setup paths&lt;/mark&gt;&lt;/small&gt;&lt;/em&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;n&#34;&gt;directory&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pathlib&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;vm&#34;&gt;__file__&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;n&#34;&gt;parent&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;path&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pathlib&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;directory&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;/src/pages/blog/&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;slug&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;.md&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;&#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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exists&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;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PostExistsError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Post Already exists at &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&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;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;file&lt;/strong&gt; is a string that represents the path to the running module&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Finally just write the file. Here we open the file with a context manager so&#xA;that we don’t have to worry about closing it when we are done. Note that we&#xA;open it with the &lt;code&gt;w+&lt;/code&gt; flag for write and creation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;small&gt;&lt;mark&gt;write the file&lt;/mark&gt;&lt;/small&gt;&lt;/em&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;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#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;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;f&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;f&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;write&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;frontmatter&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;&lt;a href=&#34;/glossary/git/&#34; class=&#34;glossary-term&#34; title=&#34;Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...&#34;&gt;git&lt;/a&gt;-add&#34;&gt;git add &lt;a href=&#34;#git-add&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;I am not quite ready to pull the trigger on doing an auto commit, but this may&#xA;happen in a future version. For now I want this file easily picked up by vims&#xA;&lt;code&gt;:GFiles&lt;/code&gt; since I have that is one of my most used hot keys. To do this the&#xA;file at least needs added. I’m sure there is a better way to do this with a&#xA;Git library, but I am used to the command line so I am going to just run a&#xA;subprocess.&lt;/p&gt;&#xA;&lt;p&gt;I am using the &lt;code&gt;subprocess.Popen&lt;/code&gt; command since its what I am used to, note&#xA;that it will run the task in the background so be sure that you wait on it.&#xA;The &lt;code&gt;Popen&lt;/code&gt; is great if you have several task that are not dependent on each&#xA;other.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;small&gt;&lt;mark&gt;git add &lt;new-post&gt;&lt;/new-post&gt;&lt;/mark&gt;&lt;/small&gt;&lt;/em&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;n&#34;&gt;gadd&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subprocess&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Popen&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;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;cd &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;directory&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt; &amp;amp;&amp;amp; git add &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&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;n&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;directory&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;s2&#34;&gt;&amp;#34;/&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#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;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt; &amp;#39;&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;shell&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;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;gadd&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;wait&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;open-in-neovim&#34;&gt;open in neovim &lt;a href=&#34;#open-in-neovim&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Last step of the script is to start writing, I want to be open in my blogs&#xA;directory (hence the cd), with the file open, to the right line (+11), and in&#xA;insert mode (+star).&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;small&gt;&lt;mark&gt;open post in neovim&lt;/mark&gt;&lt;/small&gt;&lt;/em&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;n&#34;&gt;nvim&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subprocess&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Popen&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;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;cd &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;directory&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt; &amp;amp;&amp;amp; nvim +12 +star &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&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;n&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;directory&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;s2&#34;&gt;&amp;#34;/&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#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;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt; &amp;#39;&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;shell&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;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;nvim&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;wait&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;h2 id=&#34;alias&#34;&gt;Alias &lt;a href=&#34;#alias&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Now I want this script to be available everywhere. I am going to simply add&#xA;the following entry to shorten the script and eliminate the need to use the&#xA;full path. I added this to my &lt;code&gt;~/.alias&lt;/code&gt;, for you it may be &lt;code&gt;~/.bashrc&lt;/code&gt;, or&#xA;&lt;code&gt;~/.zshrc&lt;/code&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;nb&#34;&gt;alias&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;np&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;~/git/waylonwalkerv2/new-post&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;starting-a-new-post&#34;&gt;Starting a new post &lt;a href=&#34;#starting-a-new-post&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Lets start a new post about automating my posts in python.&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;np &lt;span class=&#34;s2&#34;&gt;&amp;#34;automating my posts&amp;#34;&lt;/span&gt; python&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;this-is-my-workflow&#34;&gt;This is my workflow &lt;a href=&#34;#this-is-my-workflow&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Ad hoc scripts like this can be a bit of a hot mess, partly due to the just get&#xA;it done nature, but also due to the fact that I am just riffing off the top of&#xA;my head and utilizing docs as least as possible.&lt;/p&gt;&#xA;&lt;p&gt;While writing the script I would run it after each section or so and print some&#xA;results to make sure they were looking good. If I ever needed access to a live&#xA;variable I would pop open ipython and run &lt;code&gt;%run new-post &amp;#34;my-new-post&amp;#34;&lt;/code&gt; and&#xA;inspecting it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;final-script&#34;&gt;Final Script &lt;a href=&#34;#final-script&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;small&gt;&lt;mark&gt;final script&lt;/mark&gt;&lt;/small&gt;&lt;/em&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;ch&#34;&gt;#!python&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;# new-post&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;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;sys&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;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;datetime&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;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;pathlib&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;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;subprocess&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;&#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;title&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;argv&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&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;n&#34;&gt;titlecase&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;args&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;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;argv&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&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;tags&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;&#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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;py&amp;#34;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&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;tags&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;python&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;&#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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;web&amp;#34;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&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;tags&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;webdev&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;&#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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;blog&amp;#34;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&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;tags&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&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;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;&#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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;data&amp;#34;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&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;tags&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;data&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;&#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;slug&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lower&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;n&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#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;s2&#34;&gt;&amp;#34;-&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;n&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#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;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;frontmatter&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&amp;#34;---&#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;s2&#34;&gt;templateKey: blog-post&#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;s2&#34;&gt;tags: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tags&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#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;s2&#34;&gt;title: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#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;s2&#34;&gt;date: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;datetime&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;today&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;n&#34;&gt;strftime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;%Y-%m-&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%d&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;T%H:%M:%S&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#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;s2&#34;&gt;published: false&#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;s2&#34;&gt;description: &amp;#39;&amp;#39;&#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;s2&#34;&gt;cover: &amp;#34;/static/&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;slug&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;.png&amp;#34;&#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;s2&#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;s2&#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;s2&#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;s2&#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;s2&#34;&gt;&amp;#34;&amp;#34;&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;&#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;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;PostExistsError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;ne&#34;&gt;FileExistsError&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;k&#34;&gt;pass&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;&#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;directory&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pathlib&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;vm&#34;&gt;__file__&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;n&#34;&gt;parent&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;path&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pathlib&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;directory&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;/src/pages/blog/&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;slug&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;.md&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;&#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;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exists&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;k&#34;&gt;raise&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PostExistsError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Post Already exists at &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&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;&#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;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#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;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;f&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;f&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;write&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;frontmatter&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;&#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;gadd&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subprocess&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Popen&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;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;cd &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;directory&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt; &amp;amp;&amp;amp; git add &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&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;n&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;directory&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;s2&#34;&gt;&amp;#34;/&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#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;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt; &amp;#39;&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;shell&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;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;gadd&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;wait&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;&#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;nvim&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subprocess&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Popen&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;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;cd &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;directory&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt; &amp;amp;&amp;amp; nvim +12 +star &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&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;n&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;directory&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;s2&#34;&gt;&amp;#34;/&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#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;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt; &amp;#39;&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;shell&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;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;nvim&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;wait&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;a href=&#34;https://waylonwalker.com/quickly-edit-posts/&#34; class=&#34;hoverlink  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34;&gt;https://waylonwalker.com/quickly-edit-posts/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;check out the next article in this series where I setup a bash function to quickly edit these posts&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Adding Audio to my blog posts</title>
    <id>https://go.waylonwalker.com/audio-for-blog/</id>
    <updated>2020-11-25T20:52:22Z</updated>
    <published>2020-11-25T20:52:22Z</published>
    <link href="https://go.waylonwalker.com/audio-for-blog/" rel="alternate" type="text/html"></link>
    <content type="html">&lt;iframe src=&#34;https://anchor.fm/waylon-walker/embed/episodes/Launching-Audio-for-the-Blog-en6kof&#34; height=&#34;102px&#34; width=&#34;400px&#34; frameborder=&#34;0&#34; scrolling=&#34;no&#34;&gt;&lt;/iframe&gt;&#xA;&lt;p&gt;This is episode 1 of the Waylon Walker Audio experience, posts from&#xA;&lt;a href=&#34;https://waylonwalker.com&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;waylonwalker.com&lt;/a&gt;{.hoverlink} in audio form.&lt;/p&gt;&#xA;&lt;p&gt;So I have had this idea for awhile to add audio to my blog posts.  The idea&#xA;partly comes from the aws blog, if you have ever been on their blog you will&#xA;have noticed that they have a &lt;em&gt;voiced by amazon polly&lt;/em&gt; section.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-to-expect&#34;&gt;What to Expect &lt;a href=&#34;#what-to-expect&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Honestly I don’t know this is all new to me and I dont have much to go off of.&#xA;For now its a test that may or may not work out.&lt;/p&gt;&#xA;&lt;p&gt;I will say that the time that I have available for clean audio is a bit limited&#xA;so expect these to come out in batches as I get time to go back and record.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-not-to-expect&#34;&gt;What Not to Expect &lt;a href=&#34;#what-not-to-expect&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;One thing that makes the aws blog really hard to listen to is the robotic&#xA;voice, I definitely don’t want that.  This will be voiced by a real human, Me.&#xA;At the same time written text doesn’t translate directly to audio well so don’t&#xA;necessarily expect the audio to be&#xA;word for word.&lt;/p&gt;&#xA;&lt;h2 id=&#34;code-blocks&#34;&gt;Code blocks &lt;a href=&#34;#code-blocks&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;There are a lot of code blocks in my blog, which don’t translate directly into&#xA;I will do my best to read short one liners or describe larger blocks, but don’t&#xA;expect a boring three minute read of large code blocks.&lt;/p&gt;&#xA;&lt;h2 id=&#34;updates&#34;&gt;Updates &lt;a href=&#34;#updates&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Expect to see these at the top of finished posts once I consider them done.  I&#xA;will not likely come back to edit the audio if there is an edit to the post&#xA;unless its major.  I will do my best to highlight changes in a note next to the&#xA;embeded audio on the post.&lt;/p&gt;&#xA;&lt;h2 id=&#34;lets-do-this&#34;&gt;Lets do this &lt;a href=&#34;#lets-do-this&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;If you like this idea give the posts a listen, share them with your friends,&#xA;give me a shout out on twitter&#xA;&lt;a href=&#34;https://twitter.com/_WaylonWalker&#34;&gt;@_waylonwalker&lt;/a&gt;{.hoverlink}.&lt;/p&gt;&#xA;&lt;hr/&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/crush-dev-to-posts/&#34; class=&#34;wikilink&#34; data-title=&#34;How to crush amazing posts on DEV&#34; data-description=&#34;Here are a few of my top tips to help make dev.to posts more readable, and drive better engagement.&#34; data-date=&#34;2020-08-07&#34; data-preview=&#34;Here are a few of my top tips to help make dev.to posts more readable, and drive better engagement.&#34;&gt;How to crush amazing posts on DEV&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;If you enjoyed this post you may enjoy another “meta” post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Expand One Line Links</title>
    <id>https://go.waylonwalker.com/expand-one-line-links/</id>
    <updated>2020-11-18T05:00:00Z</updated>
    <published>2020-11-18T05:00:00Z</published>
    <link href="https://go.waylonwalker.com/expand-one-line-links/" rel="alternate" type="text/html"></link>
    <summary type="text">I wanted a super simple way to cross-link blog posts that require as little effort as possible, yet still looks good in vanilla markdown in GitHub. I have...</summary>
    <content type="html">&lt;p&gt;I wanted a super simple way to cross-link blog posts that require as little effort as possible, yet still looks good in vanilla markdown in GitHub.  I have been using a snippet that puts &lt;a href=&#34;/html/&#34; class=&#34;glossary-term&#34; title=&#34;HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...&#34;&gt;HTML&lt;/a&gt; into the markdown.  While this works, it’s more manual/difficult for me does not look the best, and does not read well as&lt;/p&gt;&#xA;&lt;h2 id=&#34;goals-for-new-card&#34;&gt;Goals for new card &lt;a href=&#34;#goals-for-new-card&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The new card should be fully automated to expand with title, description, and&#xA;cover image.  Bonus if I am able to attach a comment behind it.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;fully automated&lt;/li&gt;&#xA;&lt;li&gt;card expansion&lt;/li&gt;&#xA;&lt;li&gt;Title&lt;/li&gt;&#xA;&lt;li&gt;description&lt;/li&gt;&#xA;&lt;li&gt;cover image&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;old-card&#34;&gt;Old Card &lt;a href=&#34;#old-card&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;If you can call it a card 🤣.  This card was just an image wrapped in an anchor tag and a paragraph tag.  I found this was the most consistent way to get an image narrower and centered in both GitHub and dev.to.&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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;p&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;style&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;text-align: center&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;a&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;href&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;https://waylonwalker.com/notes/eight-years-cat/&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;img&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;na&#34;&gt;style&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;width:500px; max-width:80%; margin: auto;&amp;#39;&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;na&#34;&gt;src&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;https://images.waylonwalker.com/eight-years-cat.png&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;na&#34;&gt;alt&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;My first eight years as a working professional article&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;p&#34;&gt;/&amp;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;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style=&#34;text-align: center&#34;&gt;&#xA;  &lt;a href=&#34;https://waylonwalker.com/notes/eight-years-cat&#34;&gt;&#xA;    &lt;img class=&#34;glightbox&#34; style=&#34;width:500px; max-width:80%; margin: auto;&#34; src=&#34;https://images.waylonwalker.com/eight-years-cat.png&#34; alt=&#34;My first eight years as a working professional article&#34;/ data-glightbox=&#34;description: My first eight years as a working professional article&#34;&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;The key here is that I have to put the HTML into the markdown.  It looks a bit dirty while editing and quite frankly it’s a pain to deal with.&lt;/p&gt;&#xA;&lt;hr/&gt;&#xA;&lt;h2 id=&#34;new-card&#34;&gt;New Card &lt;a href=&#34;#new-card&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;a class=&amp;#34;onelinelink&amp;#34; href=&amp;#34;https://waylonwalker.com/eight-years-cat/&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;img style=&amp;#34;float: right;&amp;#34; align=&amp;#39;right&amp;#39; src=&amp;#34;https://images.waylonwalker.com/29cdf6fcfb17d7fd766fc438144fb3e4/630fb/eight-years-cat-xmas2020.png&amp;#34; alt=&amp;#34;article cover for My first eight years as a working professional.&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;div class=&amp;#34;right&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;h2&amp;gt;My first eight years as a working professional.&amp;lt;/h2&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;p class=&amp;#34;description&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    This day 8 years ago I started my first day as a Mechanical Engineer. I am so grateful for this journey that I have been able to have. There is no way that I could have planned this journey from the beginning.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;/p&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;p class=&amp;#34;url&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;span class=&amp;#34;read-more&amp;#34;&amp;gt;read more&amp;lt;/span&amp;gt;  waylonwalker.com&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;/p&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;/div&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;/a&amp;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;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;/eight-years-cat/&#34; class=&#34;wikilink&#34; data-title=&#34;My first eight years as a working professional.&#34; data-description=&#34;This day 8 years ago I started my first day as a Mechanical Engineer. I am so grateful for this journey that I have been able to have. There is no way that I...&#34; data-date=&#34;2020-06-19&#34; data-preview=&#34;This day 8 years ago I started my first day as a Mechanical Engineer. I am so grateful for this journey that I have been able to have. There is no way that I...&#34;&gt;My first eight years as a working professional.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;first-step&#34;&gt;First step &lt;a href=&#34;#first-step&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;My first attempt was to make my own transformer for &lt;code&gt;gatsby-remark-embedder&lt;/code&gt;. I previously set this up on my site for Twitter and YouTube.  I tried to get some custom transformers going, to do what I wanted for my own website, but failed.  I really struggled to understand what data was coming in and out of the transformer.  My lack of js/node debugging skills was really showing.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/gatsby-remark-embedder/&#34; class=&#34;wikilink&#34; data-title=&#34;gatsby-remark-embedder&#34; data-description=&#34;Inspired by discourse&amp;#39;s link expansion I am rolling out expansions for one line links on the blog&#34; data-date=&#34;2020-11-18&#34; data-preview=&#34;Inspired by discourse&amp;#39;s link expansion I am rolling out expansions for one line links on the blog&#34;&gt;gatsby-remark-embedder&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;using gatsby-remark-embedder to expand Twitter/YouTube&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;redirects&#34;&gt;Redirects &lt;a href=&#34;#redirects&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;It also works with redirects. I have a redirect to my “latest” post.  It’s something that I don’t do the best job at keeping up to date, but when I feel really proud of a post I make it the latest.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/latest/&#34; class=&#34;wikilink&#34; data-title=&#34;latest&#34; data-description=&#34;My latest blog post is . Click the link if you are not automatically redirected.&#34; data-date=&#34;2024-06-01&#34; data-preview=&#34;My latest blog post is . Click the link if you are not automatically redirected.&#34;&gt;latest&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;this post is a redirect to my “latest post”&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;client-side&#34;&gt;Client Side &lt;a href=&#34;#client-side&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I started out by running this card expansion client side. This was the strategy that I used to find the list of elements that should be transformed.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;get all anchors&lt;/li&gt;&#xA;&lt;li&gt;get all paragraphs&lt;/li&gt;&#xA;&lt;li&gt;filter paragraphs where the content is one of the links&lt;/li&gt;&#xA;&lt;li&gt;filter paragraphs where there is only one element in the paragraph&lt;/li&gt;&#xA;&lt;li&gt;filter to paragraphs with links that &lt;code&gt;shouldTransform&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;These elements should have the &lt;code&gt;oneLineLinkCard&lt;/code&gt; applied.&lt;/li&gt;&#xA;&lt;/ul&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;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;oneLineLinks&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;p&#34;&gt;=&amp;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;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;linkText&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;nb&#34;&gt;document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;querySelectorAll&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;.post-body p a&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)].&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;map&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;nx&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;innerText&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;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;paragraphs&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;querySelectorAll&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;.post-body p&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;c1&#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;c1&#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;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;regex&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;sr&#34;&gt;/^https?:\/\/waylonwalker\.com\//&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;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;shouldTransform&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;nx&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;regex&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;test&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;url&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;&#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;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;anchorOnly&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;nx&#34;&gt;paragraphs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;].&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;filter&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;nx&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;linkText&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;includes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;innerText&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;childElementCount&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;===&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&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;&#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;anchorOnly&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;filter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;shouldTransform&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;firstElementChild&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;href&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;nx&#34;&gt;map&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;kr&#34;&gt;async&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;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;nx&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;outerHTML&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;oneLineLinkCard&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;firstElementChild&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;href&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;h2 id=&#34;styles&#34;&gt;Styles &lt;a href=&#34;#styles&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;CSS is not my strong suit, but I can generally hammer something into a shape that I am happy with.  For this one, I did struggle a bit with how it looked on various screens, particularly because I was holding the cover image size to a hard 300px.  I ended up with more media queries than I needed, but it works.&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;nc&#34;&gt;onelinelink&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;blockquote&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;k&#34;&gt;position&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;relative&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;k&#34;&gt;left&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;kt&#34;&gt;rem&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;k&#34;&gt;background&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;rgba&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; &lt;span class=&#34;mi&#34;&gt;0&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; &lt;span class=&#34;mf&#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;k&#34;&gt;margin&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;-6&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;rem&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;auto&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;rem&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;k&#34;&gt;padding-top&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;rem&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;k&#34;&gt;border&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;solid&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;goldenrod&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;k&#34;&gt;border-top&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;kt&#34;&gt;px&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;solid&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;goldenrod&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;&#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;k&#34;&gt;max-width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;300&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&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;err&#34;&gt;@media&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;max-width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;350&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;err&#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;kc&#34;&gt;left&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;rem&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;k&#34;&gt;margin-left&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;.4&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;rem&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;k&#34;&gt;margin-right&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;.4&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;rem&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;&lt;span class=&#34;k&#34;&gt;media&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;min-width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;800px&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;nt&#34;&gt;max-width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;600px&lt;/span&gt;&lt;span class=&#34;o&#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;&lt;span class=&#34;k&#34;&gt;media&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;min-width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;900px&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;nt&#34;&gt;max-width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;700px&lt;/span&gt;&lt;span class=&#34;o&#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;&lt;span class=&#34;k&#34;&gt;media&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;min-width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;1000px&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;nt&#34;&gt;max-width&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;800px&lt;/span&gt;&lt;span class=&#34;o&#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;border-radius&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;15px&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;45px&lt;/span&gt;&lt;span class=&#34;o&#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;display&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;block&lt;/span&gt;&lt;span class=&#34;o&#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;err&#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;&#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;err&#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;&#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;nc&#34;&gt;onelinelink&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;k&#34;&gt;position&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;relative&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;k&#34;&gt;z-index&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;k&#34;&gt;margin&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;rem&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;k&#34;&gt;overflow&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;hidden&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;k&#34;&gt;display&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;flex&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;k&#34;&gt;border&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;kt&#34;&gt;px&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;solid&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;255&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; &lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;.1&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;k&#34;&gt;background&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;255&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; &lt;span class=&#34;mi&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;.015&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;k&#34;&gt;background&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mh&#34;&gt;#262236&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;k&#34;&gt;text-decoration&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;none&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;k&#34;&gt;border-radius&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&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;k&#34;&gt;max-height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;126&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&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;&#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;err&#34;&gt;@media&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;max-width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;800&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;err&#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;kc&#34;&gt;flex&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;direction&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;column&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;k&#34;&gt;max-height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;800&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&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;k&#34;&gt;max-width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;300&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&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;k&#34;&gt;margin&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;rem&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;auto&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;&#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;&#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;h2&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;k&#34;&gt;top&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;-1.2&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;rem&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;postition&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;relative&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;k&#34;&gt;margin&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;k&#34;&gt;padding&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;k&#34;&gt;font-size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;.8&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;rem&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;k&#34;&gt;font-weight&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;400&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;&#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;&#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;nc&#34;&gt;right&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;k&#34;&gt;width&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;kt&#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;k&#34;&gt;padding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&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;&lt;span class=&#34;nc&#34;&gt;description&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;k&#34;&gt;font-size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;rem&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;k&#34;&gt;line-height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1.2&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;rem&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;k&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;calc&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;kt&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;31&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;rem&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;k&#34;&gt;padding&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;k&#34;&gt;padding-bottom&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;rem&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;k&#34;&gt;padding-top&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;.1&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;rem&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;k&#34;&gt;margin&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;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;nc&#34;&gt;url&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;k&#34;&gt;padding-right&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;kt&#34;&gt;px&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;k&#34;&gt;color&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;255&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;255&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;255&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;.1&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;k&#34;&gt;text-align&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;right&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;k&#34;&gt;position&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;relative&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;k&#34;&gt;z-index&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;k&#34;&gt;background&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mh&#34;&gt;#262236&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;&#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;img&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;k&#34;&gt;max-width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;300&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&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;k&#34;&gt;max-height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;126&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&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;k&#34;&gt;padding&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;k&#34;&gt;margin&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;k&#34;&gt;border-radius&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&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;&lt;span class=&#34;nc&#34;&gt;read-more&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;k&#34;&gt;font-size&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;.6&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;rem&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;k&#34;&gt;color&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;rgba&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;255&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;255&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;255&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;.08&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;err&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;final-look&#34;&gt;Final Look &lt;a href=&#34;#final-look&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;On mobile, it renders vertically.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/one-line-link-vertical.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/one-line-link-vertical.png&#34; alt=&#34;mobile&#34;/ data-glightbox=&#34;description: mobile&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;On desktop, it renders horizontally.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/one-line-link-horizontal.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/one-line-link-horizontal.png&#34; alt=&#34;desktop&#34;/ data-glightbox=&#34;description: desktop&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;expansion&#34;&gt;Expansion &lt;a href=&#34;#expansion&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I’m sure that all of this can be better, my js skills are still forming.  It’s quite humbling to see how hard it is to think in an unfamiliar language.  The following &lt;code&gt;oneLineLineCard&lt;/code&gt; renders a string template literal from a paragraph with a single anchor to a card that contains some of that pages meta information.  The&#xA;getDescription` function uses a fetch to get the metadata right from the content of the page.&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;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;getDescription&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;nx&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;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;fetch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;url&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;nx&#34;&gt;then&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;text&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;nx&#34;&gt;then&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&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;p&#34;&gt;=&amp;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;kd&#34;&gt;let&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;parser&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;DOMParser&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;kd&#34;&gt;let&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;doc&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;parseFromString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&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;s1&#34;&gt;&amp;#39;text/html&amp;#39;&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;kd&#34;&gt;let&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;doc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;querySelectorAll&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;meta&amp;#39;&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;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;description&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;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;].&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;filter&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;nx&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;===&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;og:description&amp;#39;&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;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;].&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;content&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;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;image&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;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;].&lt;/span&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;nx&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;===&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;og:image&amp;#39;&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;&lt;span class=&#34;o&#34;&gt;?&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;content&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;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;sm_image&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;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;].&lt;/span&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;nx&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;===&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;og:sm_image&amp;#39;&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;o&#34;&gt;?&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;content&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;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;url&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;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;].&lt;/span&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;nx&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;===&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;og:url&amp;#39;&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;&lt;span class=&#34;o&#34;&gt;?&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;content&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;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;title&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;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;].&lt;/span&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;nx&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;===&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;title&amp;#39;&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;&lt;span class=&#34;o&#34;&gt;?&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;content&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;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&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;nx&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&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;nx&#34;&gt;sm_image&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;&#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;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;oneLineLinkCard&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;nx&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;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;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;getDescription&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;then&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;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;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;sb&#34;&gt;`&amp;lt;a class=&amp;#34;onelinelink&amp;#34; href=&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;&amp;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;sb&#34;&gt;  &amp;lt;img src=&amp;#39;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;sm_image&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;?&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;sm_image&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;image&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;?&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;image&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;&amp;#39; alt=&amp;#39;cover image for &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;?&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;&amp;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;sb&#34;&gt;  &amp;lt;div class=&amp;#34;right&amp;#34;&amp;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;sb&#34;&gt;    &amp;lt;h2&amp;gt;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;?&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;&amp;lt;/h2&amp;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;sb&#34;&gt;    &amp;lt;p class=&amp;#39;description&amp;#39;&amp;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;sb&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;description&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;?&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;meta&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;description&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#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;sb&#34;&gt;    &amp;lt;/p&amp;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;sb&#34;&gt;    &amp;lt;p class=&amp;#34;url&amp;#34;&amp;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;sb&#34;&gt;       &amp;lt;span class=&amp;#39;read-more&amp;#39;&amp;gt;read more&amp;lt;/span&amp;gt;  waylonwalker.com&#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;sb&#34;&gt;    &amp;lt;/p&amp;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;sb&#34;&gt;  &amp;lt;/div&amp;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;sb&#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;sb&#34;&gt;&amp;lt;/a&amp;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;sb&#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;h2 id=&#34;it-works&#34;&gt;It works &lt;a href=&#34;#it-works&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;And it works.  Whenever I reference my own blog with just a single link on a line in markdown I get a nice card link out to the other post, with a small image sized for the card, the title, and the description of the post.&lt;/p&gt;&#xA;&lt;h2 id=&#34;but&#34;&gt;But &lt;a href=&#34;#but&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;too much client-side&lt;/li&gt;&#xA;&lt;li&gt;does not work well with cross-posting&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;For every link I do this with the client will pull the full page just to get a bit of metadata.  I am already doing a bit more than I want to do client-side for a blog, so I would prefer to do it ahead of time.&lt;/p&gt;&#xA;&lt;p&gt;Additionally, since it is done client-side it does not translate well when I copy my markdown to various other blogging platforms.  If it were rendered right into the markdown cross-posting would be much easier.&lt;/p&gt;&#xA;&lt;h2 id=&#34;future-state&#34;&gt;Future State &lt;a href=&#34;#future-state&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;actually already implemented at this point&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;The direction I am going to try is to use python to load each post, look for lines that contain only a link, then render this same markup right in the markdown.  For this I am going to use a language I am more familiar with, python, and do this inside of GitHub actions just before build time so that the markdown I write stays the same, the cards will only be rendered in prod.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-python-&#34;&gt;Why Python 🐍 &lt;a href=&#34;#why-python-&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Python is my every day what I know, I work much more efficiently and cleanly with it.  Also the more I blog the more abstractions I am seeing and the lazier I am getting.  Things like description, SEO, cover images are all getting automated. Gatsby really doesn’t like to run when some of those things are missing, probably due to my lack of JS error handling skills.  I find it much easier to load up all the pages and patch up the frontmatter in python before&#xA;build time.&lt;/p&gt;&#xA;&lt;p&gt;I am kinda curious if eventually, I can re-create everything I need in python because I am honestly not using react for much more than a glorified templating system, besides search.  If I can pre-render everything in python&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-do-you-think&#34;&gt;What do you think?? &lt;a href=&#34;#what-do-you-think&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Do they look good?  Could they be better?&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Kedro Factory</title>
    <id>https://go.waylonwalker.com/kedro-factory/</id>
    <updated>2020-11-16T06:00:00Z</updated>
    <published>2020-11-16T06:00:00Z</published>
    <link href="https://go.waylonwalker.com/kedro-factory/" rel="alternate" type="text/html"></link>
    <summary type="text">Kedro Plugin Idea for creating Dags quickly</summary>
    <content type="html">&lt;p&gt;Dynamically generate kedro pipelines with yaml or script&lt;/p&gt;&#xA;&lt;p&gt;Inspiration&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/ajbosco/dag-factory&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;dag-factory&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>rebrand</title>
    <id>https://go.waylonwalker.com/rebrand/</id>
    <updated>2020-11-14T06:00:00Z</updated>
    <published>2020-11-14T06:00:00Z</published>
    <link href="https://go.waylonwalker.com/rebrand/" rel="alternate" type="text/html"></link>
    <summary type="text">A few notes for my next refactoring of waylonwalker.com</summary>
    <content type="html">&lt;ul&gt;&#xA;&lt;li&gt;simple landing page&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://swyx.io&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/swyx.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/swyx.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://swyx.io&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.joelonsoftware.com/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.joelonsoftware.com.jpg&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.joelonsoftware.com.jpg&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;joel on software&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;recent&lt;/li&gt;&#xA;&lt;li&gt;reading lists&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;More from waylon just above footer&#xA;&lt;ul&gt;&#xA;&lt;li&gt;4x2 grid&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;link strategy&#xA;&lt;ul&gt;&#xA;&lt;li&gt;latest post&lt;/li&gt;&#xA;&lt;li&gt;next/prev&lt;/li&gt;&#xA;&lt;li&gt;similar tags&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;search in nav&lt;/li&gt;&#xA;&lt;li&gt;tag stickers&lt;/li&gt;&#xA;&lt;li&gt;simple cards?&lt;/li&gt;&#xA;&lt;li&gt;bookmarks?&lt;/li&gt;&#xA;&lt;li&gt;nav style stinks&lt;/li&gt;&#xA;&lt;li&gt;single post template&lt;/li&gt;&#xA;&lt;li&gt;flat routes no need to /blog /notes&lt;/li&gt;&#xA;&lt;li&gt;post types&#xA;&lt;ul&gt;&#xA;&lt;li&gt;🌳 full&lt;/li&gt;&#xA;&lt;li&gt;🌱 budding&lt;/li&gt;&#xA;&lt;li&gt;🖊 Note&lt;/li&gt;&#xA;&lt;li&gt;💻 hot tip&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;usage of tags&lt;/li&gt;&#xA;&lt;li&gt;MDX&#xA;&lt;ul&gt;&#xA;&lt;li&gt;stories&lt;/li&gt;&#xA;&lt;li&gt;slides&lt;/li&gt;&#xA;&lt;li&gt;⚠&lt;/li&gt;&#xA;&lt;li&gt;❌&lt;/li&gt;&#xA;&lt;li&gt;✔&lt;/li&gt;&#xA;&lt;li&gt;kedro viz&lt;/li&gt;&#xA;&lt;li&gt;charts&lt;/li&gt;&#xA;&lt;li&gt;inlink component&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://joshwcomeau.com/&#34; title=&#34;https://joshwcomeau.com/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/joshwcomeau.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/joshwcomeau.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://joshwcomeau.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;auto-card oneline links&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;meta posts&#xA;&lt;ul&gt;&#xA;&lt;li&gt;about&lt;/li&gt;&#xA;&lt;li&gt;uses&lt;/li&gt;&#xA;&lt;li&gt;how site is built&lt;/li&gt;&#xA;&lt;li&gt;how to search&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;stories&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;todo&#34;&gt;TODO &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;review package.json&lt;/li&gt;&#xA;&lt;li&gt;update package.json&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;done&#34;&gt;Done &lt;a href=&#34;#done&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ahrefs&#xA;&lt;ul&gt;&#xA;&lt;li&gt;fix canonical urls&lt;/li&gt;&#xA;&lt;li&gt;fix broken inlinks&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;convert to one post template&lt;/li&gt;&#xA;&lt;li&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>How to crush amazing posts on DEV</title>
    <id>https://go.waylonwalker.com/crush-dev-to-posts/</id>
    <updated>2020-08-07T05:00:00Z</updated>
    <published>2020-08-07T05:00:00Z</published>
    <link href="https://go.waylonwalker.com/crush-dev-to-posts/" rel="alternate" type="text/html"></link>
    <summary type="text">Here are a few of my top tips to help make dev.to posts more readable, and drive better engagement.</summary>
    <content type="html">&lt;p&gt;This post was inspired by a comment I left on @dsteenman’s  post.&lt;/p&gt;&#xA;&lt;p&gt;{% post dsteenman/how-long-should-a-blogpost-be-2k6n %}&lt;/p&gt;&#xA;&lt;p&gt;Most of the time I prefer short as I am more likely to read the whole thing.  If its setup as a series I am more likely to work my way through the whole series in a matter of a few sessions.  Just my preference&lt;/p&gt;&#xA;&lt;p&gt;I will say though there are certain articles that fit well to the long format.  They are articles that folks tend to come back to often as a reference again and again.&lt;/p&gt;&#xA;&lt;h2 id=&#34;sections&#34;&gt;Sections &lt;a href=&#34;#sections&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#layout-is-key&#34;&gt;layout is key&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#break-it-up&#34;&gt;Break it up&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#article-types&#34;&gt;Article types&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#superpost&#34;&gt;superpost&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#single-post&#34;&gt;single post&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#series&#34;&gt;series&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#discussion&#34;&gt;discussion&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#post-what-you-want-to-read&#34;&gt;Post what you want to read&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;layout-is-key&#34;&gt;layout is key &lt;a href=&#34;#layout-is-key&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Either way, you go &lt;strong&gt;layout is key&lt;/strong&gt;.  You are not &lt;strong&gt;Steven King&lt;/strong&gt;, no matter how great of a writer you are, you are unlikely to hold attention like he can.  Most folks reading blogs scan articles first.  I often scan, then read.  If the article is really good or pertains well to me I will read everything, otherwise, I go back and read only the sections of interest.  If there are no discernable sections you lost me.&lt;/p&gt;&#xA;&lt;p&gt;For this reason, you need to break up your post, into sections and treat the heading for each one like you would a title of a full post.&lt;/p&gt;&#xA;&lt;h3 id=&#34;abbr-titletable-of-contentstocabbr&#34;&gt;&lt;abbr title=&#34;Table of Contents&#34;&gt;TOC&lt;/abbr&gt; &lt;a href=&#34;#abbr-titletable-of-contentstocabbr&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;em&gt;Table of Contents&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;A lot of folks responded to Danny’s post suggesting a table of contents.  For some reason I have never included a &lt;abbr title=&#34;Table of Contents&#34;&gt;TOC&lt;/abbr&gt; in my posts.  It’s something I am now considering.  I am really good at changing layout right before, or after, shipping a brand new post.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;semi-auto &lt;abbr title=&#34;Table of Contents&#34;&gt;TOC&lt;/abbr&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;As I am highly allergic to unnecessary rework and potential mistakes I put together this snippet that generates the &lt;abbr title=&#34;Table of Contents&#34;&gt;TOC&lt;/abbr&gt;automatically, just paste this into your console, and paste the results in your article.&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;// pres F12&#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;c1&#34;&gt;// paste this in the console&#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;c1&#34;&gt;// get your auto generated DEV TOC&#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;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&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;nb&#34;&gt;document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;querySelectorAll&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;.anchor&amp;#39;&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;nx&#34;&gt;map&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;a&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;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;sb&#34;&gt;`1. [&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;parentElement&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;innerText&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;](#&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;href&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;split&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;#&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#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;&lt;span class=&#34;nx&#34;&gt;join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;\n&amp;#39;&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;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;break-it-up&#34;&gt;Break it up &lt;a href=&#34;#break-it-up&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Use headings, images, and blockquotes to break your article up and make it scannable.  I treat each heading as an article title.  It should be engaging and pull the reader in, but not be clickbaity and irritate them when they didn’t get what they expected.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;make it scannable! … treat each heading as an article title&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;markdown&#34;&gt;Markdown &lt;a href=&#34;#markdown&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Get Familiar with Markdown. Check out this &lt;a href=&#34;https://github.com/adam-p/markdown-here/wiki/Markdown-Here-Cheatsheet&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;cheatsheet&lt;/a&gt; or the reference right in the DEV editor.  This is not an article about markdown, but here are the most common tags you need to break up your article.&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;&#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;gh&#34;&gt;# H1&#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;gh&#34;&gt;&lt;/span&gt;&lt;span class=&#34;gu&#34;&gt;## H2&#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;gu&#34;&gt;### H3&#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;gu&#34;&gt;&lt;/span&gt;... up to H6&#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;k&#34;&gt;*&lt;/span&gt; unordered&#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;k&#34;&gt;*&lt;/span&gt; list&#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;k&#34;&gt;*&lt;/span&gt; of&#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;k&#34;&gt;*&lt;/span&gt; things&#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;k&#34;&gt;1.&lt;/span&gt; ordered&#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;k&#34;&gt;1.&lt;/span&gt; list&#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;k&#34;&gt;1.&lt;/span&gt; of&#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;k&#34;&gt;1.&lt;/span&gt; things&#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;nt&#34;&gt;Alt text of image&lt;/span&gt;](&lt;span class=&#34;na&#34;&gt;put-link-to-image-here&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;gs&#34;&gt;**bold**&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;ge&#34;&gt;_italics_&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;gd&#34;&gt;~~strikethrough~~&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;👇 Horizontal rules are great a making a hard break between sections&#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;---&#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;/code&gt;&lt;/pre&gt;&lt;p&gt;DEV also supports these &lt;a href=&#34;/html/&#34; class=&#34;glossary-term&#34; title=&#34;HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...&#34;&gt;HTML&lt;/a&gt; elements for additional flair, use wisely. Some can make for some really jarring style that really pulls the readers eye to and is hard to focus on the rest.  I’m talking about you &lt;code&gt;&amp;lt;mark&amp;gt;&lt;/code&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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;small&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;small text&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;small&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;sup&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;superscript text&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;sup&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;sub&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;subscript text&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;sub&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;mark&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;highlighted text&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;mark&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;abbr&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Table of Contents&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;TOC&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;abbr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;liquid-tags&#34;&gt;Liquid Tags &lt;a href=&#34;#liquid-tags&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;When Editing a post click the Liquid Tag reference to the right, for a list of everything.  The &lt;code&gt;post&lt;/code&gt; tag is the retweet of DEV.&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;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{% post helenanders26/sql-series-from-a-to-z-2pk9 %}&#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;{% user helenanders26 %}&#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;{% github forem/forem %}&#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;{% github forem/forem no-readme %}&#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;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;article-types&#34;&gt;Article types &lt;a href=&#34;#article-types&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;As I can see there are several &lt;strong&gt;article types&lt;/strong&gt; on DEV&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#superpost&#34;&gt;superpost&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#single-post&#34;&gt;single post&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#series&#34;&gt;series&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#discussion&#34;&gt;discussion&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;superpost&#34;&gt;superpost &lt;a href=&#34;#superpost&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I think this is what @dsteenman is eluding to with the (+3000) word post.  This is the hardest to pull off in my opinion, but if done right it will land you at the top of the search for a long time, in the top 7, and potentially the top 1 for a given tag.&lt;/p&gt;&#xA;&lt;p&gt;I used to think that every post needed to be a super post that everyone would rave over.  I have found personally that attempting to do this makes it so I rarely post and way overthink them.  I need to at least make a cutoff time that the post is going to ship.&lt;/p&gt;&#xA;&lt;p&gt;This can also be the most frustrating, you have put all of your eggs in one basket.  If you don’t title it right, post at the right time, share it at the right time, it might not take off like you had hoped.&lt;/p&gt;&#xA;&lt;p&gt;{% post helenanders26/sql-series-from-a-to-z-2pk9 %}&lt;/p&gt;&#xA;&lt;p&gt;@helenanders26 takes the 👑 as the queen of the superpost.  She is the first person who comes to mind when I think of this post type&lt;/p&gt;&#xA;&lt;h2 id=&#34;single-post&#34;&gt;single post &lt;a href=&#34;#single-post&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Your average post.  There are a lot of great techniques to making the average post great (some added above).  Sometimes they find traction, sometimes they don’t.  I don’t sweat if they don’t.  I like posting shorter content as its achievable for me and my lifestyle.  I can always crosslink them and generate more views/discussion across them.&lt;/p&gt;&#xA;&lt;p&gt;{% post taillogs/how-to-write-a-good-blog-post-2eom %}&lt;/p&gt;&#xA;&lt;p&gt;@taillogs has a good article on his process to writing a good post.&lt;/p&gt;&#xA;&lt;p&gt;For those struggling to find what to write about, this is a great article from @swyx &lt;a href=&#34;https://swyx.io/puwtpd&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/swyx.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/swyx.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;learn-in-public-hack&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;series&#34;&gt;series &lt;a href=&#34;#series&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Using the &lt;code&gt;series&lt;/code&gt; tag you can break super posts into smaller ones.  This puts fewer of your eggs in the same basket.  I typically start a series when I know that I am going to post about a single topic often, but don’t have it all laid out.  I’ve been told for these to be really successful it needs a bit more pre-thought.&lt;/p&gt;&#xA;&lt;p&gt;I do notice that I get a bit of engagement back to older posts every time a new one is posted.  so this does help drive engagement by continuously pulling readers in.  I am not sure if its quite as good as a link, or liquid embed.  Keep in mind when doing this the series component will show the first 2 and the last two without clicking.  Make sure that the first two really count, they will likely get the most traffic benefit from the series.&lt;/p&gt;&#xA;&lt;p&gt;{% post waylonwalker/what-are-github-actions-1lhh %}&lt;/p&gt;&#xA;&lt;p&gt;I personally put a lot of my content into a series.  I don’t think through the full series ahead of time very much.  I do it because it helps me organize and retrieve my thoughts.  I find it easier to get back to the post I want to reference if I can find the series it was part of.  I think of it as a tag that no one else can post to.&lt;/p&gt;&#xA;&lt;h2 id=&#34;discussion&#34;&gt;discussion &lt;a href=&#34;#discussion&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Posts just like this one, where the author leads the discussion with an intriguing question or comment but holds back on their opinion.  The key here is that the author should engage in the discussion, keep the discussion moving, and provide their thoughts here.&lt;/p&gt;&#xA;&lt;p&gt;Selfishly this is one of my favorite types of posts to make as I learn the most from them.&lt;/p&gt;&#xA;&lt;p&gt;{% post ben/how-do-you-identify-over-engineering-1oad %}&lt;/p&gt;&#xA;&lt;p&gt;@ben is the king of the &lt;a href=&#34;https://dev.to/t/discuss&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/dev.to.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/dev.to.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;&lt;/a&gt;&lt;a href=&#34;/tags/discuss/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;discuss&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#discuss&lt;/a&gt; post.  He is able to get just the right titles that pull people in and generate quite large discussions.&lt;/p&gt;&#xA;&lt;hr/&gt;&#xA;&lt;h2 id=&#34;post-what-you-want-to-read&#34;&gt;Post what you want to read &lt;a href=&#34;#post-what-you-want-to-read&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;At the end of the day &lt;strong&gt;YOU&lt;/strong&gt; are the most important component.  Post what you like to read, post what you are able to write.  If you struggle to wrap your head around concepts in small posts and have a talent at making rockstar super posts do that.  &lt;strong&gt;Do YOU&lt;/strong&gt;&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Edit On GitHub</title>
    <id>https://go.waylonwalker.com/edit-on-github/</id>
    <updated>2020-07-18T05:00:00Z</updated>
    <published>2020-07-18T05:00:00Z</published>
    <link href="https://go.waylonwalker.com/edit-on-github/" rel="alternate" type="text/html"></link>
    <summary type="text">I recently added a button to my blog, and subsequently my posts on DEV.to. It&#39;s the best thing that I have done for it in a while. It makes it so easy to do...</summary>
    <content type="html">&lt;p&gt;I recently added a button to my blog, and subsequently my posts on&#xA;&lt;a href=&#34;https://dev.to/waylonwalker&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/dev.to.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/dev.to.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;DEV.to&lt;/a&gt;.  It’s the best thing that I have done&#xA;for it in a while.  It makes it so easy to do quick edits.&lt;/p&gt;&#xA;&lt;h2 id=&#34;finding-errors&#34;&gt;finding errors &lt;a href=&#34;#finding-errors&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I refer back to my old posts quite a bit, sometimes I find errors in them.&#xA;Honestly most of the time its too much effort to load up my editor make the&#xA;change and &lt;code&gt;git add&lt;/code&gt; and &lt;code&gt;git commit&lt;/code&gt;.  It’s not much, but when I am referring&#xA;to my own post generally I am just trying to get something done and don’t have&#xA;time for that.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-slug&#34;&gt;The slug &lt;a href=&#34;#the-slug&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The slug that I am getting from gatsby is formatted as &lt;code&gt;/blog/this-post/&lt;/code&gt;.&#xA;Note the trailing slash and missing file extension, thats where the&#xA;&lt;code&gt;${slug.slice(0, -1)}.md&lt;/code&gt; comes in.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-full-link&#34;&gt;The Full Link &lt;a href=&#34;#the-full-link&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;GitHub makes it super easy to form a URL that puts you right into edit mode on&#xA;the exact post you are looking for.  This is format for the URL… you can&#xA;always figure it out easily by clicking edit on one.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;https://github.com/&amp;lt;user&amp;gt;/&amp;lt;repo&amp;gt;/edit/&amp;lt;branch&amp;gt;/&amp;lt;filepath&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;the-final-result&#34;&gt;The Final Result &lt;a href=&#34;#the-final-result&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Wrapping that URL up in a short snippet gave me the following result.&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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;p&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;style&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;nx&#34;&gt;display&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;flex&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;justify&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;center&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;textAlign&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;center&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;margin&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;3rem auto&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}}&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;span&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;role&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;img&amp;#39;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;aria&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;label&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;👀&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;span&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;see&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;an&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;issue&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;edit&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;post&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;on&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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;a&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;na&#34;&gt;href&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;sb&#34;&gt;`https://github.com/WaylonWalker/waylonwalkerv2/edit/main/src/pages&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&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;nx&#34;&gt;slice&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; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;.md`&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;na&#34;&gt;alt&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;edit post url&amp;#39;&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;na&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#39;edit this post&amp;#39;&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;&amp;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;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;FiGithub&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&amp;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;GitHub&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;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;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;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;p&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dev-to-uploads.s3.amazonaws.com/i/sgqd23rbbusjpfxqr7bl.PNG&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dev-to-uploads.s3.amazonaws.com/i/sgqd23rbbusjpfxqr7bl.PNG&#34; alt=&#34;Edit on GitHub&#34;/ data-glightbox=&#34;description: Edit on GitHub&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;I know better than hard coding the GitHub url in, but I did it anyway, my&#xA;personal site gets to be a bit of a rats nest of hotfixes over time.&lt;/p&gt;&#xA;&lt;p&gt;This was a super quick change that brought me a lot of value without much&#xA;effort.  I will probably change up the styling/layout of it in the future. For&#xA;now I have something that functions, and I can get back to creating content.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>🙋‍♂️ Can Anyone Explain Twitter Cards to me?</title>
    <id>https://go.waylonwalker.com/explain-twitter-cards/</id>
    <updated>2020-07-11T03:00:00Z</updated>
    <published>2020-07-11T03:00:00Z</published>
    <link href="https://go.waylonwalker.com/explain-twitter-cards/" rel="alternate" type="text/html"></link>
    <summary type="text">Can someone explain how or why twitter cards render differently from device to device? I do understand that twitter cards a built from meta tags, the full...</summary>
    <content type="html">&lt;p&gt;Can someone explain how or why twitter cards render differently from device to device?  I do understand that twitter cards a built from meta tags, the full list can be found in their &lt;a href=&#34;https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/markup&#34;&gt;docs&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;rendered-on-mobile&#34;&gt;Rendered on Mobile &lt;a href=&#34;#rendered-on-mobile&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Mobile Looks fine.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/twitter-card-rendered.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/twitter-card-rendered.png&#34; alt=&#34;rendered card&#34;/ data-glightbox=&#34;description: rendered card&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;not-rendered-on-desktop&#34;&gt;Not Rendered on Desktop &lt;a href=&#34;#not-rendered-on-desktop&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;On Desktop it is not picking up the image.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/twitter-card-rendered.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/twitter-card-rendered.png&#34; alt=&#34;not rendered card&#34;/ data-glightbox=&#34;description: not rendered card&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;twitter-card-validator&#34;&gt;Twitter Card Validator &lt;a href=&#34;#twitter-card-validator&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The Validator renders the card correctly.  I tried the official &lt;a href=&#34;https://cards-dev.twitter.com/validator&#34;&gt;twitter card&#xA;validator&lt;/a&gt;, as well as&#xA;&lt;a href=&#34;https://www.heymeta.com/results?url=waylonwalker.com&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.heymeta.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.heymeta.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;heymeta.com&lt;/a&gt;, and&#xA;&lt;a href=&#34;https://metatags.io/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/metatags.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/metatags.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;metatags.io&lt;/a&gt;.  All look good.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/twitter-card-rendered.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/twitter-card-rendered.png&#34; alt=&#34;rendered card with validator&#34;/ data-glightbox=&#34;description: rendered card with validator&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;can-cards-be-updated&#34;&gt;Can Cards be updated? &lt;a href=&#34;#can-cards-be-updated&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;even with a redirect?&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;I tried seting up a pinned tweet that uses a netlify redirect to always keep my latest post up to date.  Again this one looks good in the validator, doesnt render the image on desktop, does render the image on mobile, but does not update.  I have heard that you need to hit the card validator to update cards?  I am not sure if this is true, but for me this is not even upating the card.&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;👋 Hello,&lt;br/&gt;&lt;br/&gt;―――――― I&amp;#39;m Waylon Walker ――――――&lt;br/&gt;&lt;br/&gt;I work with data using 🐍 &lt;a href=&#34;https://twitter.com/hashtag/python?src=hash&amp;amp;ref_src=twsrc%5Etfw&#34;&gt;&lt;/a&gt;&lt;a href=&#34;/tags/python/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;python&#34; data-count=&#34;274&#34; data-reading-time=&#34;440&#34; data-reading-time-text=&#34;440 minutes&#34;&gt;#python&lt;/a&gt; and utilize &lt;a href=&#34;https://twitter.com/hashtag/webdev?src=hash&amp;amp;ref_src=twsrc%5Etfw&#34;&gt;&lt;/a&gt;&lt;a href=&#34;/tags/webdev/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;webdev&#34; data-count=&#34;187&#34; data-reading-time=&#34;255&#34; data-reading-time-text=&#34;255 minutes&#34;&gt;#webdev&lt;/a&gt; to 〽visualize it.&lt;br/&gt;&lt;br/&gt;――――――&lt;br/&gt;&lt;br/&gt;I write about things on my 🌱 digital garden&lt;a href=&#34;https://t.co/rAvD9iw05g&#34;&gt;https://t.co/rAvD9iw05g&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;👨‍💻Some are cross-posted to &lt;a href=&#34;https://t.co/oRWk7MgUD5&#34;&gt;https://t.co/oRWk7MgUD5&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;――――――&lt;br/&gt;💌&lt;a href=&#34;https://t.co/PilOTWQ9ub&#34;&gt;https://t.co/PilOTWQ9ub&lt;/a&gt;&lt;/p&gt;— 𝚆𝚊𝚢𝚕𝚘𝚗 𝚆𝚊𝚕𝚔𝚎𝚛 (@_WaylonWalker) &lt;a href=&#34;https://twitter.com/_WaylonWalker/status/1282000623299371008?ref_src=twsrc%5Etfw&#34;&gt;July 11, 2020&lt;/a&gt;&lt;/blockquote&gt; &lt;script async=&#34;&#34; src=&#34;https://platform.twitter.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Refactoring your blog urls</title>
    <id>https://go.waylonwalker.com/gracefully-redirect/</id>
    <updated>2020-06-11T05:00:00Z</updated>
    <published>2020-06-11T05:00:00Z</published>
    <link href="https://go.waylonwalker.com/gracefully-redirect/" rel="alternate" type="text/html"></link>
    <summary type="text">I just did a quick refactoring of my JAMStack blog urls. Some didn&#39;t fit with my style, some had that I wanted to switch to , and others were ridiculously...</summary>
    <content type="html">&lt;p&gt;I just did a quick refactoring of my JAMStack blog urls.  Some didn’t fit with&#xA;my style, some had &lt;code&gt;_&lt;/code&gt; that I wanted to switch to &lt;code&gt;-&lt;/code&gt;, and others were&#xA;ridiculously long.  I’ve been using forestry as my CMS, I write many of my&#xA;posts there, and sometimes it picks some crazy file names (based on my titles).&#xA;It was time to refactor.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/refactor-in-cli/&#34; class=&#34;wikilink&#34; data-title=&#34;Large Refactor At The Command Line&#34; data-description=&#34;As projects grow patterns that worked early on break and we need to change things to make the project easier to work with, and more welcoming to new developers.&#34; data-date=&#34;2020-12-30&#34; data-preview=&#34;As projects grow patterns that worked early on break and we need to change things to make the project easier to work with, and more welcoming to new developers.&#34;&gt;Large Refactor At The Command Line&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;When refactorings similar to this get really big I often need to do some&#xA;project wide find an replace, I usually do this right from the command line.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;-rename-posts--change-the-filename-&#34;&gt;🖊 Rename posts &lt;em&gt;change the filename&lt;/em&gt; &lt;a href=&#34;#-rename-posts--change-the-filename-&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;My post urls are based on the file name of my markdown file, so I can simply go&#xA;through my filesystem and rename anything I want.  From here its probably best&#xA;to only commit the addition of the new file name, until the redirects clear,&#xA;but these are all low traffic posts for me so I just commited both at once.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Safely redirect without breaking links&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;-redirects---redirects-&#34;&gt;_redirects ⤴ &lt;em&gt;/redirects&lt;/em&gt; &lt;a href=&#34;#-redirects---redirects-&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I am hosted on netlify, which automatically puts very ⚡ performant redirects&#xA;on the edge based on a &lt;code&gt;/_redirects&lt;/code&gt; route on your site.  So I added a redirect&#xA;from the old route to the new route there.&lt;/p&gt;&#xA;&lt;h2 id=&#34;rename-long-posts&#34;&gt;rename long posts &lt;a href=&#34;#rename-long-posts&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&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;/blog/i-finally-fixed-my-styled-components-in-gatsby-js&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/blog/fix-styled-components-in-gatsby&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/blog/interrogate-is-a-pretty-awesome-brand-new-cli-for-python-packages&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/blog/interrogate&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;pedantic---probably-&#34;&gt;pedantic 🤔 &lt;em&gt;probably&lt;/em&gt; &lt;a href=&#34;#pedantic---probably-&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;This is probably being a bit pedantic.  Realistically my urls were probably ok.&#xA;These posts probably aren’t going to be topping the google search charts&#xA;anyways, but I wanted to do it without killing off any links that I may have&#xA;happened to post somewhere.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Blog consistently</title>
    <id>https://go.waylonwalker.com/013/</id>
    <updated>2020-06-07T02:12:24Z</updated>
    <published>2020-06-07T02:12:24Z</published>
    <link href="https://go.waylonwalker.com/013/" rel="alternate" type="text/html"></link>
    <summary type="text">Even if you _ a topic has been blogged to death</summary>
    <content type="html">&lt;h1 id=&#34;blog-consistently&#34;&gt;Blog consistently&lt;/h1&gt;&#xA;&lt;p&gt;Even if you &lt;em&gt;think&lt;/em&gt; a topic has been blogged to death&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;There is one thing they are &lt;em&gt;all&lt;/em&gt; missing….&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Your unique perspective&lt;/strong&gt;&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>How to get Dev Comments from an article Url</title>
    <id>https://go.waylonwalker.com/devto-comments-from-url/</id>
    <updated>2020-05-20T10:00:00Z</updated>
    <published>2020-05-20T10:00:00Z</published>
    <link href="https://go.waylonwalker.com/devto-comments-from-url/" rel="alternate" type="text/html"></link>
    <summary type="text">I want to incorporate some of the wonderful comments, \U0001F495, \U0001F984, and \U0001F516&#39;s that I have been getting on dev.to on my website. I have...</summary>
    <content type="html">&lt;p&gt;I want to incorporate some of the wonderful comments, \U0001F495, \U0001F984,&#xA;and \U0001F516’s that I have been getting on dev.to on my website.  I have&#xA;dabbled once or twice with no avail this time I am taking notes on my journey,&#xA;so follow along and let’s get there together.  By the end of this post, I will&#xA;have a way to get comments from posts on the client-side thanks to the&#xA;wonderfully open dev.to API.&lt;/p&gt;&#xA;&lt;p&gt;I want to incorporate some of the wonderful comments, 💕, 🦄, and 🔖’s that I have been getting on &lt;strong&gt;dev.to&lt;/strong&gt; on my website.  I have dabbled once or twice with no avail this time I am taking notes on my journey, so follow along and let’s get there together.  By the end of this post, I will have a way to get comments from posts on the client-side thanks to the wonderfully open dev.to API.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-api&#34;&gt;The API &lt;a href=&#34;#the-api&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;dev.to has an open API that allows us to easily get comments as &lt;a href=&#34;/html/&#34; class=&#34;glossary-term&#34; title=&#34;HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...&#34;&gt;HTML&lt;/a&gt;.  They have their API hosted at &lt;a href=&#34;https://docs.forem.com/api/#tag/comments&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/docs.forem.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/docs.forem.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://docs.forem.com/api/#tag/comments&lt;/a&gt;, let’s take a look at it.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/dev-to-api-comments.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/dev-to-api-comments.png&#34; alt=&#34;&#34;/ data-glightbox=&#34;description: &#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Here we can see that going to &lt;a href=&#34;https://dev.to/api/comments?a_id=270180&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/dev.to.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/dev.to.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://dev.to/api/comments?a_id=270180&lt;/a&gt; returns us some json, that contains an array of comments.&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;&lt;span class=&#34;err&#34;&gt;body_html:&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;&amp;#39;&amp;lt;the&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;comment&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;rendered&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;html&amp;gt;&amp;#39;,&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;err&#34;&gt;user:&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;{&amp;lt;an&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;array&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;quite&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;a&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;bit&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;of&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;information&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;about&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;the&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;commenting&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;user&amp;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;err&#34;&gt;children:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;&amp;lt;an&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;array&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;of&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;child&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;comment&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;objects&amp;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;err&#34;&gt;&amp;lt;other&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;stuff&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;we&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;don&amp;#39;t&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;care&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;about&amp;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;err&#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;err&#34;&gt;&amp;lt;more&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;comments&amp;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;h2 id=&#34;what-the-heck-is-that-a-id&#34;&gt;What the heck is that a_id &lt;a href=&#34;#what-the-heck-is-that-a-id&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;That is an &lt;code&gt;article_id&lt;/code&gt;.  Though a bit of searching I found that it occurs in at least four places on every page as a data attribute.  Using chrome dev tools I found a good place to “query” it from.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/dev-to-article-id.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/dev-to-article-id.png&#34; alt=&#34;&#34;/ data-glightbox=&#34;description: &#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;With this knowledge, we can fetch the contents of an article and pull the &lt;code&gt;articleId&lt;/code&gt; from it.&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;kr&#34;&gt;async&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;getDevToAId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;url&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;c1&#34;&gt;// Gets the articleId of a dev.to article&#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;c1&#34;&gt;&lt;/span&gt;        &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;root&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;https://dev.to/&amp;#39;&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;k&#34;&gt;if&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;nx&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;includes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;root&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;nx&#34;&gt;url&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;root&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;url&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;kd&#34;&gt;let&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;domparser&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;DOMParser&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;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;html&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;fetch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;then&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;r&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;text&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;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;doc&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;domparser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;parseFromString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&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;s1&#34;&gt;&amp;#39;text/html&amp;#39;&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;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;articleId&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;doc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;querySelector&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;#article-body&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;dataset&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;articleId&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;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;articleId&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;&lt;strong&gt;note&lt;/strong&gt;  I do check to see if a full URL or slug was given, if it was just the slug I tack on &lt;code&gt;https://dev.to/&lt;/code&gt; before fetching.&lt;/p&gt;&#xA;&lt;h2 id=&#34;now-the-comments&#34;&gt;Now the comments &lt;a href=&#34;#now-the-comments&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The main event is here, what you all have waited for, and it’s by far the easiest part.&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;kr&#34;&gt;async&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;getDevToComments&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;url&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;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;articleId&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;getDevToAId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;url&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;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;fetch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`https://dev.to/api/comments?a_id=&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;articleId&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#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;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;comments&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;await&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;json&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;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;comments&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;The hardest part of this was figuring out what the &lt;code&gt;a_id&lt;/code&gt; was and how I was going to get it from some more commonly known information about my articles, the URL, or the slug&lt;/p&gt;&#xA;&lt;h2 id=&#34;try-it-out&#34;&gt;Try it out &lt;a href=&#34;#try-it-out&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;F12&lt;/strong&gt; pop open your console right in dev tools of this post and try it out.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/dev-to-comments-in-devtools.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/dev-to-comments-in-devtools.png&#34; alt=&#34;&#34;/ data-glightbox=&#34;description: &#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>I finally fixed my Styled-Components in gatsby.js</title>
    <id>https://go.waylonwalker.com/fix-styled-components-in-gatsby/</id>
    <updated>2020-02-08T15:07:00Z</updated>
    <published>2020-02-08T15:07:00Z</published>
    <link href="https://go.waylonwalker.com/fix-styled-components-in-gatsby/" rel="alternate" type="text/html"></link>
    <summary type="text">I finally fixed my Styled-Components in gatsby.js. I am starting a redesign of my website. I have started cross posting to dev.to more regularly. With that I...</summary>
    <content type="html">&lt;p&gt;I finally fixed my Styled-Components in gatsby.js. I am starting a redesign of&#xA;my website.  I have started cross posting to &lt;a href=&#34;https://dev.to&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/dev.to.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/dev.to.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;dev.to&lt;/a&gt; more&#xA;regularly.  With that I have been making more detailed cover images at the&#xA;recommended &lt;code&gt;1000x420&lt;/code&gt;.  These images get cut off on my own site, which is a&#xA;bit ridiculous to have my own content not look right on my own site.  But&#xA;before we start a heavy redesign I have a small issue that has plagued the site&#xA;for at least a year!&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I have a small issue that has plagued the site for at least a year!&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;I have been using styled components in my gatsby.js site for about a year now.  And it has been plagued by styled-components not being in the ssr causing some jank in the styles being loaded.  You can see it in the lighthouse performance report below.  It generally loads super quick, and is only caused on first load.  Anything using the gatsby &lt;code&gt;&amp;lt;Link/&amp;gt;&lt;/code&gt; component typically is fine and unaffected by the issue.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-fix&#34;&gt;The fix &lt;a href=&#34;#the-fix&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The fix was so simple it was only 2 lines total. One to install &lt;code&gt;gatsby-plugin-styled-components&lt;/code&gt; and one to use it.&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;npm i gatsby-plugin-styled-components&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&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;err&#34;&gt;plugins:&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;err&#34;&gt;&amp;#39;gatsby-plugin-styled-components&amp;#39;&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;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;before&#34;&gt;Before &lt;a href=&#34;#before&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/80cb807b-f84d-4649-88bd-44c5867b0352.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/80cb807b-f84d-4649-88bd-44c5867b0352.png&#34; alt=&#34;2020-02-06 15-27-45_Start.png&#34;/ data-glightbox=&#34;description: 2020-02-06 15-27-45_Start.png&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;after&#34;&gt;After &lt;a href=&#34;#after&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/7e38cf4c-e69c-4df3-b8f1-14aa023c9c38.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/7e38cf4c-e69c-4df3-b8f1-14aa023c9c38.png&#34; alt=&#34;2020-02-07 17-20-31_Start.png&#34;/ data-glightbox=&#34;description: 2020-02-07 17-20-31_Start.png&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;why-did-it-take-so-long-to-fix&#34;&gt;Why did it take so long to Fix? &lt;a href=&#34;#why-did-it-take-so-long-to-fix&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The real issue here was that I really didn’t understand the problem as I described it above until I found the fix. It really did seem random that at odd times the styles would seem to vanish.  Sometimes never fully rehydrating at all.  Well actually I had fixed some production sites at work with it, but had no idea why it worked and therefore could not remember how I had fixed it, and google searched yielded no help.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/the-moment-i-realized-the-true-problem-1.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/the-moment-i-realized-the-true-problem-1.png&#34; alt=&#34;&#34;/ data-glightbox=&#34;description: &#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;After re-watching Wes Bos’s Advanced react course where he describes how to fix this issue for &lt;code&gt;next.js&lt;/code&gt; sites it became clear that the problem was not random at all.  It was that they do not get statically rendered and are only on the page after react is re-hydrated.  The moment I realized the &lt;strong&gt;true&lt;/strong&gt; problem I knew how to google it and quickly found there was a plugin for this.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Personal URL shortener with Netlify Redirects</title>
    <id>https://go.waylonwalker.com/personal-url-shortener/</id>
    <updated>2020-01-29T06:00:00Z</updated>
    <published>2020-01-29T06:00:00Z</published>
    <link href="https://go.waylonwalker.com/personal-url-shortener/" rel="alternate" type="text/html"></link>
    <summary type="text">Personal URL shortener with Netlify Redirects</summary>
    <content type="html">&lt;p&gt;I love using URL shorteners to easily share links without hitting character&#xA;limits, but they loose their meaning. Services like bit.ly will save my links&#xA;for me so that I can find them, but I would rather them to be easy to remember.&#xA;&lt;a href=&#34;https://bit.ly/2ruLwQz&#34; title=&#34;https://bit.ly/2ruLwQz&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/bit.ly.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/bit.ly.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://bit.ly/2ruLwQz&lt;/a&gt; does&#xA;not roll of the tongue so well.&lt;/p&gt;&#xA;&lt;h2 id=&#34;301-&#34;&gt;301 🤸‍♀️ &lt;a href=&#34;#301-&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I recently discovered a really cool feature of netlify that I have always looked past, &lt;code&gt;_redirects&lt;/code&gt;. It is so simple cool and powerful, every netlify site should do this!&lt;/p&gt;&#xA;&lt;h2 id=&#34;but-how-&#34;&gt;But how 🤷‍♀️ &lt;a href=&#34;#but-how-&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;simply add a &lt;code&gt;_redirects&lt;/code&gt; file to the root of your your published site with the following format. The trick I found with my gatsby site was that it needed to be in my static directory &lt;code&gt;/static/_redirects&lt;/code&gt;, not root. Next you just put space separated links on separate lines. #’s can be used for comments.&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;gh&#34;&gt;# netlify redirects&#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;gh&#34;&gt;# from_url to_url&#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;gh&#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;gh&#34;&gt;# Short-Blog&#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;gh&#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;/blog/scli         /blog/simple-click/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/blog/cmdt         /blog/cmd-exe-tips/&#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;.&#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;&#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;gh&#34;&gt;# splats&#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;gh&#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;/b*             /blog/:splat&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/n*             /notes/:splat&#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;&#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;gh&#34;&gt;# External&#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;gh&#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;/twitter        https://twitter.com/_WaylonWalker&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/github         https://github.com/WaylonWalker&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/devto          https://dev.to/waylonwalker/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;-share-those-short-links&#34;&gt;🙌 Share those short links &lt;a href=&#34;#-share-those-short-links&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Now with shorter links we have more space for our content without needing to use a service like bit.ly that makes our links unreadable.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;![url shortener](&lt;a href=&#34;https://images.waylonwalker.com/URL&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/images.waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/images.waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://images.waylonwalker.com/URL&lt;/a&gt; shortener.png)&#xA;&lt;/figure&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
</feed>