<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<title>Poetry</title>
	<subtitle>Feed with the latest posts of the blog</subtitle>
	<link href="https://impalcature.codeberg.page/poetry/feed.xml" rel="self"/>
	<link href="https://impalcature.codeberg.page/poetry/"/>
	<updated>2026-09-24T00:00:00Z</updated>
	<id>https://impalcature.codeberg.page/poetry/</id>
	<author>
		<name>your-name</name>
		<email>your-email</email>
	</author>
	
		
		<entry>
			<title>Markdown Test Page</title>
			<link href="https://impalcature.codeberg.page/posts/2026-09-24-markdown/"/>
			<updated>2026-09-24T00:00:00Z</updated>
			<id>https://impalcature.codeberg.page/posts/2026-09-24-markdown/</id>
			<content type="html">&lt;p&gt;A simple paragraph with &lt;strong&gt;bold&lt;/strong&gt;, &lt;em&gt;italic&lt;/em&gt;, &lt;code&gt;inline code&lt;/code&gt; and a &lt;a href=https://example.com target=_blank rel=&quot;noopener noreferrer&quot;&gt;link&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;Headings&lt;/h2&gt;&lt;h3&gt;Heading 3&lt;/h3&gt;&lt;h2&gt;Blockquote&lt;/h2&gt;&lt;blockquote&gt;&lt;p&gt;This is a blockquote.&lt;/p&gt;&lt;p&gt;It can contain multiple paragraphs.&lt;/p&gt;&lt;/blockquote&gt;&lt;h2&gt;Lists&lt;/h2&gt;&lt;h3&gt;Unordered&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Item one&lt;/li&gt;&lt;li&gt;Item two&lt;/li&gt;&lt;li&gt;Item three&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Ordered&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;First item&lt;/li&gt;&lt;li&gt;Second item&lt;/li&gt;&lt;li&gt;Third item&lt;/li&gt;&lt;/ol&gt;&lt;h2&gt;Code&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;function helloWorld() {
  console.log(&amp;quot;Hello World&amp;quot;);
}
&lt;/code&gt;&lt;/pre&gt;</content>
		</entry>
	
		
		<entry>
			<title>Metadata</title>
			<link href="https://impalcature.codeberg.page/posts/2026-09-23-metadata/"/>
			<updated>2026-09-23T00:00:00Z</updated>
			<id>https://impalcature.codeberg.page/posts/2026-09-23-metadata/</id>
			<content type="html">&lt;p&gt;To manage the metadata of pages and posts, use the &lt;code&gt;metaTitle&lt;/code&gt; and &lt;code&gt;metaDesc&lt;/code&gt; properties in the front matter:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;---
title: &#39;Your page title&#39;
metaTitle: &#39;Your SEO title&#39;
metaDesc: &#39;Your page description&#39;
tags:
  - first tag
  - second tag
hero:
  image: &#39;/assets/images/my-hero.jpg&#39;
  imageAlt: &#39;A description of the hero image&#39;
---
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The metadata is generated by the partial &lt;code&gt;meta-info.html&lt;/code&gt;.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Use &lt;code&gt;metaTitle&lt;/code&gt; to set a custom title for SEO and social sharing. If &lt;code&gt;metaTitle&lt;/code&gt; is not provided, the page title is automatically generated using the page title and site name.&lt;/li&gt;&lt;li&gt;Use &lt;code&gt;metaDesc&lt;/code&gt; to set the page description.&lt;/li&gt;&lt;li&gt;If the page has a &lt;code&gt;hero.image&lt;/code&gt;, it is automatically used as the social sharing image.&lt;/li&gt;&lt;/ul&gt;</content>
		</entry>
	
		
		<entry>
			<title>RSS Feed</title>
			<link href="https://impalcature.codeberg.page/posts/2026-09-23-RSS-feed/"/>
			<updated>2026-09-23T00:00:00Z</updated>
			<id>https://impalcature.codeberg.page/posts/2026-09-23-RSS-feed/</id>
			<content type="html">&lt;p&gt;The RSS feed is generated automatically from the post collection and &lt;code&gt;rss.html&lt;/code&gt; template which includes the following Atom XML structure:&lt;/p&gt;&lt;pre&gt;&lt;code class=language-xml&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;feed xmlns=&amp;quot;http://www.w3.org/2005/Atom&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;
	&amp;lt;title&amp;gt;{{ title }}&amp;lt;/title&amp;gt;
	&amp;lt;subtitle&amp;gt;{{ summary }}&amp;lt;/subtitle&amp;gt;
	&amp;lt;link href=&amp;quot;{{ site.url }}{{ permalink }}&amp;quot; rel=&amp;quot;self&amp;quot;/&amp;gt;
	&amp;lt;link href=&amp;quot;{{ site.url }}/&amp;quot;/&amp;gt;
	&amp;lt;updated&amp;gt;{{ collections.posts | getNewestCollectionItemDate | dateToRfc3339 }}&amp;lt;/updated&amp;gt;
	&amp;lt;id&amp;gt;{{ site.url }}/&amp;lt;/id&amp;gt;
	&amp;lt;author&amp;gt;
		&amp;lt;name&amp;gt;{{ site.authorName }}&amp;lt;/name&amp;gt;
		&amp;lt;email&amp;gt;{{ site.authorEmail }}&amp;lt;/email&amp;gt;
	&amp;lt;/author&amp;gt;
	{% for post in collections.posts %}
		{% set absolutePostUrl %}{{ post.url | htmlBaseUrl(site.url) }}{% endset %}
		&amp;lt;entry&amp;gt;
			&amp;lt;title&amp;gt;{{ post.data.title }}&amp;lt;/title&amp;gt;
			&amp;lt;link href=&amp;quot;{{ absolutePostUrl }}&amp;quot;/&amp;gt;
			&amp;lt;updated&amp;gt;{{ post.date | dateToRfc3339 }}&amp;lt;/updated&amp;gt;
			&amp;lt;id&amp;gt;{{ absolutePostUrl }}&amp;lt;/id&amp;gt;
			&amp;lt;content type=&amp;quot;html&amp;quot;&amp;gt;{{ post.content | renderTransforms(post.data.page, site.url) }}&amp;lt;/content&amp;gt;
		&amp;lt;/entry&amp;gt;
	{% endfor %}
&amp;lt;/feed&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The template loops through &lt;code&gt;collections.posts&lt;/code&gt; and creates an &lt;code&gt;&amp;lt;entry&amp;gt;&lt;/code&gt; for each post.&lt;br&gt;The feed also uses the site information defined in &lt;code&gt;_data/site.json&lt;/code&gt;, including:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;url&lt;/code&gt;: used to generate absolute URLs.&lt;/li&gt;&lt;li&gt;&lt;code&gt;authorName&lt;/code&gt;: used for the feed author.&lt;/li&gt;&lt;li&gt;&lt;code&gt;authorEmail&lt;/code&gt;: used for the feed author email.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Site URL&lt;/h2&gt;&lt;p&gt;Make sure the &lt;code&gt;url&lt;/code&gt; property in &lt;code&gt;_data/site.json&lt;/code&gt; contains the public URL of the website:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&amp;quot;url&amp;quot;: &amp;quot;https://example.com&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This is important because RSS readers need absolute URLs to access the feed and its posts.&lt;/p&gt;&lt;h2&gt;Adding new posts&lt;/h2&gt;&lt;p&gt;There is no need to manually update the feed when adding a new post.&lt;br&gt;Once a post is saved, it will automatically appear in the generated &lt;code&gt;/feed.xml&lt;/code&gt;.&lt;br&gt;A link to the RSS feed is also available in the Social Menu below.&lt;/p&gt;</content>
		</entry>
	
		
		<entry>
			<title>Permalinks and URLs</title>
			<link href="https://impalcature.codeberg.page/posts/2026-09-22-permalinks-and-URLs/"/>
			<updated>2026-09-22T00:00:00Z</updated>
			<id>https://impalcature.codeberg.page/posts/2026-09-22-permalinks-and-URLs/</id>
			<content type="html">&lt;p&gt;Eleventy generates the URL of each page from its file location and configuration. You can also define a custom URL using the &lt;code&gt;permalink&lt;/code&gt; property in the front matter.&lt;/p&gt;&lt;h2&gt;Posts&lt;/h2&gt;&lt;p&gt;The post date is taken from the Markdown filename and Eleventy generates the URL as follow:&lt;/p&gt;&lt;pre&gt;&lt;code class=language-text&gt;posts/
└── 2026-09-23-my-first-post.md
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The generated post is available at:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;/posts/2026-09-23-my-first-post/
&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;Pages&lt;/h2&gt;&lt;p&gt;A page can define its URL using the permalink property:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;---
title: &#39;About&#39;
metaDesc: &#39;About this website&#39;
layout: &#39;layouts/page.html&#39;
permalink: &#39;about.html&#39;
---
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This generates the page:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;/about.html
&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;Blog&lt;/h2&gt;&lt;p&gt;The Blog uses Eleventy&#39;s pagination feature to display the post collection:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;---
    title: &#39;Blog&#39;
    layout: &#39;layouts/feed.html&#39;
    pagination:
      data: collections.posts
      size: 9
    permalink: &#39;blog/index.html&#39;
    paginationPrevText: &#39;Older&#39;
    paginationNextText: &#39;Newer&#39;
    paginationAnchor: &#39;#post-list&#39;
    ---
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In this example, 9 posts are displayed per page and the permalink automatically generates the URL for each Blog page.&lt;br&gt;The first page is available at:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;    /blog/index.html
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Additional pages are generated using the page number:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;    /blog/page/1/index.html
    /blog/page/2/index.html
    /blog/page/3/index.html
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The &lt;code&gt;paginationPrevText&lt;/code&gt; and &lt;code&gt;paginationNextText&lt;/code&gt; properties define the labels used for navigating between Blog pages.&lt;/p&gt;</content>
		</entry>
	
		
		<entry>
			<title>Add Images</title>
			<link href="https://impalcature.codeberg.page/posts/2026-09-21-add-images/"/>
			<updated>2026-09-21T00:00:00Z</updated>
			<id>https://impalcature.codeberg.page/posts/2026-09-21-add-images/</id>
			<content type="html">&lt;p&gt;Images can be added to the &lt;code&gt;src/assets/images&lt;/code&gt; folder and then referenced from posts and pages using standard Markdown syntax.&lt;/p&gt;&lt;h2&gt;Adding an image&lt;/h2&gt;&lt;p&gt;Place the image inside the &lt;code&gt;src/assets/images&lt;/code&gt; folder. For larger sites, it can be useful to organize images into subfolders.&lt;br&gt;For example:&lt;/p&gt;&lt;pre&gt;&lt;code class=language-text&gt;assets/
└── images/
    └── my-image.jpg
&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;Adding a hero image&lt;/h2&gt;&lt;p&gt;A hero image can be added to a post or page through the front matter.&lt;br&gt;Add &lt;code&gt;hero.image&lt;/code&gt; and &lt;code&gt;hero.imageAlt&lt;/code&gt; to the Front Matter.&lt;br&gt;For example:&lt;/p&gt;&lt;pre&gt;&lt;code class=language-yaml&gt;---
title: &#39;My Post&#39;
metaDesc: &#39;Post description&#39;
tags:
  - your tag
hero:
  image: &#39;/assets/images/my-hero.jpg&#39;
  imageAlt: &#39;A description of the hero image&#39;
---
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The hero image will be displayed automatically by the site.&lt;/p&gt;&lt;h2&gt;Adding an image to a post or page&lt;/h2&gt;&lt;p&gt;Use the standard Markdown image syntax:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;![Image description](/assets/images/my-image.jpg)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The text inside the square brackets is the image&#39;s alternative text (alt). Use a short and descriptive description of the image.&lt;br&gt;&lt;picture&gt;&lt;source type=image/avif srcset=&quot;https://impalcature.codeberg.page/assets/images/xGCcfaxuuY-150.avif 150w, https://impalcature.codeberg.page/assets/images/xGCcfaxuuY-500.avif 500w, https://impalcature.codeberg.page/assets/images/xGCcfaxuuY-700.avif 700w&quot; sizes=auto&gt;&lt;source type=image/webp srcset=&quot;https://impalcature.codeberg.page/assets/images/xGCcfaxuuY-150.webp 150w, https://impalcature.codeberg.page/assets/images/xGCcfaxuuY-500.webp 500w, https://impalcature.codeberg.page/assets/images/xGCcfaxuuY-700.webp 700w&quot; sizes=auto&gt;&lt;img loading=lazy decoding=async src=https://impalcature.codeberg.page/assets/images/xGCcfaxuuY-150.jpeg alt=&quot;Pietra di Bismantova&quot; width=700 height=457 srcset=&quot;https://impalcature.codeberg.page/assets/images/xGCcfaxuuY-150.jpeg 150w, https://impalcature.codeberg.page/assets/images/xGCcfaxuuY-500.jpeg 500w, https://impalcature.codeberg.page/assets/images/xGCcfaxuuY-700.jpeg 700w&quot; sizes=auto&gt;&lt;/picture&gt;&lt;/p&gt;&lt;h2&gt;Image processing in development&lt;/h2&gt;&lt;p&gt;After adding an image, run the development server or build the site again to make sure the image is available at the expected path.&lt;br&gt;During development, images may take a little longer to appear after being added or changed. This is because the site uses the &lt;code&gt;@11ty/eleventy-img&lt;/code&gt; plugin to process and optimize images.&lt;br&gt;This processing can take a few moments, especially when working with large images.&lt;br&gt;After adding or changing an image, give the development server a moment to finish processing before checking the result.&lt;/p&gt;&lt;h2&gt;Responsive images&lt;/h2&gt;&lt;p&gt;Images are automatically processed and optimized by &lt;code&gt;@11ty/eleventy-img&lt;/code&gt;.&lt;br&gt;The image processing configuration generates multiple formats and sizes:&lt;/p&gt;&lt;pre&gt;&lt;code class=language-js&gt;eleventyConfig.addPlugin(eleventyImageTransformPlugin, {
  extensions: &amp;quot;html&amp;quot;,
  outputDir: &amp;quot;./dist/assets/images/&amp;quot;,
  urlPath: &amp;quot;/assets/images/&amp;quot;,
  formats: [&amp;quot;avif&amp;quot;, &amp;quot;webp&amp;quot;, &amp;quot;jpeg&amp;quot;],
  widths: [150, 500, 900],
  htmlOptions: {
    imgAttributes: {
      loading: &amp;quot;lazy&amp;quot;,
      decoding: &amp;quot;async&amp;quot;,
    },
  },
});
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For each image, the site automatically generates:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;AVIF, WebP and JPEG versions.&lt;/li&gt;&lt;li&gt;150px, 500px and 900px wide versions.&lt;/li&gt;&lt;li&gt;Responsive image markup so the browser can select an appropriate image size.&lt;/li&gt;&lt;li&gt;Lazy loading using loading=&amp;quot;lazy&amp;quot;.&lt;/li&gt;&lt;li&gt;Asynchronous image decoding using decoding=&amp;quot;async&amp;quot;.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This means you only need to add the original image to the &lt;code&gt;src/assets/images&lt;/code&gt; folder. The optimized versions are generated automatically when the site is built.&lt;br&gt;The generated images are placed in:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;dist/
└── assets/
    └── images/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You do not need to create the different formats or sizes manually.&lt;/p&gt;</content>
		</entry>
	
		
		<entry>
			<title>Add a Post</title>
			<link href="https://impalcature.codeberg.page/posts/2026-09-20-add-a-post/"/>
			<updated>2026-09-20T00:00:00Z</updated>
			<id>https://impalcature.codeberg.page/posts/2026-09-20-add-a-post/</id>
			<content type="html">&lt;p&gt;To add a new post, simply create a &lt;code&gt;*.md&lt;/code&gt; file inside the &lt;code&gt;posts&lt;/code&gt; folder (or any of its subfolders).&lt;br&gt;To set the post date, name the file using the following format:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;yyyy-mm-dd-your-title.md
&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;Front Matter&lt;/h2&gt;&lt;p&gt;Start by adding the front matter using the following structure:&lt;/p&gt;&lt;pre&gt;&lt;code class=language-yaml&gt;---
title: &#39;My Post&#39;
metaTitle: &#39;My Title&#39;
metaDesc: &#39;Post description&#39;
summary: &#39;A short description displayed in the blog.&#39;
tags:
  - first tag
  - second tag
hero:
  image: &#39;/assets/images/my-hero.jpg&#39;
  imageAlt: &#39;A description of the hero image&#39;
---
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Use the &lt;code&gt;tags&lt;/code&gt; property in the front matter to assign one or more tags to the post.&lt;br&gt;If &lt;code&gt;summary&lt;/code&gt; is not provided, the short description displayed in the blog is generated automatically from the post content.&lt;/p&gt;&lt;h2&gt;Content&lt;/h2&gt;&lt;p&gt;Then write the post content in &lt;a href=https://www.markdownguide.org/basic-syntax/ target=_blank rel=&quot;noopener noreferrer&quot;&gt;Markdown&lt;/a&gt;.&lt;br&gt;Once the post is saved, it will be automatically added to the Blog.&lt;/p&gt;</content>
		</entry>
	
		
		<entry>
			<title>Add a Page</title>
			<link href="https://impalcature.codeberg.page/posts/2026-09-19-add-a-page/"/>
			<updated>2026-09-19T00:00:00Z</updated>
			<id>https://impalcature.codeberg.page/posts/2026-09-19-add-a-page/</id>
			<content type="html">&lt;p&gt;To add a new page, simply create a &lt;code&gt;*.md&lt;/code&gt; file inside the &lt;code&gt;pages&lt;/code&gt; folder (or any of its subfolders).&lt;br&gt;Start by adding the front matter using the following structure:&lt;/p&gt;&lt;pre&gt;&lt;code class=language-yaml&gt;---
title: &#39;My Page&#39;
metaDesc: &#39;Page description&#39;
hero:
  image: &#39;/assets/images/my-hero.jpg&#39;
  imageAlt: &#39;A description of the hero image&#39;
---
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then write the page content in &lt;a href=https://www.markdownguide.org/basic-syntax/ target=_blank rel=&quot;noopener noreferrer&quot;&gt;Markdown&lt;/a&gt;.&lt;/p&gt;</content>
		</entry>
	
		
		<entry>
			<title>Navigation Menu</title>
			<link href="https://impalcature.codeberg.page/posts/2026-09-18-manage-menu/"/>
			<updated>2026-09-18T00:00:00Z</updated>
			<id>https://impalcature.codeberg.page/posts/2026-09-18-manage-menu/</id>
			<content type="html">&lt;p&gt;The navigation menu is managed through the &lt;code&gt;_data/navigation.json&lt;/code&gt; file.&lt;/p&gt;&lt;h2&gt;Main navigation&lt;/h2&gt;&lt;p&gt;The &lt;code&gt;mainMenu&lt;/code&gt; section contains the links displayed in the main navigation menu.&lt;/p&gt;&lt;pre&gt;&lt;code class=language-json&gt;{
 &amp;quot;mainMenu&amp;quot;: [
  {
   &amp;quot;text&amp;quot;: &amp;quot;BLOG&amp;quot;,
   &amp;quot;url&amp;quot;: &amp;quot;/blog/&amp;quot;
  },
  {
   &amp;quot;text&amp;quot;: &amp;quot;TAGS&amp;quot;,
   &amp;quot;url&amp;quot;: &amp;quot;/tags/&amp;quot;
  },
  {
   &amp;quot;text&amp;quot;: &amp;quot;ABOUT&amp;quot;,
   &amp;quot;url&amp;quot;: &amp;quot;/about.html&amp;quot;
  }
 ]
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You can add or adjust the navigation menu items:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;text&lt;/code&gt;: the text displayed in the menu.&lt;/li&gt;&lt;li&gt;&lt;code&gt;url&lt;/code&gt;: the URL the item points to.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Social links&lt;/h2&gt;&lt;p&gt;The social section contains links to social networks and the contact page:&lt;/p&gt;&lt;pre&gt;&lt;code class=language-json&gt;{
 &amp;quot;social&amp;quot;: [
  {
   &amp;quot;text&amp;quot;: &amp;quot;Mastodon&amp;quot;,
   &amp;quot;url&amp;quot;: &amp;quot;https://mastodon.bida.im/@your-account&amp;quot;,
   &amp;quot;iconPath&amp;quot;: &amp;quot;partials/svg/mastodon.svg&amp;quot;,
   &amp;quot;ext&amp;quot;: true
  },
  {
   &amp;quot;text&amp;quot;: &amp;quot;PeerTube&amp;quot;,
   &amp;quot;url&amp;quot;: &amp;quot;https://tubocatodico.bida.im/a/your-account&amp;quot;,
   &amp;quot;iconPath&amp;quot;: &amp;quot;partials/svg/peertube.svg&amp;quot;,
   &amp;quot;ext&amp;quot;: true
  },
  {
   &amp;quot;text&amp;quot;: &amp;quot;RSS&amp;quot;,
   &amp;quot;url&amp;quot;: &amp;quot;/feed.xml&amp;quot;,
   &amp;quot;iconPath&amp;quot;: &amp;quot;partials/svg/RSS.svg&amp;quot;,
   &amp;quot;ext&amp;quot;: true
  },
  {
   &amp;quot;text&amp;quot;: &amp;quot;Email&amp;quot;,
   &amp;quot;url&amp;quot;: &amp;quot;mailto:your-account@email.com&amp;quot;,
   &amp;quot;iconPath&amp;quot;: &amp;quot;partials/svg/mail.svg&amp;quot;
  }
 ]
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You can add or adjust the social menu items:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;text&lt;/code&gt;: the text displayed for the link (if the icon is not available)&lt;/li&gt;&lt;li&gt;&lt;code&gt;url&lt;/code&gt;: the URL the link points to&lt;/li&gt;&lt;li&gt;&lt;code&gt;iconPath&lt;/code&gt;: the path to the SVG icon&lt;/li&gt;&lt;li&gt;&lt;code&gt;ext&lt;/code&gt;: set to true to open the link in a new tab or window&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Note&lt;/h2&gt;&lt;p&gt;When editing &lt;code&gt;_data/navigation.json&lt;/code&gt;, make sure the file remains valid JSON. Use double quotes around property names and values and remember to add commas between objects.&lt;/p&gt;</content>
		</entry>
	
		
		<entry>
			<title>Icons and Logo</title>
			<link href="https://impalcature.codeberg.page/posts/2026-09-17-icons-and-logo/"/>
			<updated>2026-09-17T00:00:00Z</updated>
			<id>https://impalcature.codeberg.page/posts/2026-09-17-icons-and-logo/</id>
			<content type="html">&lt;p&gt;The site logo, favicon and navigation menu icons can be customized by replacing the corresponding SVG files in the &lt;code&gt;_data/site.json&lt;/code&gt; file:&lt;/p&gt;&lt;h2&gt;Logo&lt;/h2&gt;&lt;p&gt;Replace &lt;code&gt;brand.svg&lt;/code&gt; with your own SVG file and update the path if necessary.&lt;/p&gt;&lt;pre&gt;&lt;code class=language-json&gt;&amp;quot;logopath&amp;quot;: &amp;quot;partials/svg/brand.svg&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;Favicon&lt;/h2&gt;&lt;p&gt;Replace favicon with your own favicon file and update the path if necessary.&lt;/p&gt;&lt;pre&gt;&lt;code class=language-json&gt;&amp;quot;faviconPath&amp;quot;: &amp;quot;/assets/favicon/brand.svg&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;Navigation menu icons&lt;/h2&gt;&lt;p&gt;You can customize the navigation menu icons by replacing the corresponding SVG files:&lt;/p&gt;&lt;pre&gt;&lt;code class=language-json&gt;&amp;quot;openMenuPath&amp;quot;: &amp;quot;partials/svg/open-menu.svg&amp;quot;,
&amp;quot;closeMenuPath&amp;quot;: &amp;quot;partials/svg/close-menu.svg&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;Social menu icons&lt;/h2&gt;&lt;p&gt;You can customize the social menu icons. See the post &lt;a href=https://impalcature.codeberg.page/posts/2026-09-18-manage-menu/ &gt;Navigation menu&lt;/a&gt; for more information.&lt;/p&gt;</content>
		</entry>
	
		
		<entry>
			<title>Customize the Theme</title>
			<link href="https://impalcature.codeberg.page/posts/2026-09-16-customize-the-theme/"/>
			<updated>2026-09-16T00:00:00Z</updated>
			<id>https://impalcature.codeberg.page/posts/2026-09-16-customize-the-theme/</id>
			<content type="html">&lt;p&gt;Colors, fonts, spacing, typography and other visual elements can be changed without modifying the content of posts and pages.&lt;br&gt;The visual appearance of the site can be customized by editing the CSS files in the &lt;code&gt;assets/css&lt;/code&gt; folder:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;assets/css/
├── tokens.css
├── reset.css
├── base.css
├── objects.css
├── components.css
├── utilities.css
├── critical.css
├── global.css
└── build/
    ├── critical.css
    └── global.css
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The main CSS files have different purposes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;tokens.css&lt;/code&gt; — Defines the site&#39;s design tokens, such as colors, fonts, spacing and border radius values.&lt;/li&gt;&lt;li&gt;&lt;code&gt;reset.css&lt;/code&gt; — Resets default browser styles to provide a consistent starting point.&lt;/li&gt;&lt;li&gt;&lt;code&gt;base.css&lt;/code&gt; — Defines the basic styles for HTML elements such as body, headings, paragraphs, links and images.&lt;/li&gt;&lt;li&gt;&lt;code&gt;objects.css&lt;/code&gt; — Contains reusable layout patterns such as wrappers, grids, flows and frames.&lt;/li&gt;&lt;li&gt;&lt;code&gt;components.css&lt;/code&gt; — Contains styles for specific site components such as the header, navigation, posts, footer and forms.&lt;/li&gt;&lt;li&gt;&lt;code&gt;utilities.css&lt;/code&gt; — Contains small utility classes for specific, reusable styling needs.&lt;/li&gt;&lt;li&gt;&lt;code&gt;critical.css&lt;/code&gt; — Defines the CSS needed for the initial rendering of the site.&lt;/li&gt;&lt;li&gt;&lt;code&gt;global.css&lt;/code&gt; — Defines the main CSS bundle used by the site.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Do not edit the &#39;build&#39; folder&lt;/h2&gt;&lt;p&gt;The &lt;code&gt;assets/css/build&lt;/code&gt; folder contains CSS files generated automatically from the source CSS files when running the build process.&lt;br&gt;Do not edit manually the files inside this folder, because the changes may be overwritten as soon as the CSS is built.&lt;/p&gt;</content>
		</entry>
	
		
		<entry>
			<title>Site Settings</title>
			<link href="https://impalcature.codeberg.page/posts/2026-09-15-site-settings/"/>
			<updated>2026-09-15T00:00:00Z</updated>
			<id>https://impalcature.codeberg.page/posts/2026-09-15-site-settings/</id>
			<content type="html">&lt;p&gt;The main site settings are managed through the &lt;code&gt;_data/site.json&lt;/code&gt; file.&lt;/p&gt;&lt;pre&gt;&lt;code class=language-json&gt;{
&amp;quot;name&amp;quot;: &amp;quot;My Website&amp;quot;,
&amp;quot;version&amp;quot;: &amp;quot;v1.0.0&amp;quot;,
&amp;quot;url&amp;quot;: &amp;quot;https://example.com&amp;quot;,
&amp;quot;authorName&amp;quot;: &amp;quot;Your Name&amp;quot;,
&amp;quot;authorEmail&amp;quot;: &amp;quot;your-email@example.com&amp;quot;,
&amp;quot;logopath&amp;quot;: &amp;quot;partials/svg/brand.svg&amp;quot;,
&amp;quot;faviconPath&amp;quot;: &amp;quot;/assets/favicon/brand.svg&amp;quot;,
&amp;quot;openMenuPath&amp;quot;: &amp;quot;partials/svg/open-menu.svg&amp;quot;,
&amp;quot;closeMenuPath&amp;quot;: &amp;quot;partials/svg/close-menu.svg&amp;quot;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Each property has a specific purpose:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;name&lt;/code&gt;: the name of the website.&lt;/li&gt;&lt;li&gt;&lt;code&gt;version&lt;/code&gt;: the current version of the website.&lt;/li&gt;&lt;li&gt;&lt;code&gt;url&lt;/code&gt;: the website URL.&lt;/li&gt;&lt;li&gt;&lt;code&gt;authorName&lt;/code&gt;: the name of the author.&lt;/li&gt;&lt;li&gt;&lt;code&gt;authorEmail&lt;/code&gt;: the author&#39;s email address.&lt;/li&gt;&lt;li&gt;&lt;code&gt;logopath&lt;/code&gt;: the path to the SVG file used as the site logo.&lt;/li&gt;&lt;li&gt;&lt;code&gt;faviconPath&lt;/code&gt;: the path to the favicon displayed by the browser.&lt;/li&gt;&lt;li&gt;&lt;code&gt;openMenuPath&lt;/code&gt;: the path to the icon used to open the navigation menu.&lt;/li&gt;&lt;li&gt;&lt;code&gt;closeMenuPath&lt;/code&gt;: the path to the icon used to close the navigation menu.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;When editing &lt;code&gt;_data/site.json&lt;/code&gt;, make sure the file remains valid JSON. Use double quotes around property names and values and remember to add commas between properties.&lt;/p&gt;</content>
		</entry>
	
		
		<entry>
			<title>Getting started</title>
			<link href="https://impalcature.codeberg.page/posts/2026-09-14-getting-started/"/>
			<updated>2026-09-14T00:00:00Z</updated>
			<id>https://impalcature.codeberg.page/posts/2026-09-14-getting-started/</id>
			<content type="html">&lt;p&gt;To get started with Poetry, clone or fork the repository and install the required dependencies. Development should be done on the &lt;code&gt;master&lt;/code&gt; branch; the &lt;code&gt;pages&lt;/code&gt; branch contains the build.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Clone or fork the repository:&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;&lt;code&gt;git clone https://codeberg.org/impalcature/poetry.git
&lt;/code&gt;&lt;/pre&gt;&lt;ol start=2&gt;&lt;li&gt;Enter the project directory:&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;&lt;code&gt;cd poetry
git switch master
&lt;/code&gt;&lt;/pre&gt;&lt;ol start=3&gt;&lt;li&gt;Install the dependencies:&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;&lt;code&gt;npm install
&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;Running the development server&lt;/h2&gt;&lt;p&gt;To start the development server:&lt;/p&gt;&lt;pre&gt;&lt;code class=language-bash&gt;npm run start
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The site will be available at &lt;code&gt;http://localhost:8080&lt;/code&gt;.&lt;/p&gt;&lt;h2&gt;Building for production&lt;/h2&gt;&lt;p&gt;To generate the production build:&lt;/p&gt;&lt;pre&gt;&lt;code class=language-bash&gt;npm run build
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The generated files are placed in the &lt;code&gt;dist&lt;/code&gt; folder, ready to be deployed to the hosting service.&lt;/p&gt;&lt;h2&gt;Deploying to a subfolder&lt;/h2&gt;&lt;p&gt;If the site is deployed in a subfolder, such as &lt;code&gt;/poetry/&lt;/code&gt; on Codeberg Pages, run:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;SUBFOLDER=true npm run build
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In &lt;code&gt;eleventy.config.js&lt;/code&gt; replace &lt;code&gt;/poetry&lt;/code&gt; with the subfolder path required by your hosting service:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;if (process.env.SUBFOLDER === &amp;quot;true&amp;quot;) {
    addPathPrefix(eleventyConfig, &amp;quot;/poetry&amp;quot;);
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The SUBFOLDER option only changes the URLs generated in the HTML files; the resulting &lt;code&gt;dist&lt;/code&gt; folder is otherwise unchanged and ready to be deployed.&lt;/p&gt;</content>
		</entry>
	
		
		<entry>
			<title>When I Heard the Learn’d Astronomer</title>
			<link href="https://impalcature.codeberg.page/posts/2026-08-26-poem/"/>
			<updated>2026-08-26T00:00:00Z</updated>
			<id>https://impalcature.codeberg.page/posts/2026-08-26-poem/</id>
			<content type="html">&lt;p&gt;When I heard the learn’d astronomer,&lt;br&gt;When the proofs, the figures, were ranged in columns before me,&lt;br&gt;When I was shown the charts and diagrams, to add, divide and measure them,&lt;br&gt;When I sitting heard the astronomer where he lectured with much applause in the lecture-room,&lt;br&gt;How soon unaccountable I became tired and sick,&lt;br&gt;Till rising and gliding out I wander’d off by myself,&lt;br&gt;In the mystical moist night-air and from time to time,&lt;br&gt;Look’d up in perfect silence at the stars.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Walt Whitman, “When I Heard the Learn’d Astronomer”&lt;/em&gt;&lt;/p&gt;</content>
		</entry>
	
</feed>