<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>@Summitt Dweller’s Personal Blog - Eleventy</title>
    <link>https://blog.summittdweller.com/tags/eleventy/</link>
    <description>All entries in Eleventy on Personal Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    
    <lastBuildDate>Fri, 11 Oct 2024 20:09:55 +0000</lastBuildDate>
    <atom:link href="https://blog.summittdweller.com/tags/eleventy/" rel="self" type="application/rss+xml" />
    
      
      <item>
        <title>NOT Like a Rolling Stone</title>
        <link>https://blog.summittdweller.com/posts/2024/10/2024-10-11-not-like-a-rolling-stone/</link>
        <pubDate>Fri, 11 Oct 2024 20:09:55 +0000</pubDate>
        <author>Mark McFate</author>
        <guid>https://blog.summittdweller.com/posts/2024/10/2024-10-11-not-like-a-rolling-stone/</guid>
        <description>&lt;p&gt;Where has the last year gone?  While life (metaphorically the stream in the hero image) rolls on, this blog (any of the moss covered rocks in the image) has not.&lt;/p&gt;
&lt;p&gt;This blog was born of good intentions, but frankly it&amp;rsquo;s too hard for an old fart like me to remember how to maintain it and make contributions.  Having not posted here in many months, I had to consult my &amp;ldquo;documentation&amp;rdquo;, and ultimately my retired password manager, to get back in and post this.  That&amp;rsquo;s unacceptable, and it won&amp;rsquo;t happen again.  &lt;/p&gt;
&lt;p&gt;So, I&amp;rsquo;m going to replace this Ghost-driven &amp;ldquo;semi-static&amp;rdquo; blog with something more familiar and less costly/complex to operate.  Probably a Hugo static site that is truly &amp;ldquo;static&amp;rdquo;, but not stagnant!   There will be no more blog-moss grown here!&lt;/p&gt;
&lt;p&gt;Famous last words?&lt;/p&gt;
&lt;p&gt;See you on the flip-side.  Soon.&lt;/p&gt;
</description>
      </item>
      
    
      
      <item>
        <title>Fixing Wieting Guild Pages</title>
        <link>https://blog.summittdweller.com/posts/2023/06/fixing-wieting-guild-pages/</link>
        <pubDate>Sat, 03 Jun 2023 23:20:26 +0000</pubDate>
        <author>Mark McFate</author>
        <guid>https://blog.summittdweller.com/posts/2023/06/fixing-wieting-guild-pages/</guid>
        <description>&lt;p&gt;Just the other day I got an updated copy of the Wieting Theatre&amp;rsquo;s volunteer roster and assignment schedule.  As I&amp;rsquo;m trying to post them to the &lt;a href=&#34;https://wieting-guild.tamatoledo.com&#34;&gt;theatre&amp;rsquo;s management website&lt;/a&gt; (it&amp;rsquo;s password protected) I keep having issues with &lt;code&gt;npm&lt;/code&gt; and dependencies that won&amp;rsquo;t compile.  The fix, thus far has included a local command stream like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd wieting-guild-pages
git pull
code .
npm run build
npm run start 
  --&amp;gt; failed
npm update
npm audit fix
npm run build
npm run start
  --&amp;gt; failed
npm audit fix --force
npm run build
  --&amp;gt; failed
npm install axios
npm run build
  --&amp;gt; failed
npm update
npm run build
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The last errors had this in common:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[11ty] Unhandled rejection in promise: (more in DEBUG output)
[11ty] connect ETIMEDOUT 54.243.162.8:443 (via Error)
[11ty] 
[11ty] Original error stack trace: Error: connect ETIMEDOUT 54.243.162.8:443
[11ty]     at AxiosError.from (/Users/mark/GitHub/wieting-guild-pages/node_modules/axios/dist/node/axios.cjs:836:14)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;One explanation I found:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;The ETIMEDOUT error is thrown by the Node.js runtime when a connection or HTTP request is not closed properly after some time. You might encounter this error from time to time if you configured a timeout on your outgoing HTTP requests. The general solution to this issue is to catch the error and repeat the request, preferably using an exponential backoff strategy so that a waiting period is added between subsequent retries until the request eventually succeeds, or the maximum amount of retries is reached. If you encounter this error frequently, try to investigate your request timeout settings and choose a more appropriate value for the endpoint if possible.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I also found a GitHub issues/bug report related to Axios and this error at &lt;a href=&#34;https://github.com/SillyTavern/SillyTavern/issues/432&#34;&gt;https://github.com/SillyTavern/SillyTavern/issues/432&lt;/a&gt;.  So, maybe it&amp;rsquo;s not just me?&lt;/p&gt;
</description>
      </item>
      
    
      
      <item>
        <title>Searching for a Search Solution</title>
        <link>https://blog.summittdweller.com/posts/2023/04/glad-i-found-pagefind/</link>
        <pubDate>Thu, 20 Apr 2023 17:02:00 +0000</pubDate>
        <author>Mark McFate</author>
        <guid>https://blog.summittdweller.com/posts/2023/04/glad-i-found-pagefind/</guid>
        <description>&lt;p&gt;A few months ago I sat in on a &lt;a href=&#34;https://cfe.dev/sessions/static-search-with-pagefind/&#34;&gt;CFE.dev webinar&lt;/a&gt; and I was really impressed with what I saw.  I made a note to come back and look closer at &lt;a href=&#34;https://pagefind.app/&#34;&gt;Pagefind&lt;/a&gt;, and my new blog &amp;ndash; this blog that you&amp;rsquo;re presumably reading right now &amp;ndash; really needed a search feature, so the &amp;ldquo;Search&amp;rdquo; box on this page (I hope it&amp;rsquo;s there) is the outcome.&lt;/p&gt;
&lt;h2 id=&#34;glad-i-found-pagefind&#34;&gt;Glad I Found Pagefind&lt;/h2&gt;
&lt;p&gt;So, I started looking closely at search options and considered things like &lt;a href=&#34;https://lunrjs.com/&#34;&gt;Lunr&lt;/a&gt;, which I&amp;rsquo;ve used before, and &lt;a href=&#34;https://solr.apache.org/&#34;&gt;Solr&lt;/a&gt;, which I both love and hate (because of its JAVA roots).  Pagefind was, of course, also on that short list and it quickly solidified its position at the top of the list when I found &lt;a href=&#34;https://mikefallows.com/posts/adding-search-to-eleventy-site/&#34;&gt;Adding search to an Eleventy site&lt;/a&gt; by &lt;a href=&#34;https://mikefallows.com/about/&#34;&gt;Mike&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Mike doesn&amp;rsquo;t explain the setup in detail, but this comment really resonated with me so I decided to follow the same path:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Weirdly, I&amp;rsquo;ve found that I seem to read the posts on this site more than I write them. I say read, but I just mean referring to the stuff I&amp;rsquo;ve written because it has left my head.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Mike does provide a link to the reference he used, namely &lt;a href=&#34;https://rknight.me/using-pagefind-with-eleventy-for-search/&#34;&gt;Using PageFind with Eleventy for Search&lt;/a&gt; by &lt;a href=&#34;https://rknight.me/&#34;&gt;Robb Knight&lt;/a&gt;.  I found Robb&amp;rsquo;s guidance and experience to be VERY helpful.  Thank you, Robb!&lt;/p&gt;
&lt;h2 id=&#34;implementing-robbs-approach&#34;&gt;Implementing Robb&amp;rsquo;s Approach&lt;/h2&gt;
&lt;p&gt;I won&amp;rsquo;t bother duplicating what Robb explains quite well, but this wasn&amp;rsquo;t a 10-minute solution for me, probably because I&amp;rsquo;m really still learning &lt;em&gt;Javascript&lt;/em&gt; and &lt;em&gt;Eleventy&lt;/em&gt;, and also because I&amp;rsquo;m using a &lt;em&gt;Ghost&lt;/em&gt; back-end with packages managed via &lt;em&gt;Yarn&lt;/em&gt; rather than &lt;em&gt;npm&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;So, in the few sections that follow I&amp;rsquo;ll try to briefly described what&amp;rsquo;s different about my approach versus Robb&amp;rsquo;s, along with what didn&amp;rsquo;t, and what ultimately did work.&lt;/p&gt;
&lt;h2 id=&#34;yarn-not-npm&#34;&gt;&lt;code&gt;yarn&lt;/code&gt;, Not &lt;code&gt;npm&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The first significant difference I encountered was the requirement that this blog project uses &lt;code&gt;yarn&lt;/code&gt;, not &lt;code&gt;npm&lt;/code&gt; for package management.  Eventually I found that I just needed to replace Robb&amp;rsquo;s &lt;code&gt;npm install pagefind&lt;/code&gt; command with a &lt;code&gt;yarn add pagefind&lt;/code&gt; equivalent.  I don&amp;rsquo;t really understand the details of that difference, but it worked.&lt;/p&gt;
&lt;h2 id=&#34;eleventyafter-never-fires&#34;&gt;eleventy.after Never Fires?&lt;/h2&gt;
&lt;p&gt;The biggest hurdle for me was trying to get this bit of Robb&amp;rsquo;s code to work.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const { execSync } = require(&#39;child_process&#39;)

module.exports = function(eleventyConfig) {
  eleventyConfig.on(&#39;eleventy.after&#39;, () =&amp;gt; {
    execSync(`npx pagefind --source _site --glob \&amp;quot;**/*.html\&amp;quot;`, { encoding: &#39;utf-8&#39; })
  })
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In my case the &lt;code&gt;--source&lt;/code&gt; parameter needed to be &lt;code&gt;dist&lt;/code&gt; since this blog is generated into a directory by that name, and my configuration object is simply &lt;code&gt;config&lt;/code&gt; rather than &lt;code&gt;eleventyConfig&lt;/code&gt;.  I made those simple changes and added my snippet to the &lt;code&gt;.eleventy.js&lt;/code&gt; file, but found that it never triggered.  I even replaced the &lt;code&gt;execSync&lt;/code&gt; function call with a simple &lt;code&gt;console.log&lt;/code&gt; statement and still got nothing.  And still to this day, I have no idea why that didn&amp;rsquo;t work.&lt;/p&gt;
&lt;p&gt;That snippet of code is supposed to be responsible for indexing all of the &lt;code&gt;.html&lt;/code&gt; files after &lt;em&gt;Eleventy&lt;/em&gt; has generated them.  Well, I found out that everything else was working properly, but the &lt;code&gt;_pagefind&lt;/code&gt; bundle generated by that indexing operation was just &amp;ldquo;missing&amp;rdquo;, since the index never was created.  That made me wonder what would happen if I &amp;ldquo;forced&amp;rdquo; the system to index my content in a different manner&amp;hellip;and that wonder ultimately worked.&lt;/p&gt;
&lt;h2 id=&#34;using-npx-pagefind-to-index-content&#34;&gt;Using &lt;code&gt;npx pagefind...&lt;/code&gt; to Index Content&lt;/h2&gt;
&lt;p&gt;Having studied some of the &lt;a href=&#34;https://pagefind.app/docs/&#34;&gt;Pagefind documentation&lt;/a&gt; I wondered what adding some post-processing to my build workflow might do, something like &lt;code&gt;npx pagefind --source dist&lt;/code&gt;?  That ultimately worked, but not in that original form.&lt;/p&gt;
&lt;p&gt;I found that when I ran &lt;code&gt;yarn start&lt;/code&gt; to locally rebuild the site, there was no generated &lt;code&gt;./dist/_pagefind&lt;/code&gt; bundle present, so I got no &amp;ldquo;Search&amp;rdquo; user interface elements, but there was an empty &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; where that belonged.  So, with my localhost instance still running I opened a new terminal and ran &lt;code&gt;npx pagefind --source dist&lt;/code&gt; in the project directory. Voila! The &lt;code&gt;./dist/_pagefind&lt;/code&gt; bundle magically appeared and the &amp;ldquo;Search&amp;rdquo; control was instantly visible in my localhost window!  It was working, and it was beautiful.&lt;/p&gt;
&lt;h2 id=&#34;added-a-pagefind-script-didnt-work&#34;&gt;Added a &lt;code&gt;pagefind&lt;/code&gt; Script&amp;hellip; Didn&amp;rsquo;t Work&lt;/h2&gt;
&lt;p&gt;Ok, with the above breakthrough in-hand I made this addition to the &lt;code&gt;scripts:&lt;/code&gt; key in my &lt;code&gt;package.json&lt;/code&gt; file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  &amp;quot;pagefind&amp;quot;: &amp;quot;npx pagefind --source dist&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then I added the following to the end of my &lt;code&gt;steps:&lt;/code&gt; key in &lt;code&gt;.github/workflows/build-and-deploy.yml&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  - run: yarn pagefind
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This worked to some extent, but wasn&amp;rsquo;t reliable and absolutely didn&amp;rsquo;t work when deployed to my &lt;em&gt;DigitalOcean&lt;/em&gt; app.  The inner-workings of &lt;code&gt;yarn&lt;/code&gt; and build caching in these environments is still a DEEP mystery to me!&lt;/p&gt;
&lt;h2 id=&#34;extending-my-encrypt-script&#34;&gt;Extending My &lt;code&gt;encrypt&lt;/code&gt; Script&lt;/h2&gt;
&lt;p&gt;What does work, both locally and on &lt;em&gt;DigitalOcean&lt;/em&gt;, is essentially an &amp;ldquo;extension&amp;rdquo; of my old &lt;code&gt;encrypt&lt;/code&gt; script.  My old build workflow included these two elements of &lt;code&gt;package.json&lt;/code&gt; and &lt;code&gt;build-and-deploy.yml&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    &amp;quot;encrypt&amp;quot;: &amp;quot;staticrypt ./dist/rebuild.html &#39;***hidden***&#39; --short -o ./dist/rebuild.html -f ./src/auth/login.html -t &#39;Summitt Dweller Blog - Rebuild&#39; -i &#39;Please enter the passphrase.&amp;lt;br/&amp;gt;Hint: gh0st&#39; --label-error &#39;Sorry, Ella says no. Try again.&#39;&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;hellip;and&amp;hellip;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  - run: yarn encrypt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I took note of the relative path spec for &lt;code&gt;./dist/rebuild.html&lt;/code&gt; in the &lt;code&gt;encrypt&lt;/code&gt; command, reasoned that I should run &lt;code&gt;pagefind&lt;/code&gt; in a similar fashion &amp;ndash; but just before encryption &amp;ndash; and came up with this change in &lt;code&gt;package.json&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    &amp;quot;encrypt&amp;quot;: &amp;quot;npx pagefind --source ./dist &amp;amp;&amp;amp; staticrypt ./dist/rebuild.html &#39;***hidden***&#39; --short -o ./dist/rebuild.html -f ./src/auth/login.html -t &#39;Summitt Dweller Blog - Rebuild&#39; -i &#39;Please enter the passphrase.&amp;lt;br/&amp;gt;Hint: gh0st&#39; --label-error &#39;Sorry, Ella says no. Try again.&#39;&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;It works!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When I&amp;rsquo;m running locally my &lt;code&gt;build-and-deploy.yml&lt;/code&gt; doesn&amp;rsquo;t apply so in that case I typically will do this IF I want my search index (and encryption) updated:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yarn start
yarn encrypt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When I rebuild in production on &lt;em&gt;DigitalOcean&lt;/em&gt; my &lt;code&gt;build-and-deploy.yml&lt;/code&gt; configuration IS run so including &lt;code&gt;npx pagefind...&lt;/code&gt; as part of the &lt;code&gt;yarn encrypt&lt;/code&gt; step does the trick.&lt;/p&gt;
&lt;h2 id=&#34;time-to-test&#34;&gt;Time to Test&amp;hellip;&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m going to save this post now and rebuild this blog on &lt;em&gt;DigitalOcean&lt;/em&gt;, where with any luck, a search for a term like &amp;ldquo;DEEP&amp;rdquo; should return this post, and maybe one or two others.  Drum roll please&amp;hellip;  &lt;strong&gt;Huzzah!&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;man-do-i-feel-stupid&#34;&gt;Man, Do I Feel Stupid&lt;/h2&gt;
&lt;p&gt;Previously I mentioned that my additon of a &lt;code&gt;package.json&lt;/code&gt; script named &lt;code&gt;pagefind&lt;/code&gt; didn&amp;rsquo;t work, and that my &lt;em&gt;DigitalOcean&lt;/em&gt; builds kept trying to do &lt;code&gt;yarn encrypt&lt;/code&gt; after &lt;code&gt;yarn build&lt;/code&gt;.  Well, turns out that&amp;rsquo;s because &lt;code&gt;build-and-deploy.yml&lt;/code&gt;, where I had inserted the &lt;code&gt;yarn pagefind&lt;/code&gt; step IS NOT in control of building my &lt;em&gt;DigitalOcean&lt;/em&gt; app.  In fact, it&amp;rsquo;s a &lt;code&gt;.github&lt;/code&gt; workflow so I&amp;rsquo;m really not sure what role that file plays, if any?&lt;/p&gt;
&lt;p&gt;I went looking in my &lt;em&gt;DigitalOcean&lt;/em&gt; app configuration settings for &lt;code&gt;yarn encrypt&lt;/code&gt; and found it, in the app&amp;rsquo;s &amp;ldquo;App Settings&amp;rdquo; subsection titled &amp;ldquo;App Spec&amp;rdquo;.  When I view that &amp;ldquo;App Spec&amp;rdquo; I see this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;alerts:
- rule: DEPLOYMENT_FAILED
- rule: DOMAIN_FAILED
domains:
- domain: blog.summittdweller.com
  type: PRIMARY
  zone: summittdweller.com
envs:
- key: TZ
  scope: RUN_AND_BUILD_TIME
  value: America/Chicago
name: blog-summittdweller-11ty-ghost
region: nyc
static_sites:
- build_command: |-
    yarn build
    yarn encrypt
  environment_slug: node-js
  github:
    branch: main
    deploy_on_push: true
    repo: SummittDweller/blog-eleventy-ghost
  name: blog-eleventy-ghost
  output_dir: dist
  routes:
  - path: /
  source_dir: /
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note the two &lt;code&gt;build_command:&lt;/code&gt; elements.  Let&amp;rsquo;s change those two steps to three, like so:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- build_command: |-
    yarn build
    yarn pagefind
    yarn encrypt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that I captured the &amp;ldquo;App Spec&amp;rdquo; in a file named &lt;code&gt;blog-summittdweller-11ty-ghost.yaml&lt;/code&gt; and I&amp;rsquo;ve saved that file in the project directory (where I hope it will do no harm).  &lt;strong&gt;Attention: After making the aforementioned addition I almost forgot to upload this file back to &lt;em&gt;DigitalOcean&lt;/em&gt; to replace our existing App Spec!&lt;/strong&gt;  Don&amp;rsquo;t be stupid like me!&lt;/p&gt;
&lt;p&gt;Next, I needed a corresponding change in &lt;code&gt;package.json&lt;/code&gt;, specifically these two lines (like I had them before, duh):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  &amp;quot;pagefind&amp;quot;: &amp;quot;npx pagefind --source ./dist&amp;quot;,
  &amp;quot;encrypt&amp;quot;: &amp;quot;staticrypt ./dist/rebuild.html &#39;***hidden***&#39; --short -o ./dist/rebuild.html -f ./src/auth/login.html -t &#39;Summitt Dweller Blog - Rebuild&#39; -i &#39;Please enter the passphrase.&amp;lt;br/&amp;gt;Hint: gh0st&#39; --label-error &#39;Sorry, Ella says no. Try again.&#39;&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;push-to-rebuild&#34;&gt;Push to Rebuild&lt;/h2&gt;
&lt;p&gt;Ok, having modified &lt;strong&gt;and UPLOADED&lt;/strong&gt;&lt;code&gt;blog-summittdweller-11ty-ghost.yaml&lt;/code&gt;, and having modified &lt;code&gt;package.json&lt;/code&gt;, it came time to commit and push all my changes to see what happens.  Another drum roll, please&amp;hellip;&lt;/p&gt;
</description>
      </item>
      
    
      
      <item>
        <title>Gating My Content</title>
        <link>https://blog.summittdweller.com/posts/2023/01/gating-content/</link>
        <pubDate>Mon, 30 Jan 2023 14:45:01 -0600</pubDate>
        <author>Mark McFate</author>
        <guid>https://blog.summittdweller.com/posts/2023/01/gating-content/</guid>
        <description>&lt;h1 id=&#34;gating-content-in-jamstack-sites&#34;&gt;Gating Content in JAMstack Sites&lt;/h1&gt;
&lt;p&gt;This section&amp;rsquo;s title was borrowed from a &lt;a href=&#34;https://www.stackbit.com/&#34;&gt;Stackbit&lt;/a&gt; article with the same title, &lt;a href=&#34;https://www.stackbit.com/blog/gating-content-jamstack&#34;&gt;Gating Content in JAMstack Sites&lt;/a&gt;.  Working through that article to password protect some of the content at &lt;a href=&#34;https://Wieting.TamaToledo.com&#34;&gt;https://Wieting.TamaToledo.com&lt;/a&gt; is my tech pursit today.&lt;/p&gt;
&lt;h1 id=&#34;nope-not-on-netlify&#34;&gt;Nope, Not on Netlify&lt;/h1&gt;
&lt;p&gt;&amp;#x1f626;
Last evening I took a shot at implementing the &lt;em&gt;Netlify Identity&lt;/em&gt; tricks from the aforementioned article, but could not easily get it to work.  The problem, I think, is that the &lt;a href=&#34;https://Wieting.TamaToledo.com&#34;&gt;https://Wieting.TamaToledo.com&lt;/a&gt; on &lt;em&gt;Netlify&lt;/em&gt; already uses &lt;em&gt;Netlify Identity&lt;/em&gt; for authentication of my &lt;em&gt;Netlify CMS&lt;/em&gt; forms, and adding a second, separate instance of that service isn&amp;rsquo;t trivial and perhaps isn&amp;rsquo;t even feasible.  I also tried implementing some quick &lt;a href=&#34;https://www.npmjs.com/package/staticrypt&#34;&gt;Staticrypt&lt;/a&gt; CLI protection but that also failed.  &lt;em&gt;Netlify&lt;/em&gt; does provide a really quick and painless solution, but it costs $20/month, at a minimum, to enable it.&lt;/p&gt;
&lt;h1 id=&#34;new-staticrypt-strategy&#34;&gt;New Staticrypt Strategy?&lt;/h1&gt;
&lt;p&gt;So, my next shot at this will involve creating a new &lt;a href=&#34;https://www.11ty.dev/&#34;&gt;Eleventy&lt;/a&gt; site just for the Wieting&amp;rsquo;s protected content.  Wish me luck and follow along here if you like.&lt;/p&gt;
&lt;h1 id=&#34;trying-azure-devops&#34;&gt;Trying Azure DevOps&lt;/h1&gt;
&lt;p&gt;I recently created a personal Azure account, registered to &lt;em&gt;summitt.dweller@gmail.com&lt;/em&gt;, and last evening (January 31, 2023) I took a dive into &lt;a href=&#34;&#34;&gt;Azure DevOps&lt;/a&gt; under that account.  The &amp;ldquo;welcome&amp;rdquo; email that I received says I now have an &amp;ldquo;organization&amp;rdquo; URL at &lt;a href=&#34;https://dev.azure.com/summittdweller&#34;&gt;https://dev.azure.com/summittdweller&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I jumped into Azure DevOps because it looks like within that environment I can establish a Content Management System (CMS) not unlike the &lt;em&gt;NetlifyCMS&lt;/em&gt; (or perhaps it IS NCMS) that I run for the Wieting Theatre, hosted with Netlify.com.  I really like &lt;em&gt;NetlifyCMS&lt;/em&gt;, but thus far I&amp;rsquo;ve had limited success with it, and ONLY at Netlify.com where the user authentication process is nicely streamlined.  I hope that Azure DevOps has user authentication that&amp;rsquo;s just as easy to manage, and at less cost.&lt;/p&gt;
&lt;p&gt;So, I guess the strategy now is to see what Azure DevOps has to offer, rather than venturing further with &lt;a href=&#34;https://www.npmjs.com/package/staticrypt&#34;&gt;Staticrypt&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;That&amp;rsquo;s a TEMPORAY wrap, this post isn&amp;rsquo;t finished just yet.&lt;/p&gt;
</description>
      </item>
      
    
  </channel>
</rss>
