<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Posts tagged: markata</title>
  <id>https://waylonwalker.com/tags/markata/atom.xml</id>
  <updated>2026-08-12T22:00:59Z</updated>
  <subtitle>All posts with the tag &#34;markata&#34;</subtitle>
  <link href="https://waylonwalker.com/tags/markata/" rel="alternate" type="text/html"></link>
  <link href="https://waylonwalker.com/tags/markata/atom.xml" rel="self" type="application/atom+xml"></link>
  <author>
    <name>Waylon Walker</name>
  </author>
  <generator uri="https://github.com/WaylonWalker/markata-go">markata-go</generator>
  <entry>
    <title>Share To Plaindown</title>
    <id>https://waylonwalker.com/shots/share-to-plaindown/</id>
    <updated>2026-08-12T22:00:59Z</updated>
    <published>2026-08-12T22:00:59Z</published>
    <link href="https://waylonwalker.com/shots/share-to-plaindown/" rel="alternate" type="text/html"></link>
    <summary type="text">New workflow unlocked, sharing images and links straight to plaindown on my phone.</summary>
    <content type="html">&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/1250357d-f8b3-44d6-bc9c-114b0e50f304.webm&#34; class=&#34;glightbox-link&#34; aria-label=&#34;Share To Plaindown&#34;&gt;&lt;video autoplay loop muted playsinline controls preload=&#34;metadata&#34; class=&#34;md-video&#34; style=&#34;margin-inline:auto&#34; poster=&#34;https://dropper.waylonwalker.com/file/1250357d-f8b3-44d6-bc9c-114b0e50f304.webp?h=675&amp;w=1200&#34;&gt;&lt;source src=&#34;https://dropper.waylonwalker.com/file/1250357d-f8b3-44d6-bc9c-114b0e50f304.webm&#34; type=&#34;video/webm&#34;&gt;Share To Plaindown&lt;/video&gt;&lt;/a&gt;&#xA;&lt;figcaption&gt;&lt;p&gt;New workflow unlocked, sharing images and links straight to plaindown on my phone.&lt;/p&gt;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;I’ve been working on my own markdown editor, yes I know making your own cms is a trap I’m crazy.  Today I unlocked the ability to share images and links to post as shot posts or link posts.  The video above created &lt;a class=&#34;wikilink&#34; data-date=&#34;2026-08-10&#34; data-description=&#34;Installed a new nvim cap&#34; data-title=&#34;Nvim Cap Installed&#34; href=&#34;/shots/nvim-cap-installed/&#34; data-preview=&#34;Installed a new nvim cap&#34; data-preview-image=&#34;https://dropper.waylonwalker.com/file/96cb5f79-4c82-4d6b-b5bd-0e21751767f3.webp&#34;&gt;Nvim Cap Installed&lt;/a&gt;&lt;/p&gt;&#xA;&lt;figure class=&#34;embed-figure&#34;&gt;&#xA;  &lt;a class=&#34;u-url&#34; href=&#34;/shots/nvim-cap-installed/&#34;&gt;&#xA;    &lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/file/96cb5f79-4c82-4d6b-b5bd-0e21751767f3.webp?w=1200&#34; alt=&#34;Nvim Cap Installed&#34; width=&#34;1200&#34; loading=&#34;lazy&#34; data-glightbox=&#34;description: Nvim Cap Installed&#34;&gt;&#xA;  &lt;/a&gt;&#xA;  &lt;figcaption&gt;Installed a new nvim cap&lt;/figcaption&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>helix markata go lsp</title>
    <id>https://waylonwalker.com/helix-markata-go-lsp/</id>
    <updated>2026-07-28T22:21:13Z</updated>
    <published>2026-07-28T22:21:13Z</published>
    <link href="https://waylonwalker.com/helix-markata-go-lsp/" rel="alternate" type="text/html"></link>
    <summary type="text">Helix has got to have one of the easiest configurations. It is this easy to get the markata-go lsp in helix.</summary>
    <content type="html">&lt;p&gt;Helix has got to have one of the easiest configurations.  It is this easy to get&#xA;the markata-go lsp in helix.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;markata-go lsp setup --editor helix&#xA;&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;# Helix languages.toml (usually ~/.config/helix/languages.toml)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;language-server.markata-go&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;nb&#34;&gt;command&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;markata-go&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;nv&#34;&gt;args&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;lsp&amp;#34;&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;&#xA;&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;language&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;nv&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;markdown&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;language-servers &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;markata-go&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&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>Mentions</title>
    <id>https://waylonwalker.com/mentions/</id>
    <updated>2026-01-24T19:11:15Z</updated>
    <published>2026-01-24T19:11:15Z</published>
    <link href="https://waylonwalker.com/mentions/" rel="alternate" type="text/html"></link>
    <summary type="text">I can now just mention people from my markata about blogroll like @simonwillison.net or @swyx.io</summary>
    <content type="html">&lt;p&gt;I can now just mention people from my &lt;a class=&#34;wikilink&#34; data-date=&#34;2024-05-30&#34; data-description=&#34;This post is a work in progress.&#34; data-title=&#34;markata&#34; href=&#34;/markata/&#34; data-preview=&#34;This post is a work in progress.&#34;&gt;markata&lt;/a&gt;  &lt;a class=&#34;wikilink&#34; data-date=&#34;2021-11-20&#34; data-description=&#34;Husband, dad of two, and hobbyist builder of things on the internet.&#34; data-title=&#34;Waylon Walker&#34; href=&#34;/about/&#34; data-preview=&#34;Husband, dad of two, and hobbyist builder of things on the internet.&#34;&gt;Waylon Walker&lt;/a&gt; &lt;a class=&#34;wikilink&#34; data-description=&#34;Blogs and feeds I follow&#34; data-title=&#34;Blogroll&#34; href=&#34;/blogroll/&#34; data-preview=&#34;Blogs and feeds I follow&#34;&gt;Blogroll&lt;/a&gt; like &lt;a class=&#34;mention has-avatar has-avatar-before&#34; data-handle=&#34;@simonwillison&#34; data-name=&#34;Simon Willison’s Weblog&#34; href=&#34;https://simonwillison.net&#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;&gt;@simonwillison&lt;/a&gt; or @swyx.io&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;wikilink&#34; data-date=&#34;2025-01-12&#34; data-description=&#34;This page is meant to be simple view into what is happening in my life right now. Inspired by @NowNowNow. and Derek Sivers.&#34; data-title=&#34;/now&#34; href=&#34;/now/&#34; data-preview=&#34;This page is meant to be simple view into what is happening in my life right now. Inspired by @NowNowNow. and Derek Sivers.&#34;&gt;/now&lt;/a&gt;  &lt;a class=&#34;wikilink&#34; data-date=&#34;2025-01-12&#34; data-description=&#34;This page is meant to be simple view into what is happening in my life right now. Inspired by @NowNowNow. and Derek Sivers.&#34; data-title=&#34;/now&#34; href=&#34;/now/&#34; data-preview=&#34;This page is meant to be simple view into what is happening in my life right now. Inspired by @NowNowNow. and Derek Sivers.&#34;&gt;/now&lt;/a&gt; &lt;a class=&#34;wikilink&#34; data-date=&#34;2025-01-12&#34; data-description=&#34;This page is meant to be simple view into what is happening in my life right now. Inspired by @NowNowNow. and Derek Sivers.&#34; data-title=&#34;/now&#34; href=&#34;/now/&#34; data-preview=&#34;This page is meant to be simple view into what is happening in my life right now. Inspired by @NowNowNow. and Derek Sivers.&#34;&gt;/now&lt;/a&gt;&lt;/p&gt;&#xA;&lt;aside class=&#34;admonition aside aside-right&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Aside&lt;/p&gt;&#xA;&lt;p&gt;This is an aside!&lt;/p&gt;&#xA;&lt;/aside&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Late Night Linux – Episode 335 - YouTube</title>
    <id>https://waylonwalker.com/thought-645/</id>
    <updated>2025-05-27T07:31:53Z</updated>
    <published>2025-05-27T07:31:53Z</published>
    <link href="https://waylonwalker.com/thought-645/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://www.youtube.com/watch?v=warmcBBfZn0</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external embed-card-provider-youtube&#34; data-markata-embed=&#34;true&#34;&gt;&#xA;  &lt;div class=&#34;embed-card-rich&#34;&gt;&#xA;&lt;lite-youtube videoid=&#34;warmcBBfZn0&#34; title=&#34;Late Night Linux – Episode 335&#34; playlabel=&#34;Play: Late Night Linux – Episode 335&#34;&gt;&lt;/lite-youtube&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Markata got a shout out part way through the latest episode of LNL, I will go back, re-listen and take some of the feedback.  His thoughts on Markata were interesting. On one hand it really is a thing for me that works for me, and as a person with too many side projects I don’t have the focus to really give it polish.  On the other hand it really confirms why listen to podcasts, news, finger on the pulse, opinions and how often these guys are wrong, they are not the expert they probably look at 6 things like this a week.  He said that it was some sort of javascript thing, that maybe he could fix or customize with javascript if he wanted, kinda shocking, I thought maybe I accidentally added node modules or something dumb, nope, I have a whopping 1.4% js.  So most of the comments were plain wrong.  I get it he probably peeked at it for 30s and realized it wasn’t the thing for his problem.  At the same time I should probably do a better job at marketing what it really is, cleaning up the docs and demo.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>m9a devlog 1</title>
    <id>https://waylonwalker.com/m9a-devlog-1/</id>
    <updated>2025-05-11T09:33:44Z</updated>
    <published>2025-05-11T09:33:44Z</published>
    <link href="https://waylonwalker.com/m9a-devlog-1/" rel="alternate" type="text/html"></link>
    <summary type="text">It&#39;s sad to see textualize.io close the doors, but textual is still alive and maintained as a n open source project. I tried to use it very early, and...</summary>
    <content type="html">&lt;p&gt;It’s sad to see textualize.io close the doors, but textual is still alive and&#xA;maintained as a n open source project.  I tried to use it very early, and&#xA;struggled, this was before docs and tutorials really existed, before a lot of&#xA;the widgets and components existed.  Then as we all do I got busy and moved on&#xA;to other things in life and did not have the capacity to build TUIs.&lt;/p&gt;&#xA;&lt;h2 id=&#34;i-like-tuis&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;I like tuis&lt;/span&gt; &lt;a href=&#34;#i-like-tuis&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I like tuis, I like staying in the terminal.  I use&#xA;&lt;a href=&#34;https://github.com/gokcehan/lf&#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;lf&lt;/a&gt; daily to move files around when I&#xA;want something more than &lt;code&gt;mv&lt;/code&gt; and &lt;code&gt;cp&lt;/code&gt;.  I use&#xA;&lt;a href=&#34;https://github.com/derailed/k9s&#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;k9s&lt;/a&gt; hourly to monitor and manage my&#xA;kubernetes cluster.&lt;/p&gt;&#xA;&lt;h2 id=&#34;are-they-worth-the-effort&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Are they worth the effort??&lt;/span&gt; &lt;a href=&#34;#are-they-worth-the-effort&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;As awesome as tui’s are, they are more effort to build, and less automatable.&#xA;I feel like the first stage into automation of a project really needs to be a&#xA;good cli, and this is often good enough for the project and I move on.&lt;/p&gt;&#xA;&lt;h2 id=&#34;m9a-em-nine-ah&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;m9a (em - nine - ah)&lt;/span&gt; &lt;a href=&#34;#m9a-em-nine-ah&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;inspired by k9s&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Like I said I really like k9s and use it all the time, It really makes running&#xA;kubectl commands a breeze and much less verbose.  I don’t know how useful this&#xA;will be, but as a learning exercise I am working on a k9s experience for my&#xA;blog generator &lt;a class=&#34;wikilink&#34; data-date=&#34;2024-05-30&#34; data-description=&#34;This post is a work in progress.&#34; data-title=&#34;markata&#34; href=&#34;/markata/&#34; data-preview=&#34;This post is a work in progress.&#34;&gt;markata&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/53671f5a-acc5-4d17-aa2d-2e9ac6db5674.webm&#34; class=&#34;glightbox-link&#34; aria-label=&#34;m9a-1-trimmed.webm&#34;&gt;&lt;video autoplay loop muted playsinline controls preload=&#34;metadata&#34; class=&#34;md-video&#34; style=&#34;margin-inline:auto&#34; poster=&#34;https://dropper.waylonwalker.com/api/file/53671f5a-acc5-4d17-aa2d-2e9ac6db5674.webp?h=675&amp;w=1200&#34;&gt;&lt;source src=&#34;https://dropper.waylonwalker.com/api/file/53671f5a-acc5-4d17-aa2d-2e9ac6db5674.webm&#34; type=&#34;video/webm&#34;&gt;m9a-1-trimmed.webm&lt;/video&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;learning&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Learning&lt;/span&gt; &lt;a href=&#34;#learning&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;So far this is just for learning and not quite the most useful thing, I am not&#xA;sure if there is a way to do it, but I am interested in the idea of some sort&#xA;of framework (maybe just widgets) that can more easily turn pydantic objects&#xA;into this kind of tui.  I don’t quite know how it would work, or if it could&#xA;work, for now just exploring the idea, and I think I hit a fairly crude clone&#xA;of k9s so far.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Markata list posts by year</title>
    <id>https://waylonwalker.com/markata-list-posts-by-year/</id>
    <updated>2025-05-01T22:35:47Z</updated>
    <published>2025-05-01T22:35:47Z</published>
    <link href="https://waylonwalker.com/markata-list-posts-by-year/" rel="alternate" type="text/html"></link>
    <summary type="text">I was looking back at my analytics page today and wondered what were my posts about back at the beginning. My blog is managed by markata so I looked at a few...</summary>
    <content type="html">&lt;p&gt;I was looking back at my &lt;a class=&#34;wikilink&#34; data-date=&#34;2025-01-22&#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-title=&#34;analytics&#34; href=&#34;/analytics/&#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 today and wondered what were my&#xA;posts about back at the beginning.  My blog is managed by &lt;a class=&#34;wikilink&#34; data-date=&#34;2024-05-30&#34; data-description=&#34;This post is a work in progress.&#34; data-title=&#34;markata&#34; href=&#34;/markata/&#34; data-preview=&#34;This post is a work in progress.&#34;&gt;markata&lt;/a&gt; so I&#xA;looked at a few ways you could pull those posts up.  Turns out it’s pretty&#xA;simple to do, use the markata map with a filter.&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;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;markata&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&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;&#xA;&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;m&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;map&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;title, slug, date&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;filter&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;date.year==2016&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sort&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;date&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;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;the filter is python eval that should evaluate to a boolean, all of the&#xA;attributes of the post are available to filter on.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;result&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Result&lt;/span&gt; &lt;a href=&#34;#result&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&#xA;&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;s1&#34;&gt;&amp;#39;⭐ jupyterlab jupyterlab&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;jupyterlab-jupyterlab&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#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;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2016&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)),&lt;/span&gt;&#xA;&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;s1&#34;&gt;&amp;#39;⭐ nickhould tidy-data-python&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;nickhould-tidy-data-python&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#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;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2016&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;9&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)),&lt;/span&gt;&#xA;&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;s1&#34;&gt;&amp;#39;⭐ mikeckennedy write-pythonic-code-demos&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;s1&#34;&gt;&amp;#39;mikeckennedy-write-pythonic-code-demos&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;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;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2016&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;22&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s1&#34;&gt;&amp;#39;⭐ mikeckennedy write-pythonic-code-for-better-data-science-webcast&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;s1&#34;&gt;&amp;#39;mikeckennedy-write-pythonic-code-for-better-data-science-webcast&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;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;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2016&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;22&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&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;s1&#34;&gt;&amp;#39;⭐ rajshah4 dlgroup&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;rajshah4-dlgroup&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#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;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2016&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)),&lt;/span&gt;&#xA;&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;s1&#34;&gt;&amp;#39;⭐ pandas-dev pandas&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;pandas-dev-pandas&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#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;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2016&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;10&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;p&#34;&gt;))&lt;/span&gt;&#xA;&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;You could use the &lt;code&gt;list&lt;/code&gt; command as well right within your shell and the same&#xA;map and filters work.&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;o&#34;&gt;[&lt;/span&gt;devtainer-0.1.3&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; ❯ markata list --map title --filter&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;date.year==2016&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;o&#34;&gt;[&lt;/span&gt;22:35:06&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; 2088/2145 posts skipped                                                                       skip.py:36&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           57/2145 posts not skipped                                                                     skip.py:37&#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;⭐ pandas-dev pandas&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;⭐ rajshah4 dlgroup&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;⭐ mikeckennedy write-pythonic-code-for-better-data-science-webcast&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;⭐ mikeckennedy write-pythonic-code-demos&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;⭐ nickhould tidy-data-python&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;⭐ jupyterlab jupyterlab&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You could also do it with jin right inside of a markdown post using the&#xA;&lt;a href=&#34;https://markata.dev/markata/plugins/jinja-md/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/markata.dev.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/markata.dev.ico&#34; class=&#34;has-avatar has-avatar-before&#34;&gt;jinja_md&lt;/a&gt; plugin.&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;{% for post in core.Filter(&amp;#34;published==true and date!=nil&amp;#34;) %}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{% if post.Date.Year() == 2016 %}&#xA;&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; [&lt;span class=&#34;nt&#34;&gt;{{ post.Title }}&lt;/span&gt;](&lt;span class=&#34;na&#34;&gt;{{ post.Href }}&lt;/span&gt;) - {{ post.Date.Format(&amp;#34;2006-01-02&amp;#34;) }}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{% endif %}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{% endfor %}&#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;You do have to &lt;code&gt;jinja: true&lt;/code&gt; in the frontmatter of the post.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;result-1&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Result&lt;/span&gt; &lt;a href=&#34;#result-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;The snippet lists each published post dated 2016.  I keep those posts in the&#xA;[[ archive ]].&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>markata 0.8.0</title>
    <id>https://waylonwalker.com/markata-0-8-0/</id>
    <updated>2025-01-31T20:17:00Z</updated>
    <published>2025-01-31T20:17:00Z</published>
    <link href="https://waylonwalker.com/markata-0-8-0/" rel="alternate" type="text/html"></link>
    <summary type="text">I realize that I never did a post on markata 0.8.0, so here it is. 0.8.0 was released on Jan 2, 2024, just over a year ago at this point. This was the...</summary>
    <content type="html">&lt;p&gt;I realize that I never did a post on markata  0.8.0, so here it is. 0.8.0 was&#xA;released on Jan 2, 2024, just over a year ago at this point.  This was the&#xA;release that we got pydantic support, and multi feeds.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://dropper.waylonwalker.com/file/76e6f022-360f-4566-9b35-a06cecd48738.png&#34; class=&#34;glightbox-link&#34; aria-label=&#34;screenshot-2025-02-01T02-37-59-690Z.png&#34;&gt;&lt;img src=&#34;https://dropper.waylonwalker.com/file/76e6f022-360f-4566-9b35-a06cecd48738.png&#34; alt=&#34;screenshot-2025-02-01T02-37-59-690Z.png&#34; class=&#34;more-cinematic glightbox&#34; data-glightbox=&#34;description: screenshot-2025-02-01T02-37-59-690Z.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;pydantic-support-was-kinda-big&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Pydantic Support Was kinda big&lt;/span&gt; &lt;a href=&#34;#pydantic-support-was-kinda-big&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Markata is leaning on pydantic for configuration and Post models.  These&#xA;models are filled with validators such that you can give it an empty markdown&#xA;post and it will figure out some pretty sane default values for the&#xA;frontmatter. From there you can progressively enhance your post with more&#xA;information like title, date, tags, slug, description.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;validators are awesome!!&lt;/strong&gt; for instance I don’t set the description on many&#xA;of my posts by hand, I let the auto_description grab the first bit of text&#xA;from the post most of the time.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;multi-feeds&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Multi Feeds&lt;/span&gt; &lt;a href=&#34;#multi-feeds&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Markata==0.8.1 brought multiple feeds into the mix, and started to take place&#xA;of RSS and sitemap.  Feeds are a list of posts that are configured with a slug,&#xA;filter, sort, reverse, description, and a template.  These feeds then become&#xA;objects you can use to access posts, as well 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; data-hover-title=&#34;Html&#34;&gt;html&lt;/a&gt; pages, RSS feeds and&#xA;sitemaps.&lt;/p&gt;&#xA;&lt;h2 id=&#34;jinja-templates&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Jinja Templates&lt;/span&gt; &lt;a href=&#34;#jinja-templates&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The final major change within this series is the change out from string&#xA;templates to proper jinja templates with partial templates that you can&#xA;include.  This has made maintaining templates much easier, as well as the&#xA;ability to customize.  Markata will load templates from both your local&#xA;templates directory then from its built in templates directory if it does not&#xA;find a template locally.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;feeds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;slug&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;python&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;nx&#34;&gt;filter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;date&amp;lt;=today and &amp;#39;python&amp;#39; in str(tags).lower()&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;sort&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;date&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;reverse&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;description&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;A feed of all my python posts&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://waylonwalker.com/python/&#34;&gt;https://waylonwalker.com/python/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://waylonwalker.com/python/rss.xml&#34;&gt;https://waylonwalker.com/python/rss.xml&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://waylonwalker.com/python/sitemap.xml&#34;&gt;https://waylonwalker.com/python/sitemap.xml&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://waylonwalker.com/python/partial/&#34;&gt;https://waylonwalker.com/python/partial/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr/&gt;&#xA;&lt;h2 id=&#34;directly-from-the-release-notes&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Directly from the release notes&lt;/span&gt; &lt;a href=&#34;#directly-from-the-release-notes&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The rest of the post is details directly from the release notes.&lt;/p&gt;&#xA;&lt;h2 id=&#34;0-8-2&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;0.8.2&lt;/span&gt; &lt;a href=&#34;#0-8-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Fix: markata installs setuptools required by one dependency&lt;/li&gt;&#xA;&lt;li&gt;Fix: cleanup cli output&lt;/li&gt;&#xA;&lt;li&gt;Fix: speed up cli startup with some lazy imports&lt;/li&gt;&#xA;&lt;li&gt;Fix: all cache.adds were replaced with cache.set&lt;/li&gt;&#xA;&lt;li&gt;Fix: Updated to new typer format requiring name=&lt;/li&gt;&#xA;&lt;li&gt;Fix: teardown only runs if the build process was started, i.e. some cli’s&#xA;will not need to teardown&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;0-8-1&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;0.8.1&lt;/span&gt; &lt;a href=&#34;#0-8-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;feeds-have-partials&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Feeds have partials&lt;/span&gt; &lt;a href=&#34;#feeds-have-partials&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;code&gt;feeds&lt;/code&gt; plugin now has configurable &lt;code&gt;partial_template&lt;/code&gt; that can be used to&#xA;render only the inside of the feeds page.  This is indented to allow you to&#xA;load small feeds into a page with &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; data-hover-title=&#34;Htmx&#34;&gt;htmx&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;better-jinja-templates&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Better Jinja Templates&lt;/span&gt; &lt;a href=&#34;#better-jinja-templates&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Markata now fully supports jinja templates with a loader that will load from&#xA;your templates directory, the markata built-in templates, and from a&#xA;dynamically generated templates directory in your .markata.cache directory.&lt;/p&gt;&#xA;&lt;h4 id=&#34;cli&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;cli&lt;/span&gt; &lt;a href=&#34;#cli&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;p&gt;You can list out your templates and configuration with the following command&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;markata templates show&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;variables&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Variables&lt;/span&gt; &lt;a href=&#34;#variables&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;p&gt;The following variables are available within jinja templates for post&#xA;templates.  This is now consistent across all three built in plugins that&#xA;render jinja templates.&lt;/p&gt;&#xA;&lt;h5 id=&#34;post_template&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;post_template&lt;/span&gt;&lt;/h5&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;__version__&lt;/code&gt; - the version of markata&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;markata&lt;/code&gt; - the markata instance&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;config&lt;/code&gt; - the markata config&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;body&lt;/code&gt; - the body of the post&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;post&lt;/code&gt; - the current post object&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h5 id=&#34;feeds&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;feeds&lt;/span&gt;&lt;/h5&gt;&#xA;&lt;p&gt;Similarly from within rendering feeds.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;__version__&lt;/code&gt; - the version of markata&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;markata&lt;/code&gt; - the markata instance&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;config&lt;/code&gt; - the markata config&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;posts&lt;/code&gt; - the list of posts&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;post&lt;/code&gt; - a pseudo post object with title, slug, description, and date for template consistency&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;feed&lt;/code&gt; - the current feed object&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h5 id=&#34;jinja_md&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;jinja_md&lt;/span&gt;&lt;/h5&gt;&#xA;&lt;p&gt;Similar to posts from within jinja_md to render a markdown post as a template.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;__version__&lt;/code&gt; - the version of markata&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;markata&lt;/code&gt; - the markata instance&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;body&lt;/code&gt; - the body of the post&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;config&lt;/code&gt; - the markata config&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;post&lt;/code&gt; - the current post object&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;feeds-cli&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Feeds cli&lt;/span&gt; &lt;a href=&#34;#feeds-cli&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;p&gt;The feeds cli will help show which templates each feed will be using.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;❯ markata feeds show&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                                          Feeds &lt;span class=&#34;m&#34;&gt;6&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;┃            Feed ┃ posts ┃ config                                                        ┃&#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;│ project_gallery │ &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;     │ DEFAULT_TITLE: All Posts                                      │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ title: Project Gallery                                        │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ slug: project-gallery                                         │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ name: project_gallery                                         │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ filter: &lt;span class=&#34;s1&#34;&gt;&amp;#39;project-gallery&amp;#39;&lt;/span&gt; in str&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;path&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;│                 │       │ sort: title                                                   │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ reverse: False                                                │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ rss: True                                                     │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ sitemap: True                                                 │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ card_template: card.html                                      │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ template: feed.html                                           │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ rss_template: rss.xml                                         │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ sitemap_template: sitemap.xml                                 │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ xsl_template: rss.xsl                                         │&#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;│            docs │ &lt;span class=&#34;m&#34;&gt;10&lt;/span&gt;    │ DEFAULT_TITLE: All Posts                                      │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ title: Documentation                                          │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ slug: docs                                                    │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ name: docs                                                    │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ filter: &lt;span class=&#34;s2&#34;&gt;&amp;#34;markata&amp;#34;&lt;/span&gt; not in slug and &lt;span class=&#34;s2&#34;&gt;&amp;#34;tests&amp;#34;&lt;/span&gt; not in slug and ... │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ sort: slug                                                    │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ reverse: False                                                │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ rss: True                                                     │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ sitemap: True                                                 │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ card_template: card.html                                      │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ template: feed.html                                           │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ rss_template: rss.xml                                         │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ sitemap_template: sitemap.xml                                 │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ xsl_template: rss.xsl                                         │&#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;│         autodoc │ &lt;span class=&#34;m&#34;&gt;17&lt;/span&gt;    │ DEFAULT_TITLE: All Posts                                      │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ title: AutoDoc Python Modules.                                │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ slug: autodoc                                                 │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ name: autodoc                                                 │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│                 │       │ filter: &lt;span class=&#34;s2&#34;&gt;&amp;#34;markata&amp;#34;&lt;/span&gt; in slug and &lt;span class=&#34;s2&#34;&gt;&amp;#34;plugin&amp;#34;&lt;/span&gt; not in slug and &lt;span class=&#34;s2&#34;&gt;&amp;#34;te... │&#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;│                 │       │ sort: slug                                                    │&#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;│                 │       │ reverse: 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;│                 │       │ rss: True                                                     │&#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;│                 │       │ sitemap: True                                                 │&#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;│                 │       │ card_template: card.html                                      │&#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;│                 │       │ template: feed.html                                           │&#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;│                 │       │ rss_template: rss.xml                                         │&#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;│                 │       │ sitemap_template: sitemap.xml                                 │&#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;│                 │       │ xsl_template: rss.xsl                                         │&#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;│             all │ 73    │ DEFAULT_TITLE: All Posts                                      │&#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: All Markata Modules                                    │&#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;│                 │       │ slug: all                                                     │&#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;│                 │       │ name: all                                                     │&#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;│                 │       │ filter: True                                                  │&#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;│                 │       │ sort: date                                                    │&#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;│                 │       │ reverse: 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;│                 │       │ rss: True                                                     │&#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;│                 │       │ sitemap: True                                                 │&#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;│                 │       │ card_template: card.html                                      │&#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;│                 │       │ template: feed.html                                           │&#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;│                 │       │ rss_template: rss.xml                                         │&#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;│                 │       │ sitemap_template: sitemap.xml                                 │&#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;│                 │       │ xsl_template: rss.xsl                                         │&#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;│    core_modules │ 17    │ DEFAULT_TITLE: All Posts                                      │&#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: Markata Core Modules                                   │&#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;│                 │       │ slug: core_modules                                            │&#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;│                 │       │ name: core_modules                                            │&#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;│                 │       │ filter: &amp;#39;plugin&amp;#39; not in slug and &amp;#39;test&amp;#39; not in slug and ti... │&#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;│                 │       │ sort: date                                                    │&#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;│                 │       │ reverse: 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;│                 │       │ rss: True                                                     │&#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;│                 │       │ sitemap: True                                                 │&#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;│                 │       │ card_template: card.html                                      │&#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;│                 │       │ template: feed.html                                           │&#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;│                 │       │ rss_template: rss.xml                                         │&#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;│                 │       │ sitemap_template: sitemap.xml                                 │&#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;│                 │       │ xsl_template: rss.xsl                                         │&#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;│         plugins │ 42    │ DEFAULT_TITLE: All Posts                                      │&#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: Markata Plugins                                        │&#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;│                 │       │ slug: plugins                                                 │&#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;│                 │       │ name: plugins                                                 │&#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;│                 │       │ filter: &amp;#39;plugin&amp;#39; in slug and &amp;#39;test&amp;#39; not in slug               │&#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;│                 │       │ sort: date                                                    │&#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;│                 │       │ reverse: 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;│                 │       │ rss: True                                                     │&#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;│                 │       │ sitemap: True                                                 │&#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;│                 │       │ card_template: card.html                                      │&#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;│                 │       │ template: feed.html                                           │&#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;│                 │       │ rss_template: rss.xml                                         │&#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;│                 │       │ sitemap_template: sitemap.xml                                 │&#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;│                 │       │ xsl_template: rss.xsl                                         │&#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;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;0-8-0&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;0.8.0&lt;/span&gt; &lt;a href=&#34;#0-8-0&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;pydantic support&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;pydantic-support&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Pydantic Support&lt;/span&gt; &lt;a href=&#34;#pydantic-support&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Now plugins are configured through a pydantic Config object.&lt;/p&gt;&#xA;&lt;h3 id=&#34;breaking-changes&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;breaking changes&lt;/span&gt; &lt;a href=&#34;#breaking-changes&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;There are a number of breaking changes going into 0.8.0. Use caution when&#xA;upgrading.&lt;/p&gt;&#xA;&lt;h4 id=&#34;glob-config-is-now-under-markata-glob&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;glob config is now under markata.glob&lt;/span&gt; &lt;a href=&#34;#glob-config-is-now-under-markata-glob&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h4&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;gd&#34;&gt;- [markata]&#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;gd&#34;&gt;- glob_patterns = &amp;#34;pages/**/*.md&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;gi&#34;&gt;+ [markata.glob]&#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;gi&#34;&gt;+ glob_patterns = &amp;#34;pages/**/*.md&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;feeds-are-now-a-list&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Feeds are now a list&lt;/span&gt; &lt;a href=&#34;#feeds-are-now-a-list&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;p&gt;Feeds are now a list of Objects within the configuration that you choose from&#xA;whether its toml or yaml.  Also templates_dir is now configurable, and once you&#xA;have a templates dir it is better to specify templates by name relative to your&#xA;templates_dir.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&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;templates_dir&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;pages/templates&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;feeds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;published&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&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;template&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;archive_template.html&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;card_template&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;feed_card.html&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;filter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;date&amp;lt;=today and templateKey in [&amp;#39;blog-post&amp;#39;, &amp;#39;til&amp;#39;] and status.lower()==&amp;#39;published&amp;#39;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;sort&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;date&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;old&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;feeds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;published&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt;&#xA;&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;template&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;pages/templates/archive_template.html&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;card_template&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;pages/templates/feed_card.html&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;filter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;date&amp;lt;=today and templateKey in [&amp;#39;blog-post&amp;#39;, &amp;#39;til&amp;#39;] and status.lower()==&amp;#39;published&amp;#39;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;sort&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;date&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;new&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;markata-summary-filter_count-is-now-a-list&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;markata.summary.filter_count is now a list&lt;/span&gt; &lt;a href=&#34;#markata-summary-filter_count-is-now-a-list&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;The old way was to set up a dict, where the keys were the name, now its a list&#xA;of Objects with an explicit name field.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;summary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;filter_count&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;drafts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;filter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;published == &amp;#39;False&amp;#39;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;color&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;red&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;Old&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;summary&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;filter_count&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt;&#xA;&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;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;drafts&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;nx&#34;&gt;filter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;published == &amp;#39;False&amp;#39;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;color&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;red&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&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>markata search</title>
    <id>https://waylonwalker.com/markata-search/</id>
    <updated>2025-01-30T20:21:36Z</updated>
    <published>2025-01-30T20:21:36Z</published>
    <link href="https://waylonwalker.com/markata-search/" rel="alternate" type="text/html"></link>
    <summary type="text">A side effect of markata-didyoumean is that we are able to implement some rudimentary search based on slug, title, tags, and description.</summary>
    <content type="html">&lt;p&gt;A side effect of &lt;a class=&#34;wikilink&#34; data-date=&#34;2025-01-29&#34; data-description=&#34;Coming in Markata 0.9.1 is far better documentation. i.e. Documentation that actually exists for everything. As part of poking around I realized that I often...&#34; data-title=&#34;Markata DidYouMean&#34; href=&#34;/markata-didyoumean/&#34; data-preview=&#34;Coming in Markata 0.9.1 is far better documentation. i.e. Documentation that actually exists for everything. As part of poking around I realized that I often...&#34;&gt;Markata DidYouMean&lt;/a&gt; is that we are able to implement some&#xA;rudimentary search based on slug, title, tags, and description.&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; aria-label=&#34;a stable diffusion generated image of an astronaut working in a neon pink lab with beakers and papers all over, he is reading through pages.&#34;&gt;&lt;img src=&#34;https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png&#34; alt=&#34;a stable diffusion generated image of an astronaut working in a neon pink lab with beakers and papers all over, he is reading through pages.&#34; class=&#34;more-cinematic glightbox&#34; data-glightbox=&#34;description: a stable diffusion generated image of an astronaut working in a neon pink lab with beakers and papers all over, he is reading through pages.&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I made a video of the early work on using this side effect to search for content on markata.dev.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/fd677374-5ef1-41c7-8845-6de0e10f224b.mp4&#34; class=&#34;glightbox-link&#34; aria-label=&#34;Replay markata-search-1.mp4&#34;&gt;&lt;video autoplay loop muted playsinline controls preload=&#34;metadata&#34; class=&#34;md-video&#34; style=&#34;margin-inline:auto&#34; poster=&#34;https://dropper.waylonwalker.com/api/file/fd677374-5ef1-41c7-8845-6de0e10f224b.webp?h=675&amp;w=1200&#34;&gt;&lt;source src=&#34;https://dropper.waylonwalker.com/api/file/fd677374-5ef1-41c7-8845-6de0e10f224b.mp4&#34; type=&#34;video/mp4&#34;&gt;Replay markata-search-1.mp4&lt;/video&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;This was first implemented to solve 404 pages giving users a way to try to find&#xA;the page that they tried to access.  But it turned out to be a decent way to&#xA;search through the docs.&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 Reader Project</title>
    <id>https://waylonwalker.com/my-reader/</id>
    <updated>2024-07-07T10:24:28Z</updated>
    <published>2024-07-07T10:24:28Z</published>
    <link href="https://waylonwalker.com/my-reader/" rel="alternate" type="text/html"></link>
    <summary type="text">In 2024 I built my own reader after years of being bitter about google killing reader more than a decade prior.</summary>
    <content type="html">&lt;p&gt;In 2024 I built my own reader after years of being bitter about google killing&#xA;reader more than a decade prior.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition seealso&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Seealso&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;All the way back in 2020 I made a post on what I wanted to build into my own&#xA;reader.  It went long forgotten until I tried to make this post and slugs&#xA;clashed. &lt;a class=&#34;wikilink&#34; data-date=&#34;2020-07-12&#34; data-description=&#34;Notes about my reader idea&#34; data-title=&#34;Reader-2020&#34; href=&#34;/reader-2020/&#34; data-preview=&#34;Notes about my reader idea&#34;&gt;Reader-2020&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;built-on-markata&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Built on markata&lt;/span&gt; &lt;a href=&#34;#built-on-markata&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I built it on top of my own static site generator &lt;a class=&#34;wikilink&#34; data-date=&#34;2024-05-30&#34; data-description=&#34;This post is a work in progress.&#34; data-title=&#34;markata&#34; href=&#34;/markata/&#34; data-preview=&#34;This post is a work in progress.&#34;&gt;markata&lt;/a&gt;, feedparser (&lt;a class=&#34;wikilink&#34; data-date=&#34;2020-07-13&#34; data-description=&#34;I am looking into a way to replace my google reader experience that I had back in 2013 before google took it from us. I am starting by learning how to parse...&#34; data-title=&#34;🐍 Parsing RSS feeds with Python&#34; href=&#34;/parsing-rss-python/&#34; data-preview=&#34;I am looking into a way to replace my google reader experience that I had back in 2013 before google took it from us. I am starting by learning how to parse...&#34;&gt;🐍 Parsing RSS feeds with Python&lt;/a&gt;), some jinja templating, and tailwind.&lt;/p&gt;&#xA;&lt;p&gt;After putting all the work I have into markata, it makes projects like this&#xA;fairly easy to build out with just a custom loader to load new posts in.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>I’ve added htmx to my blog</title>
    <id>https://waylonwalker.com/htmx-on-my-blog/</id>
    <updated>2024-06-15T20:50:12Z</updated>
    <published>2024-06-15T20:50:12Z</published>
    <link href="https://waylonwalker.com/htmx-on-my-blog/" rel="alternate" type="text/html"></link>
    <summary type="text">I&#39;ve added htmx to my blog. It&#39;s extra bloatware that I long avoided, but it&#39;s so damn convenient.</summary>
    <content type="html">&lt;p&gt;I’ve added &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; data-hover-title=&#34;Htmx&#34;&gt;htmx&lt;/a&gt; to my blog.  It’s extra bloatware that I long avoided, but it’s&#xA;so damn convenient.&lt;/p&gt;&#xA;&lt;p&gt;Ok so it’s not bloatware, but it’s not the theme I was going for.  I wanted my&#xA;site to be as lightweight as possible.  I had at one point gone too far and had&#xA;Mb’s of react that did not provide any value for the end user.&lt;/p&gt;&#xA;&lt;div hx-get=&#34;/recent-thoughts/partial&#34; hx-trigger=&#34;load&#34;&gt;&lt;/div&gt;&#xA;&lt;div hx-get=&#34;/recently-written/partial&#34; hx-trigger=&#34;load&#34;&gt;&lt;/div&gt;&#xA;&lt;h2 id=&#34;can-it-be-done-with-jinja&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;can it be done with jinja&lt;/span&gt; &lt;a href=&#34;#can-it-be-done-with-jinja&#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;x&#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;cp&#34;&gt;{%&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;feed&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;markata.feeds.recent_thoughts&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;%}&lt;/span&gt;&lt;span class=&#34;x&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;{%&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;include&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;feed_sm_partial.html&amp;#39;&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;%}&lt;/span&gt;&lt;span class=&#34;x&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;{%&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;endwith&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;%}&lt;/span&gt;&lt;span class=&#34;x&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;x&#34;&gt;&amp;lt;/div&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;feed-partials&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Feed Partials&lt;/span&gt; &lt;a href=&#34;#feed-partials&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a class=&#34;wikilink&#34; data-date=&#34;2024-05-30&#34; data-description=&#34;This post is a work in progress.&#34; data-title=&#34;markata&#34; href=&#34;/markata/&#34; data-preview=&#34;This post is a work in progress.&#34;&gt;markata&lt;/a&gt; pre-release 0.8.1.dev10 has been released with support for feed&#xA;partials on &lt;a href=&#34;https://pypi.org/project/markata/0.8.1.dev10/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/pypi.org.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/pypi.org.ico&#34; class=&#34;has-avatar has-avatar-before&#34;&gt;pypi&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;it-s-now-part-of-my-blog&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;It’s now part of my blog&lt;/span&gt; &lt;a href=&#34;#it-s-now-part-of-my-blog&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Commit&#xA;&lt;a href=&#34;https://github.com/WaylonWalker/waylonwalker.com/commit/aa23361e8606b62f7e4ca1a9305e6975fcdbc088&#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;aa233&lt;/a&gt;&#xA;added support for recent posts on each page to be loaded off of this partial.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Latest Page in Markata</title>
    <id>https://waylonwalker.com/latest-page-in-markata/</id>
    <updated>2024-06-01T21:01:26Z</updated>
    <published>2024-06-01T21:01:26Z</published>
    <link href="https://waylonwalker.com/latest-page-in-markata/" rel="alternate" type="text/html"></link>
    <summary type="text">I just implemented a latest blog post link in Markata by asking for the first post slug from the blog feed. The implementation uses the jinja_md plugin to...</summary>
    <content type="html">&lt;p&gt;I just implemented a latest blog post link in Markata by asking for the first&#xA;post slug from the blog feed.  The implementation uses the jinja_md plugin to&#xA;render jinja against the markdown and a &lt;meta/&gt; tag to redirect.&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;My latest blog post is [[ {{ markata.feeds.blog.posts[0].slug }} ]].  Click the&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;link if you are not automatically redirected.&#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;&amp;lt;meta http-equiv=&amp;#34;Refresh&amp;#34; content=&amp;#34;0; url=&amp;#39;/{{ markata.feeds.blog.posts[0].slug }}&amp;#39;&amp;#34; /&amp;gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;setting-up-the-feed&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Setting up the feed&lt;/span&gt; &lt;a href=&#34;#setting-up-the-feed&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Feeds are setup in &lt;code&gt;markata.toml&lt;/code&gt; configuration.  They provide a handy way to&#xA;create an &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; data-hover-title=&#34;Html&#34;&gt;html&lt;/a&gt; feed, rss feed, and quickly reference a filtered set of posts&#xA;like this.&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;c&#34;&gt;# you will need to enable the jinja_md plugin along with the defaults&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&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;hooks&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;s2&#34;&gt;&amp;#34;markata.plugins.jinja_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;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;default&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# set up the blog feed&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;feeds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;slug&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;blog&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;nx&#34;&gt;template&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;feed.html&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;filter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;date&amp;lt;=today and templateKey in [&amp;#39;blog-post&amp;#39;] and published&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;sort&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;date&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;reverse&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For more information on markata check out the full &lt;a class=&#34;wikilink&#34; data-date=&#34;2024-05-30&#34; data-description=&#34;This post is a work in progress.&#34; data-title=&#34;markata&#34; href=&#34;/markata/&#34; data-preview=&#34;This post is a work in progress.&#34;&gt;markata&lt;/a&gt; post.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>markata</title>
    <id>https://waylonwalker.com/markata/</id>
    <updated>2024-05-30T13:45:54Z</updated>
    <published>2024-05-30T13:45:54Z</published>
    <link href="https://waylonwalker.com/markata/" rel="alternate" type="text/html"></link>
    <summary type="text">This post is a work in progress.</summary>
    <content type="html">&lt;p&gt;This post is a work in progress.&lt;/p&gt;&#xA;&lt;p&gt;Markata is the static site generator that I created to build my website &lt;a class=&#34;wikilink&#34; data-date=&#34;2024-05-31&#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-title=&#34;about this site&#34; href=&#34;/about-this-site/&#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;.  I built it for me and I enjoy using it.  I know everying&#xA;it can do and I can extend it to do more easily.  I have set it up for some&#xA;friends to also use it and am proud that it helps them publish their content.&lt;/p&gt;&#xA;&lt;p&gt;It’s a meme to create your own static site generator to make your website.  Yes&#xA;its funny, I don’t recommend it if your not ready for the level of work that&#xA;comes with it, but at the end of the day it’s very rewarding and a great way to&#xA;learn.&lt;/p&gt;&#xA;&lt;h2 id=&#34;static-sites-were-all-the-rage&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Static Sites were all the rage&lt;/span&gt; &lt;a href=&#34;#static-sites-were-all-the-rage&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;JAMStack was 🔥&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Gatsby and Next.js hit the scene as the next generation of static site builders&#xA;and were getting big around the time I started building my site in 2017.  They&#xA;were based on react.  I dove into react and learned it enough to build my&#xA;website, but I really lacked the depth of knowledge in the js ecosystem to&#xA;really work on it effectively.  For instance when it got slow, it was hard for&#xA;me to profile and find out why.  What I really wanted was my site written in&#xA;python, which I knew the ecosystem for very well, but I did not find the&#xA;existing site generators easy to extend to do the things I needed.  Naively I&#xA;thought it would be easier to just build my own than learn how to make one do&#xA;what I wanted it to.  Not invented here syndrome hitting hard.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;In their Defense&lt;/p&gt;&#xA;&lt;p&gt;I really lacked the depth of knowledge in the js ecosystem to really work on&#xA;it (gatsby) effectively.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;plugins-all-the-way-down&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Plugins all the way down&lt;/span&gt; &lt;a href=&#34;#plugins-all-the-way-down&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I started building this as I dove deeper into the &lt;a class=&#34;wikilink&#34; data-date=&#34;2019-11-02&#34; data-description=&#34;My Notes about using kedro&#34; data-title=&#34;Kedro&#34; href=&#34;/kedro/&#34; data-preview=&#34;My Notes about using kedro&#34;&gt;Kedro&lt;/a&gt; framework for Data&#xA;Engineering pipelines.  They use a plugin framework for allowing users to&#xA;extend it called pluggy.  I had a great experience extending kedro using pluggy&#xA;and wanted to build something with based on pluggy when I had started markata.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;wikilink&#34; data-date=&#34;2022-01-01&#34; data-description=&#34;Pluggy makes it so easy to allow users to modify the behavior of a framework without thier specific feature needing to be implemented in the framework itself.&#34; data-title=&#34;A Minimal Pluggy Example&#34; href=&#34;/pluggy-minimal-example/&#34; data-preview=&#34;Pluggy makes it so easy to allow users to modify the behavior of a framework without thier specific feature needing to be implemented in the framework itself.&#34;&gt;A Minimal Pluggy Example&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;more-posts&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;More Posts&lt;/span&gt; &lt;a href=&#34;#more-posts&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I have more posts about markata in the [[ tag/markata ]].&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Markata GitHub Pages</title>
    <id>https://waylonwalker.com/markata-github-pages/</id>
    <updated>2022-10-19T18:03:31Z</updated>
    <published>2022-10-19T18:03:31Z</published>
    <link href="https://waylonwalker.com/markata-github-pages/" rel="alternate" type="text/html"></link>
    <summary type="text">hugo puts it in the base url https://gohugo.io/getting-started/configuration/#baseurl * mkdocs uses a special cli build command...</summary>
    <content type="html">&lt;ul&gt;&#xA;&lt;li&gt;11ty &lt;a href=&#34;https://www.rockyourcode.com/how-to-deploy-eleventy-to-github-pages-with-github-actions/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.rockyourcode.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.rockyourcode.com.png&#34; class=&#34;has-avatar has-avatar-before&#34;&gt;https://www.rockyourcode.com/how-to-deploy-eleventy-to-github-pages-with-github-actions/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;hugo puts it in the base url &lt;a href=&#34;https://gohugo.io/getting-started/configuration/#baseurl&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/gohugo.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/gohugo.io.png&#34; class=&#34;has-avatar has-avatar-before&#34;&gt;https://gohugo.io/getting-started/configuration/#baseurl&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;mkdocs uses a special cli build command &lt;a href=&#34;https://squidfunk.github.io/mkdocs-material/publishing-your-site/#github-pages&#34;&gt;https://squidfunk.github.io/mkdocs-material/publishing-your-site/#github-pages&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>Markata Supports Jinja Plugins 0.5.0.dev2</title>
    <id>https://waylonwalker.com/markata-supports-jinja-plugins-0-5-0-dev2/</id>
    <updated>2022-10-11T14:34:35Z</updated>
    <published>2022-10-11T14:34:35Z</published>
    <link href="https://waylonwalker.com/markata-supports-jinja-plugins-0-5-0-dev2/" rel="alternate" type="text/html"></link>
    <summary type="text">Markata now allows you to create jinja extensions that will be loaded right in with nothing more than a .</summary>
    <content type="html">&lt;p&gt;Markata now allows you to create jinja extensions that will be loaded right in&#xA;with nothing more than a &lt;code&gt;pip install&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;from-the-changelog&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;From the Changelog&lt;/span&gt; &lt;a href=&#34;#from-the-changelog&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The entry for 0.5.0.dev2 from markata’s &lt;a href=&#34;https://markata.dev/changelog/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/markata.dev.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/markata.dev.ico&#34; class=&#34;has-avatar has-avatar-before&#34;&gt;changelog&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Created entrypoint hook allowing for users to extend marka with jinja&#xA;exensions #60 0.5.0.dev2&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://stable-diffusion.waylonwalker.com/000368.1808537114.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;“cybernetic soldier working on a rusting tape machine robot, cinematic lighting, detailed, cell shaded, 4 k, warm colours, concept art, by wlop, ilya kuvshinov, artgerm, krenz cushart, greg rutkowski, pixiv. cinematic dramatic atmosphere, sharp focus, volumetric lighting, cinematic lighting, studio quality” -s50 -W832 -H416 -C12.0 -Ak_lms -S1808537114&#34;&gt;&lt;img src=&#34;https://stable-diffusion.waylonwalker.com/000368.1808537114.webp&#34; alt=&#34;“cybernetic soldier working on a rusting tape machine robot, cinematic lighting, detailed, cell shaded, 4 k, warm colours, concept art, by wlop, ilya kuvshinov, artgerm, krenz cushart, greg rutkowski, pixiv. cinematic dramatic atmosphere, sharp focus, volumetric lighting, cinematic lighting, studio quality” -s50 -W832 -H416 -C12.0 -Ak_lms -S1808537114&#34; class=&#34;more-cinematic glightbox&#34; data-glightbox=&#34;description: “cybernetic soldier working on a rusting tape machine robot, cinematic lighting, detailed, cell shaded, 4 k, warm colours, concept art, by wlop, ilya kuvshinov, artgerm, krenz cushart, greg rutkowski, pixiv. cinematic dramatic atmosphere, sharp focus, volumetric lighting, cinematic lighting, studio quality” -s50 -W832 -H416 -C12.0 -Ak_lms -S1808537114&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;markata-gh&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;markata-gh&lt;/span&gt; &lt;a href=&#34;#markata-gh&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The first example that you can use right now is &lt;code&gt;markata-gh&lt;/code&gt;.  It will render&#xA;repos by GitHub topic and user using the gh cli, which is available in github&#xA;actions!&lt;/p&gt;&#xA;&lt;p&gt;Get it with a pip install&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;pip install markata-gh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Use it with some jinja in your markdown.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## Markata plugins&#xA;&lt;/span&gt;&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;It uses the logged in uer by default.&#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;{% gh_repo_list_topic &amp;#34;markata&amp;#34; %}&#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;You can more explicitly grab your username, and a topic.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{% gh_repo_list_topic &amp;#34;waylonwalker&amp;#34;, &amp;#34;personal-website&amp;#34; %}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;how-is-this-achieved&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;How is this achieved&lt;/span&gt; &lt;a href=&#34;#how-is-this-achieved&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The jinja extension details are for another post, but this is how &lt;code&gt;markata-gh&lt;/code&gt;&#xA;exposes itslef as a jinja extension.&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;GhRepoListTopic&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Extension&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;&#xA;&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;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gh_repo_list_topic&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;def&lt;/span&gt; &lt;span class=&#34;fm&#34;&gt;__init__&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;environment&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;&#xA;&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;super&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;fm&#34;&gt;__init__&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;environment&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&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;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;parse&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;parser&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;&#xA;&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;line_number&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;next&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stream&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;lineno&lt;/span&gt;&#xA;&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;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&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;n&#34;&gt;parser&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parse_tuple&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;items&lt;/span&gt;&#xA;&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;except&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;AttributeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&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;ne&#34;&gt;AttributeError&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&#xA;&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;Invalid Syntax gh_repo_list_topic expects &amp;lt;username&amp;gt;, or &amp;lt;username&amp;gt;,&amp;lt;topic&amp;gt; both must have the comma&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;)&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;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nodes&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CallBlock&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;call_method&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;run&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[],&lt;/span&gt; &lt;span class=&#34;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;set_lineno&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&#xA;&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;line_number&lt;/span&gt;&#xA;&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;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;run&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;username&lt;/span&gt;&lt;span class=&#34;o&#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; &lt;span class=&#34;n&#34;&gt;topic&lt;/span&gt;&lt;span class=&#34;o&#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; &lt;span class=&#34;n&#34;&gt;caller&lt;/span&gt;&lt;span class=&#34;o&#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;s2&#34;&gt;&amp;#34;get&amp;#39;s markdown to inject into 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;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;repo_md&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;username&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;username&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;topic&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;topic&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;figure&gt;&#xA;&lt;a href=&#34;https://stable-diffusion.waylonwalker.com/000368.2487720618.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;“cybernetic soldier working on a rusting tape machine robot, cinematic lighting, detailed, cell shaded, 4 k, warm colours, concept art, by wlop, ilya kuvshinov, artgerm, krenz cushart, greg rutkowski, pixiv. cinematic dramatic atmosphere, sharp focus, volumetric lighting, cinematic lighting, studio quality” -s50 -W832 -H416 -C12.0 -Ak_lms -S2487720618&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://stable-diffusion.waylonwalker.com/000368.2487720618.webp&#34; alt=&#34;“cybernetic soldier working on a rusting tape machine robot, cinematic lighting, detailed, cell shaded, 4 k, warm colours, concept art, by wlop, ilya kuvshinov, artgerm, krenz cushart, greg rutkowski, pixiv. cinematic dramatic atmosphere, sharp focus, volumetric lighting, cinematic lighting, studio quality” -s50 -W832 -H416 -C12.0 -Ak_lms -S2487720618 &#34; data-glightbox=&#34;description: “cybernetic soldier working on a rusting tape machine robot, cinematic lighting, detailed, cell shaded, 4 k, warm colours, concept art, by wlop, ilya kuvshinov, artgerm, krenz cushart, greg rutkowski, pixiv. cinematic dramatic atmosphere, sharp focus, volumetric lighting, cinematic lighting, studio quality” -s50 -W832 -H416 -C12.0 -Ak_lms -S2487720618&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;entrypoints&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Entrypoints&lt;/span&gt; &lt;a href=&#34;#entrypoints&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Then &lt;code&gt;markata-gh&lt;/code&gt; exposes itself as an extension through entrypoints.&lt;/p&gt;&#xA;&lt;h3 id=&#34;creating-entrypoints-in-pyproject-toml&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Creating entrypoints in pyproject.toml&lt;/span&gt; &lt;a href=&#34;#creating-entrypoints-in-pyproject-toml&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;If your project is using &lt;code&gt;pyproject.toml&lt;/code&gt; for packaging you can setup an&#xA;entrypoint as follows.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;project&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;entry-points&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;markata.jinja_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;&lt;span class=&#34;nx&#34;&gt;markta_gh&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;markata_gh.repo_list:GhRepoListTopic&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;creating-entrypoints-in-setup-py&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Creating entrypoints in setup.py&lt;/span&gt; &lt;a href=&#34;#creating-entrypoints-in-setup-py&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;If your project is using &lt;code&gt;setup.py&lt;/code&gt; for packaging you can setup an&#xA;entrypoint as follows.&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;setup&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&#xA;&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;n&#34;&gt;entry_points&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;markata.jinja_md&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;markta_gh&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;markata_gh.repo_list:GhRepoListTopic&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;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;/code&gt;&lt;/pre&gt;&lt;figure&gt;&#xA;&lt;a href=&#34;https://stable-diffusion.waylonwalker.com/000368.655826089.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;“cybernetic soldier working on a rusting tape machine robot, cinematic lighting, detailed, cell shaded, 4 k, warm colours, concept art, by wlop, ilya kuvshinov, artgerm, krenz cushart, greg rutkowski, pixiv. cinematic dramatic atmosphere, sharp focus, volumetric lighting, cinematic lighting, studio quality” -s50 -W832 -H416 -C12.0 -Ak_lms -S655826089&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://stable-diffusion.waylonwalker.com/000368.655826089.webp&#34; alt=&#34;“cybernetic soldier working on a rusting tape machine robot, cinematic lighting, detailed, cell shaded, 4 k, warm colours, concept art, by wlop, ilya kuvshinov, artgerm, krenz cushart, greg rutkowski, pixiv. cinematic dramatic atmosphere, sharp focus, volumetric lighting, cinematic lighting, studio quality” -s50 -W832 -H416 -C12.0 -Ak_lms -S655826089&#34; data-glightbox=&#34;description: “cybernetic soldier working on a rusting tape machine robot, cinematic lighting, detailed, cell shaded, 4 k, warm colours, concept art, by wlop, ilya kuvshinov, artgerm, krenz cushart, greg rutkowski, pixiv. cinematic dramatic atmosphere, sharp focus, volumetric lighting, cinematic lighting, studio quality” -s50 -W832 -H416 -C12.0 -Ak_lms -S655826089&#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>Markata now uses hatch</title>
    <id>https://waylonwalker.com/markata-now-uses-hatch/</id>
    <updated>2022-10-08T07:25:10Z</updated>
    <published>2022-10-08T07:25:10Z</published>
    <link href="https://waylonwalker.com/markata-now-uses-hatch/" rel="alternate" type="text/html"></link>
    <summary type="text">Markata now uses hatch as its build backend, and version bumping tool. , and are completely gone.</summary>
    <content type="html">&lt;p&gt;Markata now uses hatch as its build backend, and version bumping tool.&#xA;&lt;code&gt;setup.py&lt;/code&gt;, and &lt;code&gt;setup.cfg&lt;/code&gt; are completely gone.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://stable-diffusion.waylonwalker.com/000136.4048189038.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;“An astronaut working in a lab, there is a series of eggs ready to hatch baby snakes on the table, experiments running, beakers, test tubes, cyberpunk trending on artstation, neon lighting, volumetric lighting, pink lighting” -s50 -W800 -H450 -C7.5 -Ak_lms -S4048189038&#34;&gt;&lt;img src=&#34;https://stable-diffusion.waylonwalker.com/000136.4048189038.webp&#34; alt=&#34;“An astronaut working in a lab, there is a series of eggs ready to hatch baby snakes on the table, experiments running, beakers, test tubes, cyberpunk trending on artstation, neon lighting, volumetric lighting, pink lighting” -s50 -W800 -H450 -C7.5 -Ak_lms -S4048189038&#34; class=&#34;more-cinematic glightbox&#34; data-glightbox=&#34;description: “An astronaut working in a lab, there is a series of eggs ready to hatch baby snakes on the table, experiments running, beakers, test tubes, cyberpunk trending on artstation, neon lighting, volumetric lighting, pink lighting” -s50 -W800 -H450 -C7.5 -Ak_lms -S4048189038&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;0-5-0-is-big&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;0.5.0 is big&lt;/span&gt; &lt;a href=&#34;#0-5-0-is-big&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Markata 0.5.0 is now out, and it’s huge.  Even though it’s the backend of this&#xA;blog I don’t actually have that many posts directly about it.  I’ve used it a&#xA;bit for blog fuel in generic ways, like talking about pluggy and diskcache, but&#xA;very little have I even mentioned it.&lt;/p&gt;&#xA;&lt;p&gt;Over the last month I made a big push to get 0.5.0 out, which adds a whole&#xA;bunch of new configurability to &lt;code&gt;markata&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Here’s the &lt;a href=&#34;https://markata.dev/changelog/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/markata.dev.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/markata.dev.ico&#34; class=&#34;has-avatar has-avatar-before&#34;&gt;changelog&lt;/a&gt; entry.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Moved to PEP 517 build #59 0.5.0.dev1&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;my-personal-simple-ci-cd&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;My Personal Simple CI/CD&lt;/span&gt; &lt;a href=&#34;#my-personal-simple-ci-cd&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Before cutting all of my personal projects over to hatch.  The first thing I&#xA;did was to setup a solid github action,&#xA;&lt;a href=&#34;https://github.com/WaylonWalker/hatch-action&#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;hatch-action&lt;/a&gt;that I can resue.&lt;/p&gt;&#xA;&lt;p&gt;It automatically bumps versions, using pre-releases on all branches other than&#xA;main, with special branches for bumping major, minor, patch, dev, alha, beta,&#xA;and dev.&lt;/p&gt;&#xA;&lt;h2 id=&#34;hatch-new-init&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;hatch new –init&lt;/span&gt; &lt;a href=&#34;#hatch-new-init&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;To convert the project over to hatch, and get rid of setup.py/setup.cfg, I ran&#xA;&lt;code&gt;hatch new --init&lt;/code&gt;.  This automatically grabs all the metadata for the project&#xA;and makes a &lt;code&gt;pyproject.toml&lt;/code&gt; that has most of what I need.&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;hatch new --init&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I then manually moved over my isort config, put flake8 config into &lt;code&gt;.flake8&lt;/code&gt;,&#xA;and dropped setup.cfg.&lt;/p&gt;&#xA;&lt;h2 id=&#34;lint-test&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;lint-test&lt;/span&gt; &lt;a href=&#34;#lint-test&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Part of my hatch-action is to run a &lt;code&gt;before-command&lt;/code&gt;, for markata, this runs&#xA;all of my linting and testing in one hatch script called &lt;code&gt;lint-test&lt;/code&gt;.  If this&#xA;fails CI will fail and I can read the report in the logs, make a fix and&#xA;re-publish.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tool&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;hatch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;envs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;default&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;scripts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&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;cov&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;pytest --cov-report=term-missing --cov-config=pyproject.toml --cov=markata --cov=tests&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;no-cov&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;cov --no-cov&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;lint&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;flake8 markata&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;format&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;black --check markata&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;sort-imports&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;isort markata&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;build-docs&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;markata build&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;lint-test&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;s2&#34;&gt;&amp;#34;lint&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;format&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;seed-isort-config&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;sort-imports&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;cov&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;test-lint&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;lint-test&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;typical-branching-workflow&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Typical branching workflow&lt;/span&gt; &lt;a href=&#34;#typical-branching-workflow&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;with automatic versioning&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;My typical workflow is to work on features in their own branch where they do&#xA;not automatically version or publish, they keep the same version they were&#xA;branched off of.  Then I do a pr to develop, which will do a &lt;code&gt;minor,dev&lt;/code&gt; bump&#xA;and publish a pre-relese to pypi.&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;# starting with version 0.0.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Feature1 -- │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Feature2 -- ├── dev 0.1.0.dev1,2,3 ── main 0.1.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Feature3 -- │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I will let several features collect in develop before cutting a full relese&#xA;over to main.  This gives me time to make sure the solution is what makes the&#xA;most sense, I try to use it in a few projects, and generally its edges show,&#xA;and another pr is warranted to make the feature useful for more use cases.&#xA;After running and using these new releases in a few projects, I am confident&#xA;that its ready and release to main.&lt;/p&gt;&#xA;&lt;h3 id=&#34;managing-prs&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;managing prs&lt;/span&gt; &lt;a href=&#34;#managing-prs&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Doing PR’s with gh, probably deserves its own post but here are some helpful&#xA;commands.&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;gh pr create --base develop --fill&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh pr edit&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh pr diff &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; dunk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gh pr merge -ds&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;building-and-publishing&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Building and publishing&lt;/span&gt; &lt;a href=&#34;#building-and-publishing&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://stable-diffusion.waylonwalker.com/000221.3512493435.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;“An astronaut working in a lab, hacking on a computer terminal, htop is running, shallow depth of field beakers, test tubes, volumetric lighting, pink lighting, by victo ngai, killian eng vibrant colours, dynamic lighting, digital art” -s50 -W768 -H448 -C7.5 -Ak_lms -S3512493435&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://stable-diffusion.waylonwalker.com/000221.3512493435.webp&#34; alt=&#34;“An astronaut working in a lab, hacking on a computer terminal, htop is running, shallow depth of field beakers, test tubes, volumetric lighting, pink lighting, by victo ngai, killian eng vibrant colours, dynamic lighting, digital art” -s50 -W768 -H448 -C7.5 -Ak_lms -S3512493435&#34; data-glightbox=&#34;description: “An astronaut working in a lab, hacking on a computer terminal, htop is running, shallow depth of field beakers, test tubes, volumetric lighting, pink lighting, by victo ngai, killian eng vibrant colours, dynamic lighting, digital art” -s50 -W768 -H448 -C7.5 -Ak_lms -S3512493435&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;hatch makes building and publishing pretty straightforward.  It’s one command&#xA;inside my hatch-action to build and one to publish.  On each project that uses&#xA;my hatch-action I only need to give it a token that I get from PyPi.&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;env&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;HATCH_INDEX_USER&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;__token__&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;HATCH_INDEX_AUTH&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;${{ secrets.pypi_password }}&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;full-set-of-changes&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Full set of changes&lt;/span&gt; &lt;a href=&#34;#full-set-of-changes&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;If you want to see all of the details on how markata moved over to hatch, you can check out this diff.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/WaylonWalker/markata/compare/v0.4.0..v0.5.0.dev0&#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/markata/compare/v0.4.0..v0.5.0.dev0&lt;/a&gt;&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://stable-diffusion.waylonwalker.com/000224.2409791448.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;“An astronaut working in a lab, hacking on a computer terminal, htop is running, shallow depth of field beakers, test tubes, volumetric lighting, pink lighting, by victo ngai, killian eng vibrant colours, dynamic lighting, digital art” -s50 -W768 -H448 -C7.5 -Ak_lms -U 4.0 0.6 -S2409791448&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://stable-diffusion.waylonwalker.com/000224.2409791448.webp&#34; alt=&#34;“An astronaut working in a lab, hacking on a computer terminal, htop is running, shallow depth of field beakers, test tubes, volumetric lighting, pink lighting, by victo ngai, killian eng vibrant colours, dynamic lighting, digital art” -s50 -W768 -H448 -C7.5 -Ak_lms -U 4.0 0.6 -S2409791448 &#34; data-glightbox=&#34;description: “An astronaut working in a lab, hacking on a computer terminal, htop is running, shallow depth of field beakers, test tubes, volumetric lighting, pink lighting, by victo ngai, killian eng vibrant colours, dynamic lighting, digital art” -s50 -W768 -H448 -C7.5 -Ak_lms -U 4.0 0.6 -S2409791448&#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>markata extend in configuration</title>
    <id>https://waylonwalker.com/markata-configure-head/</id>
    <updated>2022-09-11T20:25:45Z</updated>
    <published>2022-09-11T20:25:45Z</published>
    <link href="https://waylonwalker.com/markata-configure-head/" rel="alternate" type="text/html"></link>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://stable-diffusion.waylonwalker.com/000172.2339173599.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;Astronauts stunting some stylish color explosion&#34;&gt;&lt;img src=&#34;https://stable-diffusion.waylonwalker.com/000172.2339173599.webp&#34; alt=&#34;Astronauts stunting some stylish color explosion&#34; class=&#34;more-cinematic glightbox&#34; data-glightbox=&#34;description: Astronauts stunting some stylish color explosion&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;A long needed feature of markata has been the ability to really configure out&#xA;templates with configuration rather.  It’s been long that you needed that if&#xA;you really want to change the style, meta tags, or anything in the head you&#xA;needed to write a plugin or eject out of the template and use your own.&lt;/p&gt;&#xA;&lt;h2 id=&#34;adding-some-head&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Adding some Head&lt;/span&gt; &lt;a href=&#34;#adding-some-head&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Now you can add some extra style to your site with the existing built-in&#xA;template.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt;&#xA;&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;text&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&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;&amp;lt;style&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;s2&#34;&gt;img {&#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;  width: 100%;&#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;  height: auto;&#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;ul {&#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;  display: flex;&#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;  flex-wrap: wrap;&#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;lt;/style&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;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;h2 id=&#34;you-can-have-more-than-one-head&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;You can have more than one Head&lt;/span&gt; &lt;a href=&#34;#you-can-have-more-than-one-head&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Each text entry in &lt;code&gt;markata.head&lt;/code&gt; just gets appended raw into the head.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt;&#xA;&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;text&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&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;&amp;lt;style&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;s2&#34;&gt;img {&#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;  width: 100%;&#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;  height: auto;&#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;ul {&#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;  display: flex;&#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;  flex-wrap: wrap;&#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;lt;/style&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;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;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;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt;&#xA;&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;text&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&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;&amp;lt;script&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;s2&#34;&gt;console.log(&amp;#39;hey there&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;&amp;lt;/script&#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;h2 id=&#34;still-need-more&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Still need more?&lt;/span&gt; &lt;a href=&#34;#still-need-more&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;If this does not take you far enough yet, you can still eject out and use your&#xA;own template pretty easy.  If you are going for a full custom site it’s likely&#xA;that this will be the workflow for awhile.  Markata should only get better and&#xA;make this required less often as it matures.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;markata&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&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;post_template&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;pages/templates/post_template.html&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Once you have this in your &lt;code&gt;markata.toml&lt;/code&gt; you can put whatever you want in your&#xA;own template.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://stable-diffusion.waylonwalker.com/000172.2678273305.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;“An astronaut working in a lab, colorful explosion, powder, particles, smoke, 35mm, bokeh, fog, f1.2, shallow depth of field, experiments running, beakers, test tubes, cyberpunk, octane render, trending on artstation, neon lighting, volumetric lighting, pink lighting” -s50 -W800 -H450 -C7.5 -Ak_lms -S2678273305&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://stable-diffusion.waylonwalker.com/000172.2678273305.webp&#34; alt=&#34;“An astronaut working in a lab, colorful explosion, powder, particles, smoke, 35mm, bokeh, fog, f1.2, shallow depth of field, experiments running, beakers, test tubes, cyberpunk, octane render, trending on artstation, neon lighting, volumetric lighting, pink lighting” -s50 -W800 -H450 -C7.5 -Ak_lms -S2678273305&#34; data-glightbox=&#34;description: “An astronaut working in a lab, colorful explosion, powder, particles, smoke, 35mm, bokeh, fog, f1.2, shallow depth of field, experiments running, beakers, test tubes, cyberpunk, octane render, trending on artstation, neon lighting, volumetric lighting, pink lighting” -s50 -W800 -H450 -C7.5 -Ak_lms -S2678273305&#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>From Markdown to Blog with Markata | lightning talk | python web conf 2022</title>
    <id>https://waylonwalker.com/from-markdown-to-blog-with-markata/</id>
    <updated>2022-08-31T10:01:09Z</updated>
    <published>2022-08-31T10:01:09Z</published>
    <link href="https://waylonwalker.com/from-markdown-to-blog-with-markata/" rel="alternate" type="text/html"></link>
    <summary type="text">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...</summary>
    <content type="html">&lt;p&gt;Markata is a great python framework that allows you to go from markdown to a&#xA;full website very quickly.  You can get up and running with nothing more than&#xA;Markdown.  It is also built on a full plugin architecture, so if there is extra&#xA;functionality that you want to add, you can create a plugin to make it behave&#xA;like you want.&lt;/p&gt;&#xA;&lt;p&gt;Full transparancy… I built markata.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-talk&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;The talk&lt;/span&gt; &lt;a href=&#34;#the-talk&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The talk is live on YouTube.  Make sure you check out the other videos from the&#xA;conference.  There were quite a few quality talks that deserve a watch as well.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://youtu.be/Wq9YBamSgs0&#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;https://youtu.be/Wq9YBamSgs0&lt;/a&gt;&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://stable-diffusion.waylonwalker.com/000221.1721400243.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;“An astronaut working in a lab, hacking on a computer terminal, htop is running, shallow depth of field beakers, test tubes, volumetric lighting, pink lighting, by victo ngai, killian eng vibrant colours, dynamic lighting, digital art” -s50 -W768 -H448 -C7.5 -Ak_lms -S3617210203&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://stable-diffusion.waylonwalker.com/000221.1721400243.webp&#34; alt=&#34;“An astronaut working in a lab, hacking on a computer terminal, htop is running, shallow depth of field beakers, test tubes, volumetric lighting, pink lighting, by victo ngai, killian eng vibrant colours, dynamic lighting, digital art” -s50 -W768 -H448 -C7.5 -Ak_lms -S3617210203&#34; data-glightbox=&#34;description: “An astronaut working in a lab, hacking on a computer terminal, htop is running, shallow depth of field beakers, test tubes, volumetric lighting, pink lighting, by victo ngai, killian eng vibrant colours, dynamic lighting, digital art” -s50 -W768 -H448 -C7.5 -Ak_lms -S3617210203&#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>Packages I Maintain</title>
    <id>https://waylonwalker.com/packages-i-maintain/</id>
    <updated>2022-08-30T20:02:38Z</updated>
    <published>2022-08-30T20:02:38Z</published>
    <link href="https://waylonwalker.com/packages-i-maintain/" rel="alternate" type="text/html"></link>
    <summary type="text">I open sourced the static site framework that I use to build my-blog among other side projects. It&#39;s a plugins all the way down static site generator, that...</summary>
    <content type="html">&lt;h2 id=&#34;markata&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Markata&lt;/span&gt; &lt;a href=&#34;#markata&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I open sourced the static site framework that I use to build&#xA;&lt;a href=&#34;https://waylonwalker.com/&#34;&gt;my-blog&lt;/a&gt; among other side projects. It’s a plugins&#xA;all the way down static site generator, that makes me happy to use.&lt;/p&gt;&#xA;&lt;p&gt;{% gh_repo_list_topic “waylonwalker”, “markata” %}&lt;/p&gt;&#xA;&lt;h2 id=&#34;repos-used-to-build-this-blog&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Repos used to build this blog&lt;/span&gt; &lt;a href=&#34;#repos-used-to-build-this-blog&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://waylonwalker.com/&#34;&gt;my-blog&lt;/a&gt; is built on a number of small repos. I&#xA;set it up this way so that creating content is fast and easy to do. I don’t&#xA;have to worry about carrying around large images with my lightweight text&#xA;files just to make some posts.&lt;/p&gt;&#xA;&lt;p&gt;{% gh_repo_list_topic “waylonwalker”, “personal-website” %}&lt;/p&gt;&#xA;&lt;h2 id=&#34;kedro&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Kedro&lt;/span&gt; &lt;a href=&#34;#kedro&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I am a heavy user of the &lt;a href=&#34;https://kedro.org&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/kedro.org.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/kedro.org.ico&#34; class=&#34;has-avatar has-avatar-before&#34;&gt;kedro&lt;/a&gt; framework, and a big&#xA;advocate for using some sort of DAG framework for your data pipelines. kedro&#xA;is built all in python which makes it easy for a python dev like me to extend,&#xA;run, maintain, and deploy.&lt;/p&gt;&#xA;&lt;p&gt;{% gh_repo_list_topic “waylonwalker”, “kedro” %}&lt;/p&gt;&#xA;&lt;h2 id=&#34;neovim-plugins&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Neovim Plugins&lt;/span&gt; &lt;a href=&#34;#neovim-plugins&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I use vim for all of my text editing needs. It brings me joy to make any part&#xA;of it just a bit smoother. I have written a few plugins that help me achieve&#xA;that silky smooth workflow.&lt;/p&gt;&#xA;&lt;p&gt;{% gh_repo_list_topic “waylonwalker”, “neovim-plugin” %}&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>markata 0.3.0 is 15-20% faster</title>
    <id>https://waylonwalker.com/markata-0-3-0/</id>
    <updated>2022-08-21T13:53:20Z</updated>
    <published>2022-08-21T13:53:20Z</published>
    <link href="https://waylonwalker.com/markata-0-3-0/" rel="alternate" type="text/html"></link>
    <summary type="text">a sprinter edging out his opponent by Dall-e</summary>
    <content type="html">&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/af225f43-ba71-454c-b0b9-257371d0cf87.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;image from Dall-e&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/file/af225f43-ba71-454c-b0b9-257371d0cf87.webp&#34; alt=&#34;image from Dall-e&#34; data-glightbox=&#34;description: image from Dall-e&#34;&gt;&lt;/a&gt;&#xA;&lt;figcaption&gt;&lt;p&gt;a sprinter edging out his opponent by Dall-e&lt;/p&gt;&lt;/figcaption&gt;&lt;/figure&gt;&#xA;&lt;p&gt;It’s about time to release Markata 0.3.0.  I’ve had 8 pre-releases since the&#xA;last release, but more importantly it has about 3 months of updates.  Many of&#xA;which are just cleaning up bad practices that were showing up as hot spots on&#xA;my &lt;code&gt;pyinstrument&lt;/code&gt; reports&lt;/p&gt;&#xA;&lt;p&gt;Markata started off partly as a python developer frustrated with using nodejs&#xA;for everything, and a desire to learn how to make frameworks in pluggy. Little&#xA;did I know how flexible pluggy would make it.  It started out just as my blog&#xA;generator, but has turned into quite a bit more.&lt;/p&gt;&#xA;&lt;p&gt;Over time this side project has grown some warts and some of them were now&#xA;becoming a big enough issue it was time to cut them out.&lt;/p&gt;&#xA;&lt;h2 id=&#34;let-s-compare&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;Let’s compare&lt;/span&gt; &lt;a href=&#34;#let-s-compare&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I like to use my tils articles for examples and tests like this as there are&#xA;enough articles for a good test, but they are pretty short and quick to render.&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;mkdir ~/git/tils/tils&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp  ~/git/waylonwalker.com/pages/til/ ~/tils/tils -r&#xA;&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;cd&lt;/span&gt; ~/git/tils/tils&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;running-tils-on-0-2-0&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;running tils on 0.2.0&lt;/span&gt; &lt;a href=&#34;#running-tils-on-0-2-0&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;At the time of writing this is the current version of markata, so just make a&#xA;new venv and run 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;python3 -m venv .venv --prompt &lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;basename &lt;span class=&#34;nv&#34;&gt;$PWD&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install markata&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;markata clean&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;markata build&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;cold tils: 14.523&#xA;warm tils:  1.028&lt;/p&gt;&#xA;&lt;h2 id=&#34;running-tils-on-0-3-0b8&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;running tils on 0.3.0b8&lt;/span&gt; &lt;a href=&#34;#running-tils-on-0-3-0b8&#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;python3 -m venv .venv --prompt &lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;basename &lt;span class=&#34;nv&#34;&gt;$PWD&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&#xA;&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;# --pre installs pre-releases that include a b in their version name&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install markata --pre&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;markata clean&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;markata build&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;cold tils: 11.551 (+20%)&#xA;warm tils:  0.860 (+16%)&lt;/p&gt;&#xA;&lt;h2 id=&#34;pyinstrument&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;pyinstrument&lt;/span&gt; &lt;a href=&#34;#pyinstrument&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;These measurements were taken with pyinstrument mostly out of convenience since&#xA;there is already a pyinstrument hook built in, but also because I like&#xA;pyinstrument.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/4dca6bd0-8b81-4260-a303-b062f7152a8c.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;pyinstrument-markata==0.3.0b8-tils-hot.webp&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/4dca6bd0-8b81-4260-a303-b062f7152a8c.webp&#34; alt=&#34;pyinstrument-markata==0.3.0b8-tils-hot.webp&#34; data-glightbox=&#34;description: pyinstrument-markata==0.3.0b8-tils-hot.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Here is the pyinstrument report from the last run.&lt;/p&gt;&#xA;&lt;h2 id=&#34;my-machine&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;My Machine&lt;/span&gt; &lt;a href=&#34;#my-machine&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;This comparison was not very exhaustive. It was ran on my pretty new to me&#xA;Ryzen 5 3600 machine.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/80cd2f7a-8cf0-42ae-a235-d537478d00a7.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;neofetch-8-21-2022.webp&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/80cd2f7a-8cf0-42ae-a235-d537478d00a7.webp&#34; alt=&#34;neofetch-8-21-2022.webp&#34; data-glightbox=&#34;description: neofetch-8-21-2022.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;the-changes&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;The changes&lt;/span&gt; &lt;a href=&#34;#the-changes&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Most of these changes revolve in how the lifecycle is ran.  It was trying to be&#xA;extra cautious and run previous steps for you if it thought it might be&#xA;needes, in reality it was rerunning a few steps multiple times no matter what.&lt;/p&gt;&#xA;&lt;p&gt;The other thing I turned off by default, but can be opted into, is&#xA;beautifulasoup’s prettify.  That was one of the slower steps ran on my site.&lt;/p&gt;&#xA;&lt;h2 id=&#34;0-3-0&#34;&gt;&lt;span class=&#34;heading-wear-glyph&#34;&gt;0.3.0&lt;/span&gt; &lt;a href=&#34;#0-3-0&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;It should be out by the time you see this, I wanted to compare the changes I&#xA;had made and make sure that it was still making forward progress and thought I&#xA;would share the results.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>LIVE-REPLAY - Python dev | Markata todoui | 4/6/2022</title>
    <id>https://waylonwalker.com/markata-todoui-live-replay-4-6-2022/</id>
    <updated>2022-05-12T19:28:20Z</updated>
    <published>2022-05-12T19:28:20Z</published>
    <link href="https://waylonwalker.com/markata-todoui-live-replay-4-6-2022/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/-42A5210HYo</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/-42A5210HYo&#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;https://youtu.be/-42A5210HYo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Super fun steam Broadcasted live on Twitch – Watch live at &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;https://www.twitch.tv/waylonwalker&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;We worked on markata todoui, a command tui trello board written in python using only markdown files to store the data.  I love markdown and I want to make this my workflow.&lt;/p&gt;&#xA;&lt;p&gt;During this stream we get RAIDED by TEEJ_DV! and chat about tmux a bit before calling the changes to markata-tui good and signing off.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;dotfiles: &lt;a href=&#34;https://github.com/WaylonWalker/devtainer&#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/devtainer&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;today’s project: &lt;a href=&#34;https://github.com/WaylonWalker/markata-todoui&#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/markata-todoui&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;website: &lt;a href=&#34;https://waylonwalker.com/&#34;&gt;https://waylonwalker.com/&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>
</feed>