<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="http://invariantproperties.github.io/xml/base.min.xml" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Invariant Properties</title>
    <link>http://invariantproperties.github.io/</link>
    <description>Recent content on Invariant Properties</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 29 Jul 2024 19:11:41 -0600</lastBuildDate>
    <atom:link rel="self" href="http://invariantproperties.github.io/feed.xml" type="application/rss+xml" />
    <item>
      <title>First Steps with Hugo</title>
      <link>http://invariantproperties.github.io/posts/hugo-2024-07-29/</link>
      <pubDate>Mon, 29 Jul 2024 19:11:41 -0600</pubDate>
      <guid>http://invariantproperties.github.io/posts/hugo-2024-07-29/</guid>
      <description>&lt;p&gt;I have started with &lt;a href=&#34;https://gohugo.io&#34;&gt;Hugo&lt;/a&gt; for my static site generation since it is so popular and has no external dependencies. My initial plan was to self-host on S3 but decided to follow the lead of the video listed below instead. If I ever change my mind it is a trivial task to add a GitHub Action to handle it.&lt;/p&gt;
&lt;p&gt;The actual steps performed were:&lt;/p&gt;



&lt;h3 id=&#34;system-preparation&#34;&gt;
  &lt;a class=&#34;Heading-link u-clickable&#34; href=&#34;http://invariantproperties.github.io/posts/hugo-2024-07-29/#system-preparation&#34;&gt;System Preparation&lt;/a&gt;
&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Install &lt;code&gt;hugo&lt;/code&gt; and &lt;code&gt;obsidian&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Create &lt;code&gt;invariantproperties&lt;/code&gt; organization&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Create &lt;code&gt;blog&lt;/code&gt; repository&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Create &lt;code&gt;invariantproperties.github.io&lt;/code&gt; repository&lt;/li&gt;
&lt;/ul&gt;

  

&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sudo apt-get install hugo obsidian&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3 id=&#34;hugo-site-preparation&#34;&gt;
  &lt;a class=&#34;Heading-link u-clickable&#34; href=&#34;http://invariantproperties.github.io/posts/hugo-2024-07-29/#hugo-site-preparation&#34;&gt;Hugo site preparation&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;These steps prepare a Hugo site with proper GitHub submodules.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Clone &lt;code&gt;blog&lt;/code&gt; repository&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Create new site&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Include the selected theme via a git submodule&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Link to the destination repository via a git submodule&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Edit &lt;code&gt;hugo.toml&lt;/code&gt; to include &lt;code&gt;theme=hugo-flex&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; (optional) Launch the test server&lt;/li&gt;
&lt;/ul&gt;

  

&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git clone git@github.com:invariantproperties/blog.git
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd blog
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ hugo new site invariantproperties
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git submodule add https://github.com/ldeso/hugo-flex.git invariantproperties/themes/hugo-flex&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git submodule init invariantproperties/themes/hugo-flex
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git submodule add -b main git@github.com:invariantproperties/invariantproperties.github.io.git invariantproperties/public
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ echo theme&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;hugo-flex &amp;gt;&amp;gt; hugo.toml
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ hugo server         &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3 id=&#34;obsidian-setup&#34;&gt;
  &lt;a class=&#34;Heading-link u-clickable&#34; href=&#34;http://invariantproperties.github.io/posts/hugo-2024-07-29/#obsidian-setup&#34;&gt;Obsidian setup&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;m evaluating &lt;a href=&#34;https://obsidian.md&#34;&gt;Obsidian&lt;/a&gt; as my primary Markdown editor.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Launch Obsidian&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Click on current vault (lower left-hand corner) and select &lt;code&gt;Manage vaults...&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Select &lt;code&gt;Open folder as vault&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Select the top of the Hugo site - not the top of the &lt;code&gt;blog&lt;/code&gt; repository&lt;/li&gt;
&lt;/ul&gt;



&lt;h3 id=&#34;create-and-publish-the-first-post&#34;&gt;
  &lt;a class=&#34;Heading-link u-clickable&#34; href=&#34;http://invariantproperties.github.io/posts/hugo-2024-07-29/#create-and-publish-the-first-post&#34;&gt;Create and publish the first post&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;We can create new posts via either the command line or via our editor. We should use the former, at first, since this ensures any required properties are set.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Create a new document&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Edit and save this document. It will not be visible in the generated website unless &lt;code&gt;draft&lt;/code&gt; is set to &lt;code&gt;false&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Generate the static pages&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Commit the pages&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Commit the source pages&lt;/li&gt;
&lt;/ul&gt;

  

&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd blog/invariantproperties
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ hugo new posts/first.md
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# (edit and save file)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ hugo -t hugo-flex
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# (commit and push generated pages)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd public
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git add *
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git commit -m &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;initial post&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git push &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;origin main&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# (commit and push source documents)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd ../..  &lt;span style=&#34;color:#75715e&#34;&gt;# (move to top of the repo)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git add *
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git commit -m &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;added first page&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git push&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3 id=&#34;publishing-the-site&#34;&gt;
  &lt;a class=&#34;Heading-link u-clickable&#34; href=&#34;http://invariantproperties.github.io/posts/hugo-2024-07-29/#publishing-the-site&#34;&gt;Publishing the site&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;We&amp;rsquo;re almost done - we have to tell GitHub to publish the contents of the repository.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Go to the &lt;code&gt;invariantproperties.github.io&lt;/code&gt; repositoy page&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Select &lt;code&gt;settings&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Click on &lt;code&gt;Use your GitHub Pages website&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Another option is the organizational level settings. This is required if you wish to use a custom domain name.&lt;/p&gt;



&lt;h2 id=&#34;resources&#34;&gt;
  &lt;a class=&#34;Heading-link u-clickable&#34; href=&#34;http://invariantproperties.github.io/posts/hugo-2024-07-29/#resources&#34;&gt;Resources&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=LIFvgrRxdt4&#34;&gt;Creating a Blog with Hugo and Github in 10 Minutes&lt;/a&gt; (YouTube)&lt;/p&gt;



&lt;h2 id=&#34;other-static-site-generators&#34;&gt;
  &lt;a class=&#34;Heading-link u-clickable&#34; href=&#34;http://invariantproperties.github.io/posts/hugo-2024-07-29/#other-static-site-generators&#34;&gt;Other static site generators&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://jekyllrb.com/&#34;&gt;Jeykll&lt;/a&gt; is another strong contender, esp. if you&amp;rsquo;re using &lt;a href=&#34;https://pages.github.com/&#34;&gt;GitHub Pages&lt;/a&gt; to host your site.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>The Return Of The Blog!</title>
      <link>http://invariantproperties.github.io/posts/first/</link>
      <pubDate>Mon, 29 Jul 2024 15:05:49 -0600</pubDate>
      <guid>http://invariantproperties.github.io/posts/first/</guid>
      <description>&lt;p&gt;This blog was originally located on a self-hosted WordPress instance but I decided to shut it down because I had shifted nearly all of my blogging to my employer&amp;rsquo;s internal blog and I felt I couldn&amp;rsquo;t commit to the time required to keep my self-hosted instance secure.&lt;/p&gt;
&lt;p&gt;I had soft plans to bring it back up briefly to capture a static mirror of the contents but never got around to it. Life, sigh.&lt;/p&gt;



&lt;h3 id=&#34;why-is-it-returning-now&#34;&gt;
  &lt;a class=&#34;Heading-link u-clickable&#34; href=&#34;http://invariantproperties.github.io/posts/first/#why-is-it-returning-now&#34;&gt;Why is it returning now?&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;There are several reasons. The first is that it&amp;rsquo;s now a lot easier to use &lt;a href=&#34;https://www.markdownguide.org&#34;&gt;Markdown&lt;/a&gt; format. To be specific, I&amp;rsquo;m currently experimenting with &lt;a href=&#34;https://obsidian.md&#34;&gt;Obsidian&lt;/a&gt; (editor) and &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; (static site generator). It has a good balance between functionality and ease-of-use.&lt;/p&gt;
&lt;p&gt;The second reason is that I see a growing need to produce coherent sites from independently produced Markdown documents. This format is flexible enough to support tables, links, etc., but without the endless pits of despair of modern HTML.&lt;/p&gt;
&lt;p&gt;The final reason is because I have something to say.&lt;/p&gt;



&lt;h3 id=&#34;expect-ongoing-changes&#34;&gt;
  &lt;a class=&#34;Heading-link u-clickable&#34; href=&#34;http://invariantproperties.github.io/posts/first/#expect-ongoing-changes&#34;&gt;Expect ongoing changes&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;A final note - the appearance of this site will undoubtedly change over the coming weeks and months since I&amp;rsquo;ve barely scratched the surface of what Hugo offers.&lt;/p&gt;
</description>
    </item>
  </channel>
</rss>
