<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Lecture slides on SSG Book</title><link>http://polla.dev/ssg-book/slides/</link><description>Recent content in Lecture slides on SSG Book</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 01 Jan 0001 00:00:00 +0000</lastBuildDate><atom:link href="http://polla.dev/ssg-book/slides/index.xml" rel="self" type="application/rss+xml"/><item><title>Course introduction</title><link>http://polla.dev/ssg-book/slides/00-course-introduction/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/00-course-introduction/</guid><description>&lt;h1 id="static-site-generators-in-the-age-of-ai"&gt;Static Site Generators in the Age of AI&#10;&lt;/h1&gt;&#10;&lt;p&gt;Building and Maintaining Content with AI Agents&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 0: Course introduction&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="what-you-will-build"&gt;What you will build&#10;&lt;/h2&gt;&#10;&lt;p&gt;One small website that grows from chapter to chapter.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;A working site on your own computer in &lt;strong&gt;Chapter 1&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;Published at a public address by &lt;strong&gt;Chapter 7&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;Improved by an AI agent, with every change &lt;strong&gt;reviewed by you&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;A plan for a website of &lt;strong&gt;your own&lt;/strong&gt; in Chapter 19&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="why-a-static-website"&gt;Why a static website?&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Your content is &lt;strong&gt;plain text&lt;/strong&gt; in folders you control&lt;/li&gt;&#10;&lt;li&gt;The build produces &lt;strong&gt;ordinary files&lt;/strong&gt; any browser can read&lt;/li&gt;&#10;&lt;li&gt;Hosting can be &lt;strong&gt;free&lt;/strong&gt;: GitHub Pages serves public projects at no charge&lt;/li&gt;&#10;&lt;li&gt;Every change is &lt;strong&gt;recorded&lt;/strong&gt; in Git and can be undone&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="what-static-means"&gt;What &amp;ldquo;static&amp;rdquo; means&#10;&lt;/h2&gt;&#10;&lt;p&gt;A &lt;strong&gt;static site generator&lt;/strong&gt; combines your writing, a layout, and settings into finished web pages &lt;strong&gt;before&lt;/strong&gt; anyone visits.&lt;/p&gt;</description></item><item><title>Your First Hugo Website</title><link>http://polla.dev/ssg-book/slides/01-your-first-hugo-website/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/01-your-first-hugo-website/</guid><description>&lt;h1 id="your-first-hugo-website"&gt;Your First Hugo Website&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 1&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;A readable home page headed &lt;strong&gt;My Knowledge Notebook&lt;/strong&gt;, running on your own computer.&lt;/p&gt;&#10;&lt;p&gt;Success means you can say:&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;I know which file contains these words, I can change them, and I can put them back.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="by-the-end-of-today-you-can"&gt;By the end of today you can&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Start and stop&lt;/strong&gt; a local Hugo preview&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Find and edit&lt;/strong&gt; the file that holds the home-page introduction&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Explain&lt;/strong&gt; the roles of the content file, the layout, and the browser preview&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Recover&lt;/strong&gt; from a small mistake and keep a working copy&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;No HTML, CSS, Git, or programming experience is needed.&lt;/p&gt;</description></item><item><title>Write and Publish Content Locally</title><link>http://polla.dev/ssg-book/slides/02-write-and-publish-content-locally/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/02-write-and-publish-content-locally/</guid><description>&lt;h1 id="write-and-publish-content-locally"&gt;Write and Publish Content Locally&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 2&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;Give your website its &lt;strong&gt;first article&lt;/strong&gt;: a short note about something you have learned.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Sections, a link, a screenshot, and a code sample&lt;/li&gt;&#10;&lt;li&gt;Reachable from the home page&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Publish locally&lt;/strong&gt; means it appears in the preview on your computer. Nothing goes online today.&lt;/p&gt;</description></item><item><title>Organise a Useful Website</title><link>http://polla.dev/ssg-book/slides/03-organise-a-useful-website/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/03-organise-a-useful-website/</guid><description>&lt;h1 id="organise-a-useful-website"&gt;Organise a Useful Website&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 3&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;You know where your files are. &lt;strong&gt;A new visitor does not.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Give them clear routes through the site:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;An &lt;strong&gt;About&lt;/strong&gt; page&lt;/li&gt;&#10;&lt;li&gt;Landing pages for &lt;strong&gt;Articles&lt;/strong&gt; and &lt;strong&gt;Projects&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;A short &lt;strong&gt;Resources&lt;/strong&gt; page&lt;/li&gt;&#10;&lt;li&gt;Navigation that works on every page&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Every destination must contain something useful.&lt;/p&gt;</description></item><item><title>Understand the HTML Behind Your Pages</title><link>http://polla.dev/ssg-book/slides/04-understand-the-html-behind-your-pages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/04-understand-the-html-behind-your-pages/</guid><description>&lt;h1 id="understand-the-html-behind-your-pages"&gt;Understand the HTML Behind Your Pages&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 4&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;See what the browser &lt;strong&gt;receives&lt;/strong&gt; when it shows your pages.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;The title is not just large text; the navigation is not just coloured words&lt;/li&gt;&#10;&lt;li&gt;Both have a &lt;strong&gt;structure&lt;/strong&gt; the browser interprets&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;That lets you make deliberate changes, diagnose mistakes, and judge code an &lt;strong&gt;AI agent&lt;/strong&gt; suggests.&lt;/p&gt;</description></item><item><title>Practical CSS for Your Hugo Site</title><link>http://polla.dev/ssg-book/slides/05-practical-css-for-your-hugo-site/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/05-practical-css-for-your-hugo-site/</guid><description>&lt;h1 id="practical-css-for-your-hugo-site"&gt;Practical CSS for Your Hugo Site&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 5&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;Three small, deliberate changes:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;The footer note sits below a &lt;strong&gt;thin rule&lt;/strong&gt;, in quieter text&lt;/li&gt;&#10;&lt;li&gt;Body text reads a little &lt;strong&gt;larger&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;Article section headings get &lt;strong&gt;more space&lt;/strong&gt; above them&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Everything else should look as it did after Chapter 4.&lt;/p&gt;&#10;&lt;p&gt;Enough CSS to customise this site and &lt;strong&gt;check an agent&amp;rsquo;s changes&lt;/strong&gt;; not a design course.&lt;/p&gt;</description></item><item><title>Track and Recover Your Hugo Site with Git</title><link>http://polla.dev/ssg-book/slides/06-track-and-recover-your-hugo-site-with-git/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/06-track-and-recover-your-hugo-site-with-git/</guid><description>&lt;h1 id="track-and-recover-your-hugo-site-with-git"&gt;Track and Recover Your Hugo Site with Git&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 6&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;Backup folders helped, but they are awkward to compare.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Which copy has the footer improvement?&lt;/li&gt;&#10;&lt;li&gt;What changed in the stylesheet?&lt;/li&gt;&#10;&lt;li&gt;Can I recover &lt;strong&gt;one file&lt;/strong&gt; without replacing the whole site?&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Git&lt;/strong&gt; gives the project a history of recorded checkpoints. Today it stays &lt;strong&gt;local&lt;/strong&gt;: no GitHub account yet.&lt;/p&gt;</description></item><item><title>Publish Your Hugo Site with GitHub Pages</title><link>http://polla.dev/ssg-book/slides/07-publish-your-hugo-site-with-github-pages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/07-publish-your-hugo-site-with-github-pages/</guid><description>&lt;h1 id="publish-your-hugo-site-with-github-pages"&gt;Publish Your Hugo Site with GitHub Pages&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 7&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;Give your website an address &lt;strong&gt;other people can visit&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Put the repository on &lt;strong&gt;GitHub&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;Let &lt;strong&gt;GitHub Actions&lt;/strong&gt; build it with Hugo&lt;/li&gt;&#10;&lt;li&gt;Publish the result through &lt;strong&gt;GitHub Pages&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;Follow one small update from your editor to the live page&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;A supplied workflow, explained: no need to master Actions or YAML first.&lt;/p&gt;</description></item><item><title>Work with an AI Agent on Your Hugo Site</title><link>http://polla.dev/ssg-book/slides/08-work-with-an-ai-agent-on-your-hugo-site/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/08-work-with-an-ai-agent-on-your-hugo-site/</guid><description>&lt;h1 id="work-with-an-ai-agent-on-your-hugo-site"&gt;Work with an AI Agent on Your Hugo Site&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 8&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;Ask an agent for &lt;strong&gt;one small, checkable change&lt;/strong&gt;: a short section on the Resources page explaining how to use its links.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;One new heading and three bullets&lt;/li&gt;&#10;&lt;li&gt;In one Markdown file&lt;/li&gt;&#10;&lt;li&gt;Reviewed by &lt;strong&gt;you&lt;/strong&gt; before it is kept&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;We use &lt;strong&gt;Codex CLI&lt;/strong&gt;. The aim is a repeatable &lt;strong&gt;method&lt;/strong&gt;, not a tour of every AI tool.&lt;/p&gt;</description></item><item><title>Give Your Hugo Content a Consistent Structure</title><link>http://polla.dev/ssg-book/slides/09-give-your-hugo-content-a-consistent-structure/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/09-give-your-hugo-content-a-consistent-structure/</guid><description>&lt;h1 id="give-your-hugo-content-a-consistent-structure"&gt;Give Your Hugo Content a Consistent Structure&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 9&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;After a few projects, one page explains its purpose, another lists tools, and a third never says whether the work has started.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Agree what &lt;strong&gt;every project page&lt;/strong&gt; should explain&lt;/li&gt;&#10;&lt;li&gt;Build a reusable &lt;strong&gt;starter&lt;/strong&gt; for new projects&lt;/li&gt;&#10;&lt;li&gt;Add a second project: a planned &lt;strong&gt;reading list&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;A shared structure is easier to write, compare, maintain, and hand to an &lt;strong&gt;agent&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Use Hugo Templates to Display Your Content</title><link>http://polla.dev/ssg-book/slides/10-use-hugo-templates-to-display-your-content/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/10-use-hugo-templates-to-display-your-content/</guid><description>&lt;h1 id="use-hugo-templates-to-display-your-content"&gt;Use Hugo Templates to Display Your Content&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 10&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;Your projects store a description, a status, and tools, but visitors &lt;strong&gt;cannot see them&lt;/strong&gt;. And you still keep the Projects list &lt;strong&gt;by hand&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Display a &lt;strong&gt;description&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;Show &lt;strong&gt;status&lt;/strong&gt; and &lt;strong&gt;tools&lt;/strong&gt; when they exist&lt;/li&gt;&#10;&lt;li&gt;Let Hugo &lt;strong&gt;generate&lt;/strong&gt; the Projects list&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Change a description once; it updates everywhere Hugo uses it.&lt;/p&gt;</description></item><item><title>Build Reusable Hugo Layouts</title><link>http://polla.dev/ssg-book/slides/11-build-reusable-hugo-layouts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/11-build-reusable-hugo-layouts/</guid><description>&lt;h1 id="build-reusable-hugo-layouts"&gt;Build Reusable Hugo Layouts&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 11&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;One layout now does everything. It works, but every change needs care.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;A &lt;strong&gt;base template&lt;/strong&gt; for the shared document&lt;/li&gt;&#10;&lt;li&gt;Small &lt;strong&gt;partials&lt;/strong&gt; for reusable pieces&lt;/li&gt;&#10;&lt;li&gt;A &lt;strong&gt;section template&lt;/strong&gt; for Projects&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;Reorganising working code should &lt;strong&gt;preserve&lt;/strong&gt; its behaviour. Check that first.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="by-the-end-of-today-you-can"&gt;By the end of today you can&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Move&lt;/strong&gt; a component into a partial and pass it the context it needs&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Connect&lt;/strong&gt; a base template&amp;rsquo;s named block with its definition&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Give&lt;/strong&gt; Projects its own layout, sharing the rest&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Check&lt;/strong&gt; that content, links, and metadata survived the move&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Start from Chapter 10, with status in the project list, and a &lt;strong&gt;clean&lt;/strong&gt; tree (companion branch &lt;code&gt;chapter-10&lt;/code&gt;).&lt;/p&gt;</description></item><item><title>Build a Resource Directory with JSON</title><link>http://polla.dev/ssg-book/slides/12-build-a-resource-directory-with-json/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/12-build-a-resource-directory-with-json/</guid><description>&lt;h1 id="build-a-resource-directory-with-json"&gt;Build a Resource Directory with JSON&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 12&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;As the Resources list grows, every entry should carry the &lt;strong&gt;same information&lt;/strong&gt;: a title, an address, a short explanation, and a few topics.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Store the repeated details in &lt;strong&gt;JSON&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;Let a Hugo &lt;strong&gt;partial&lt;/strong&gt; display them&lt;/li&gt;&#10;&lt;li&gt;Keep the introduction and notebook links in &lt;strong&gt;Markdown&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Add a resource by editing &lt;strong&gt;data&lt;/strong&gt;; the template supplies the HTML.&lt;/p&gt;</description></item><item><title>Create and Maintain Content with AI Agents</title><link>http://polla.dev/ssg-book/slides/13-create-and-maintain-content-with-ai-agents/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/13-create-and-maintain-content-with-ai-agents/</guid><description>&lt;h1 id="create-and-maintain-content-with-ai-agents"&gt;Create and Maintain Content with AI Agents&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 13&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;Chapter 8 was three bullets. Real content work is larger, and &lt;strong&gt;harder to check&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;One new &lt;strong&gt;article&lt;/strong&gt;, written from notes you supply&lt;/li&gt;&#10;&lt;li&gt;Linked from Articles, Home, and the resource directory&lt;/li&gt;&#10;&lt;li&gt;Three requests: a &lt;strong&gt;plan&lt;/strong&gt;, a &lt;strong&gt;draft&lt;/strong&gt;, a &lt;strong&gt;coordinated update&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;Supply the material, bound the task, check every claim, decide yourself.&lt;/p&gt;</description></item><item><title>Check Every Contribution with CI/CD</title><link>http://polla.dev/ssg-book/slides/14-check-every-contribution-with-ci-cd/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/14-check-every-contribution-with-ci-cd/</guid><description>&lt;h1 id="check-every-contribution-with-cicd"&gt;Check Every Contribution with CI/CD&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 14&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;Every change so far went straight onto &lt;code&gt;main&lt;/code&gt;, and &lt;strong&gt;every push to &lt;code&gt;main&lt;/code&gt; publishes&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;A second workflow that &lt;strong&gt;examines&lt;/strong&gt; a proposal before it goes live&lt;/li&gt;&#10;&lt;li&gt;A &lt;strong&gt;branch&lt;/strong&gt; and a &lt;strong&gt;pull request&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;A rule broken &lt;strong&gt;on purpose&lt;/strong&gt;, and stopped&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;Machines check what can be a rule; you check the rest.&lt;/p&gt;</description></item><item><title>Help Readers Find and Use Your Content</title><link>http://polla.dev/ssg-book/slides/15-help-readers-find-and-use-your-content/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/15-help-readers-find-and-use-your-content/</guid><description>&lt;h1 id="help-readers-find-and-use-your-content"&gt;Help Readers Find and Use Your Content&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 15&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;A visitor has the navigation, and nothing else. They cannot &lt;strong&gt;search&lt;/strong&gt;, and every tab title looks alike.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;A distinct &lt;strong&gt;title&lt;/strong&gt; and a &lt;strong&gt;description&lt;/strong&gt; for every page&lt;/li&gt;&#10;&lt;li&gt;The &lt;strong&gt;sitemap&lt;/strong&gt; and &lt;strong&gt;feed&lt;/strong&gt; Hugo has generated all along&lt;/li&gt;&#10;&lt;li&gt;A &lt;strong&gt;Search&lt;/strong&gt; page that filters as the reader types&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;And a page that still lists every destination when &lt;strong&gt;JavaScript does not run&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Publish in Multiple Languages</title><link>http://polla.dev/ssg-book/slides/16-publish-in-multiple-languages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/16-publish-in-multiple-languages/</guid><description>&lt;h1 id="publish-in-multiple-languages"&gt;Publish in Multiple Languages&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 16&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;Add &lt;strong&gt;Kurdish Sorani&lt;/strong&gt; as a second language: a Kurdish home page and About page at &lt;code&gt;/ckb/&lt;/code&gt;.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Translated &lt;strong&gt;navigation&lt;/strong&gt; and a language switcher&lt;/li&gt;&#10;&lt;li&gt;The right &lt;strong&gt;language&lt;/strong&gt; and &lt;strong&gt;text direction&lt;/strong&gt; for every page&lt;/li&gt;&#10;&lt;li&gt;The layout working &lt;strong&gt;right to left&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;The English site &lt;strong&gt;unchanged&lt;/strong&gt; at its existing addresses&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Arabic, or any other language, works the same way.&lt;/p&gt;</description></item><item><title>Add Interactive Features Responsibly</title><link>http://polla.dev/ssg-book/slides/17-add-interactive-features-responsibly/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/17-add-interactive-features-responsibly/</guid><description>&lt;h1 id="add-interactive-features-responsibly"&gt;Add Interactive Features Responsibly&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 17&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;A contact form is where a static site meets its &lt;strong&gt;actual limit&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Build a proper, accessible form&lt;/li&gt;&#10;&lt;li&gt;Watch it &lt;strong&gt;fail to send&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;Make it work the one way that &lt;strong&gt;collects nothing&lt;/strong&gt;: the visitor&amp;rsquo;s own mail program&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;Where does the work happen, and at what cost?&lt;/p&gt;</description></item><item><title>Maintain, Migrate, and Recover</title><link>http://polla.dev/ssg-book/slides/18-maintain-migrate-and-recover/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/18-maintain-migrate-and-recover/</guid><description>&lt;h1 id="maintain-migrate-and-recover"&gt;Maintain, Migrate, and Recover&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 18&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;A site nobody maintains does not stay still: it goes quietly out of date while &lt;strong&gt;appearing to work&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;A &lt;strong&gt;maintenance pass&lt;/strong&gt; over the site you have&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Update&lt;/strong&gt; what you depend on; &lt;strong&gt;archive&lt;/strong&gt; superseded work&lt;/li&gt;&#10;&lt;li&gt;Publish a mistake &lt;strong&gt;on purpose&lt;/strong&gt;, and recover from it live&lt;/li&gt;&#10;&lt;li&gt;Credentials, licensing, privacy, cost, and ownership&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="by-the-end-of-today-you-can"&gt;By the end of today you can&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Run&lt;/strong&gt; a repeatable maintenance pass and act on what it finds&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Update&lt;/strong&gt; a pinned dependency in every place it is pinned&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Retire&lt;/strong&gt; a page without breaking a published address&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Undo&lt;/strong&gt; a live change without rewriting published history&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Start from Chapter 17 (branch &lt;code&gt;chapter-17&lt;/code&gt;): clean, pushed, and deployed.&lt;/p&gt;</description></item><item><title>Build Your Own Publishing Project</title><link>http://polla.dev/ssg-book/slides/19-build-your-own-publishing-project/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/slides/19-build-your-own-publishing-project/</guid><description>&lt;h1 id="build-your-own-publishing-project"&gt;Build Your Own Publishing Project&#10;&lt;/h1&gt;&#10;&lt;p&gt;Static Site Generators in the Age of AI&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Chapter 19&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Polla Fattah&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="todays-goal"&gt;Today&amp;rsquo;s goal&#10;&lt;/h2&gt;&#10;&lt;p&gt;You have done every step once, deliberately. Now the decisions are &lt;strong&gt;yours&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Choose a project you can &lt;strong&gt;finish&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;Write a brief that says what you are &lt;strong&gt;not&lt;/strong&gt; building&lt;/li&gt;&#10;&lt;li&gt;Pick features by what they cost to &lt;strong&gt;keep&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;Test the brief &lt;strong&gt;before&lt;/strong&gt; building, then deliver&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;A site a stranger can use, you can maintain in a year, and whose quality you can &lt;strong&gt;account for&lt;/strong&gt;.&lt;/p&gt;</description></item></channel></rss>