<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Martijn's Notes</title><link>https://1552afcb.notes-6if.pages.dev/en/</link><description>Recent content on Martijn's Notes</description><generator>Hugo</generator><language>en</language><copyright>Copyright © 2016-2026 van den &lt;span class='bold-rotate'&gt;B&lt;/span&gt;oom. All Rights Reserved.</copyright><atom:link href="https://1552afcb.notes-6if.pages.dev/en/index.xml" rel="self" type="application/rss+xml"/><item><title>Digital Radar 2026-07-20</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/2026-07-20-digital-radar/</link><pubDate>Mon, 20 Jul 2026 06:30:15 +0200</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/2026-07-20-digital-radar/</guid><description><![CDATA[<h1 id="digital-radar" data-numberify>Digital Radar<a class="anchor ms-1" href="#digital-radar"></a></h1>

<h2 id="executive-summary" data-numberify>Executive Summary<a class="anchor ms-1" href="#executive-summary"></a></h2>
<p>Today’s technology landscape is defined by structural shifts across infrastructure, software licensing, and artificial intelligence architectures. In artificial intelligence, the industry is transitioning from brute-force scaling of parameters to optimizing inference-time compute and deploying agentic workflows. This shift is mirrored in cloud computing, where hyperscalers are aggressively deploying custom silicon to mitigate the high capital expenditure of AI workloads while simultaneously building out sovereign cloud architectures to meet stringent regional compliance mandates.</p>]]></description></item><item><title>Quantum Computing Status</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/2026-07-14-quantum-computing-status/</link><pubDate>Tue, 14 Jul 2026 09:00:00 +0200</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/2026-07-14-quantum-computing-status/</guid><description><![CDATA[<h1 id="quantum-computing-status" data-numberify>Quantum Computing Status<a class="anchor ms-1" href="#quantum-computing-status"></a></h1>

<h2 id="summary" data-numberify>Summary<a class="anchor ms-1" href="#summary"></a></h2>
<p>Quantum computing is a cloud and research discipline today, not a consumer product. IBM says its systems run in data centers with cryogenic infrastructure and access through the IBM Quantum Platform, and its public roadmap still runs toward fault-tolerant systems by 2029 (<a href="https://www.ibm.com/quantum/hardware" target="_blank" rel="noopener noreferrer">IBM hardware<i class="fas fa-external-link-square-alt ms-1"></i></a>, <a href="https://www.ibm.com/quantum/hardware#roadmap" target="_blank" rel="noopener noreferrer">IBM roadmap<i class="fas fa-external-link-square-alt ms-1"></i></a>). Microsoft also positions Azure Quantum as a cloud service for quantum plus HPC/AI workloads, not as home hardware (<a href="https://azure.microsoft.com/en-us/products/quantum" target="_blank" rel="noopener noreferrer">Azure Quantum<i class="fas fa-external-link-square-alt ms-1"></i></a>).</p>]]></description></item><item><title>Digital Radar 2026-07-14</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/2026-07-14-digital-radar/</link><pubDate>Tue, 14 Jul 2026 06:57:22 +0200</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/2026-07-14-digital-radar/</guid><description><![CDATA[<h1 id="digital-radar" data-numberify>Digital Radar<a class="anchor ms-1" href="#digital-radar"></a></h1>

<h2 id="executive-summary" data-numberify>Executive Summary<a class="anchor ms-1" href="#executive-summary"></a></h2>
<p>Today’s technology landscape is defined by a transition from experimental implementations to structural, architectural shifts. In artificial intelligence, the industry is moving rapidly beyond passive chat interfaces toward &ldquo;agentic&rdquo; systems capable of autonomous execution and reasoning. This shift is placing new demands on cloud infrastructure, driving cloud providers to expand custom silicon deployments and establish localized, sovereign cloud environments to meet stringent global compliance standards.</p>]]></description></item><item><title>Digital Radar 2026-07-13</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/2026-07-13-digital-radar/</link><pubDate>Mon, 13 Jul 2026 07:45:32 +0200</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/2026-07-13-digital-radar/</guid><description><![CDATA[<h1 id="digital-radar" data-numberify>Digital Radar<a class="anchor ms-1" href="#digital-radar"></a></h1>

<h2 id="executive-summary" data-numberify>Executive Summary<a class="anchor ms-1" href="#executive-summary"></a></h2>
<p>Today’s technology landscape is defined by a transition from experimental implementation to structural optimization. In artificial intelligence, the industry is shifting away from simple, prompt-based interactions toward autonomous, multi-agent workflows and highly efficient Small Language Models (SLMs) designed for edge deployment. This architectural evolution is mirrored in the cloud and DevOps sectors, where custom silicon and platform engineering are reducing the cognitive load on developers while optimizing spiraling infrastructure costs.</p>]]></description></item><item><title>Digital Radar 2026-07-12</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/2026-07-12-digital-radar/</link><pubDate>Sun, 12 Jul 2026 10:06:34 +0200</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/2026-07-12-digital-radar/</guid><description><![CDATA[<h1 id="digital-radar" data-numberify>Digital Radar<a class="anchor ms-1" href="#digital-radar"></a></h1>

<h2 id="executive-summary" data-numberify>Executive Summary<a class="anchor ms-1" href="#executive-summary"></a></h2>
<p>Today’s technology landscape is defined by a critical transition from experimental implementation to operational maturity. In artificial intelligence, the industry is shifting away from monolithic, brute-force models toward highly optimized, agentic workflows and localized Small Language Models (SLMs). This transition promises to democratize AI capabilities while addressing pressing concerns regarding operational costs and data privacy.</p>
<p>Simultaneously, the cybersecurity domain is grappling with systemic vulnerabilities within the software supply chain, forcing organizations to re-evaluate trust boundaries and accelerate the adoption of memory-safe programming languages.</p>]]></description></item><item><title>Azure DevOps — Part 2: Your First YAML Pipeline</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/2026-azure-devops-pipelines-eerste-pipeline/</link><pubDate>Tue, 14 Apr 2026 19:01:00 +0200</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/2026-azure-devops-pipelines-eerste-pipeline/</guid><description><![CDATA[<p>In <a href="../2026-azure-devops-repos-branches-policies-pull-requests/">part 1</a> the <code>azure-pipelines.yml</code> was merged into the <code>main</code> branch via a Pull Request. In this second part we attach that YAML to a pipeline and run it on a Microsoft-hosted Windows agent in the cloud.</p>

<h2 id="the-pipelines-section" data-numberify>The Pipelines section<a class="anchor ms-1" href="#the-pipelines-section"></a></h2>
<p>The Pipelines section in the sidebar contains more items than Repos:</p>
<ul>
<li><strong>Pipelines</strong> — the CI pipelines (build)</li>
<li><strong>Environments</strong> — deployment targets such as acceptance and production</li>
<li><strong>Releases</strong> — the classic visual release pipelines (older system, being replaced by multi-stage YAML)</li>
<li><strong>Library</strong> — variable groups and secure files</li>
<li><strong>Task groups</strong> — reusable task blocks that can be shared across multiple pipelines</li>
<li><strong>Deployment groups</strong> — self-hosted agents grouped per environment</li>
</ul>
<p>On a new project the Pipelines list is empty.</p>]]></description><enclosure url="https://1552afcb.notes-6if.pages.dev/posts/2026-azure-devops-pipelines-eerste-pipeline/cover.png" length="110910" type="image/png"/></item><item><title>Azure DevOps — Part 1: Repos, Branches, Policies and Pull Requests</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/2026-azure-devops-repos-branches-policies-pull-requests/</link><pubDate>Tue, 14 Apr 2026 19:00:00 +0200</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/2026-azure-devops-repos-branches-policies-pull-requests/</guid><description><![CDATA[<p>Azure DevOps is Microsoft&rsquo;s platform for managing the complete software delivery chain: version control, CI/CD pipelines, project planning, package feeds and documentation. In this first part of the series we build the foundation: a Git repository, branch protection and the Pull Request workflow.</p>

<h2 id="setup-organisation-and-project" data-numberify>Setup: organisation and project<a class="anchor ms-1" href="#setup-organisation-and-project"></a></h2>
<p>After logging in to <a href="https://dev.azure.com" target="_blank" rel="noopener noreferrer">dev.azure.com<i class="fas fa-external-link-square-alt ms-1"></i></a> the <code>mvdboom</code> organisation is visible with one existing project.</p>
<p><picture><img class="img-fluid " alt="mvdboom organisation with test_hello_world project" src="/posts/2026-azure-devops-repos-branches-policies-pull-requests/screenshot-01-mvdboom-organisatie.png" loading="lazy" width="2559" height="1410" />
</picture>

</p>]]></description><enclosure url="https://1552afcb.notes-6if.pages.dev/posts/2026-azure-devops-repos-branches-policies-pull-requests/screenshot-11-feature-branch.png" length="168514" type="image/png"/></item><item><title>Windows Server 2022 Home Lab — AD DS, DNS, CA and Secured RDP</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/ws2022-home-lab-ad-dns-ca-rdp/</link><pubDate>Thu, 02 Apr 2026 10:00:00 +0200</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/ws2022-home-lab-ad-dns-ca-rdp/</guid><description><![CDATA[<p><a href="WS2022-Lab-Manual-EN.docx" download class="btn btn-outline-primary btn-sm mb-3"><i class="fas fa-download me-1"></i> Download as Word document</a></p>
<p>This article describes the full build of a two-server Windows Server 2022 home lab in Proxmox VE. Together, the two virtual machines provide Active Directory Domain Services, DNS, Group Policy and a Certificate Authority (ADCS). RDP connections are secured with PKI certificates so the Mac Mini M1 management workstation connects without certificate warnings.</p>
<p>This is part 3 of the series on building a Windows DevOps lab in Proxmox. In <a href="/posts/ws2022-proxmox-vm-creation/">part 1</a> I described how to create a VM, and in <a href="/posts/ws2022-proxmox-template-preparation/">part 2</a> how to prepare the template.</p>]]></description></item><item><title>Windows Server 2022 in Proxmox — Template Preparation</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/ws2022-proxmox-template-preparation/</link><pubDate>Tue, 31 Mar 2026 10:00:00 +0200</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/ws2022-proxmox-template-preparation/</guid><description><![CDATA[<p><a href="WS2022-in-Proxmox-Template-Preparation-Guide-EN.docx" download class="btn btn-outline-primary btn-sm mb-3"><i class="fas fa-download me-1"></i> Download as Word document</a></p>
<p>This is part 2 of the series on building a Windows DevOps lab in Proxmox. In <a href="/posts/ws2022-proxmox-vm-creation/">part 1</a> I described how to create the VM. In this article I prepare the VM as a reusable Proxmox template. All future VMs — the CA server, member servers and other roles — will be cloned from this template.</p>
<blockquote>
<p><strong>Important:</strong> After Sysprep, <strong>never</strong> start the VM again. If you do, the generalization is consumed and the template must be rebuilt from scratch.</p>]]></description></item><item><title>Windows Server 2022 in Proxmox — Creating a VM</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/ws2022-proxmox-vm-creation/</link><pubDate>Mon, 30 Mar 2026 10:00:00 +0200</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/ws2022-proxmox-vm-creation/</guid><description><![CDATA[<p><a href="WS2022-in-Proxmox-VM-Creation-Guide-EN.docx" download class="btn btn-outline-primary btn-sm mb-3"><i class="fas fa-download me-1"></i> Download as Word document</a></p>
<p>In this article I describe step by step how I create a Windows Server 2022 VM in Proxmox VE 9.1.6. The guide is based on real-world experience and includes all corrections and lessons learned along the way. This is part 1 of a series on building a fully functional Windows DevOps lab in Proxmox.</p>

<h2 id="lab-environment" data-numberify>Lab Environment<a class="anchor ms-1" href="#lab-environment"></a></h2>
<table>
	<thead>
			<tr>
					<th>Component</th>
					<th>Value</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Proxmox host</td>
					<td>macpro2013.local — Mac Pro 2013 Trashcan</td>
			</tr>
			<tr>
					<td>Proxmox version</td>
					<td>9.1.6</td>
			</tr>
			<tr>
					<td>RAM</td>
					<td>128 GB</td>
			</tr>
			<tr>
					<td>Storage</td>
					<td>3.6 TB NVMe (local-lvm pool)</td>
			</tr>
			<tr>
					<td>Network bridge</td>
					<td>vmbr0 — internal lab network (192.168.178.x)</td>
			</tr>
			<tr>
					<td>Proxmox WebUI</td>
					<td>https://192.168.178.205:8006</td>
			</tr>
	</tbody>
</table>
<hr>

<h2 id="why-a-ca-is-needed--the-ssl-warning" data-numberify>Why a CA Is Needed — the SSL Warning<a class="anchor ms-1" href="#why-a-ca-is-needed--the-ssl-warning"></a></h2>
<p>Anyone who opens the Proxmox WebUI via <code>macpro2013.local</code> in Safari will immediately see a certificate warning. Proxmox uses a self-signed certificate by default.</p>]]></description></item><item><title>Windows Server 2022 — Active Directory and DNS Installation</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/windows_server_2022_ad_dns/</link><pubDate>Fri, 27 Mar 2026 00:00:00 +0100</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/windows_server_2022_ad_dns/</guid><description><![CDATA[<p>This article describes step by step how I installed Active Directory Domain Services (AD DS) and DNS on a Windows Server 2022 Datacenter VM in a VMware Fusion lab environment. The result is a fully functional domain controller for the domain <strong>lab.local</strong>, serving as the foundation for a Windows DevOps lab.</p>

<h2 id="environment" data-numberify>Environment<a class="anchor ms-1" href="#environment"></a></h2>
<table>
	<thead>
			<tr>
					<th>Component</th>
					<th>Value</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Virtualization</td>
					<td>VMware Fusion (macOS)</td>
			</tr>
			<tr>
					<td>Guest OS</td>
					<td>Windows Server 2022 Datacenter (Desktop Experience)</td>
			</tr>
			<tr>
					<td>Hostname</td>
					<td>DC01</td>
			</tr>
			<tr>
					<td>Domain name</td>
					<td>lab.local</td>
			</tr>
			<tr>
					<td>NetBIOS name</td>
					<td>LAB</td>
			</tr>
			<tr>
					<td>Lab network adapter</td>
					<td>Ethernet1 — 172.16.37.10 (static IP)</td>
			</tr>
			<tr>
					<td>Internet adapter</td>
					<td>Ethernet0 — DHCP via VMware NAT</td>
			</tr>
	</tbody>
</table>
<hr>

<h2 id="step-1--configure-networking" data-numberify>Step 1 — Configure Networking<a class="anchor ms-1" href="#step-1--configure-networking"></a></h2>
<p>Before installing Active Directory, the domain controller needs a static IP address. AD DS and DNS depend on a stable address.</p>]]></description></item><item><title>Windows Packet Capturing for LDAPS Analysis</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/windows_packet_capturing/</link><pubDate>Sun, 18 Jan 2026 20:19:01 +0100</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/windows_packet_capturing/</guid><description><![CDATA[<p>Troubleshooting LDAPS Connectivity: Using Built-in Windows Tools to Audit Firewall Compliance
As organizations move toward more secure infrastructure, migrating from standard LDAP (Port 389) to LDAPS (Port 636) is a critical step. However, this transition often reveals &ldquo;silent&rdquo; failures where a network firewall might allow the initial connection but block the subsequent SSL/TLS handshake.</p>
<p>At Van den Boom Online, we understand that a smooth user experience starts with a robust backend. In this guide, we’ll show you how to perform packet capturing using only built-in Windows tools to verify if your traffic is reaching its destination or being dropped by security appliances.</p>]]></description></item><item><title>Install Ansible AWX 24.6.1 in Minikube on Ubuntu 24.04.2 LTS in a single VM</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/ansible_awx/</link><pubDate>Wed, 02 Jul 2025 13:35:25 +0200</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/ansible_awx/</guid><description><![CDATA[<p>Create a Ubuntu Virtual Machine with:</br>
32 GB RAM</br>
8 cores</br>
120 GB HD</br></p>
<p>Step-by-step: Install AWX 24.6.1 on Minikube (Ubuntu)</p>
<p>🔧 1. System Preparation</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="ln">1</span><span class="cl">$ sudo apt update &amp;&amp; sudo apt upgrade -y
</span></span><span class="line"><span class="ln">2</span><span class="cl">$ sudo apt install -y curl wget apt-transport-https ca-certificates gnupg lsb-release software-properties-common
</span></span><span class="line"><span class="ln">3</span><span class="cl">$ sudo timedatectl set-timezone Europe/Amsterdam
</span></span></code></pre></div><p>📦 2. Install Docker (Minikube backend)</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="ln"> 1</span><span class="cl">$ curl -fsSL https://get.docker.com | sudo bash
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">$ sudo usermod -aG docker $USER
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">$ newgrp docker  # Activate group without reboot
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">Enable and start Docker:
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">$ sudo systemctl enable docker
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">$ sudo systemctl start docker
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">Test:
</span></span><span class="line"><span class="ln">10</span><span class="cl">$ docker run hello-world
</span></span></code></pre></div><p>🧱 3. Install Minikube</p>]]></description></item><item><title>Install Red Hat Ansible Automation Platform 2.5 in a single VM</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/ansible_automation_platform/</link><pubDate>Sun, 29 Jun 2025 23:10:08 +0200</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/ansible_automation_platform/</guid><description><![CDATA[<p>Attention: I have not been able to make it restart automatically after a reboot! </br>
Perhaps it is better to look into making it run in Minikube?</br>
</br>
Create a Red Hat 9 Virtual Machine with:</br>
32 GB RAM</br>
8 cores</br>
120 GB HD</br></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="ln">1</span><span class="cl">$ sudo hostnamectl hostname aap.vandenboom.local
</span></span></code></pre></div><p>Download the Ansible Automation Platform 2.5 Containerized Setup Bundle from:
<a href="https://access.redhat.com/downloads/content/480/ver=2.5/rhel---9/2.5/x86_64/product-software" target="_blank" rel="noopener noreferrer">https://access.redhat.com/downloads/content/480/ver=2.5/rhel---9/2.5/x86_64/product-software<i class="fas fa-external-link-square-alt ms-1"></i></a></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="ln"> 1</span><span class="cl">$ tar zxvf ansible*.tar.gz
</span></span><span class="line"><span class="ln"> 2</span><span class="cl">
</span></span><span class="line"><span class="ln"> 3</span><span class="cl">$ sudo vim /etc/hosts
</span></span><span class="line"><span class="ln"> 4</span><span class="cl">localhost aap.vandenboom.local
</span></span><span class="line"><span class="ln"> 5</span><span class="cl">
</span></span><span class="line"><span class="ln"> 6</span><span class="cl">$ ping aap.vandenboom.local
</span></span><span class="line"><span class="ln"> 7</span><span class="cl">
</span></span><span class="line"><span class="ln"> 8</span><span class="cl">$ sudo dnf install -y podman git python3-pip rsync tar jq unzip
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">
</span></span><span class="line"><span class="ln">10</span><span class="cl">$ podman login registry.redhat.io
</span></span><span class="line"><span class="ln">11</span><span class="cl">
</span></span><span class="line"><span class="ln">12</span><span class="cl">$ sudo dnf install ansible-core wget
</span></span><span class="line"><span class="ln">13</span><span class="cl">
</span></span><span class="line"><span class="ln">14</span><span class="cl">$ python3 -m pip install virtualenv
</span></span><span class="line"><span class="ln">15</span><span class="cl">$ pip3 install ansible
</span></span><span class="line"><span class="ln">16</span><span class="cl">
</span></span><span class="line"><span class="ln">17</span><span class="cl">$ vim inventory
</span></span><span class="line"><span class="ln">18</span><span class="cl">Edit the settings as seen below
</span></span><span class="line"><span class="ln">19</span><span class="cl">
</span></span><span class="line"><span class="ln">20</span><span class="cl">$ time ansible-playbook -i inventory ansible.containerized_installer.install -K
</span></span></code></pre></div><p>This is the contents of the file: ./inventory</p>]]></description></item><item><title>A comparison of the resource usage of Kubernetes and OpenShift</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/pas_op_met_openshift/</link><pubDate>Sat, 29 Mar 2025 15:15:43 +0100</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/pas_op_met_openshift/</guid><description><![CDATA[<p>When comparing Kubernetes with OpenShift (Red Hat&rsquo;s Kubernetes-based platform), there are several key differences that affect how they handle resource consumption and system resources. While OpenShift is built on top of Kubernetes, there are additional functionalities and differences that impact the resource requirements:</p>
<ol>
<li>Additional Functionalities in OpenShift
OpenShift offers more out-of-the-box functionality than Kubernetes. This can lead to higher overhead, but also to more ease of use and integration:</li>
</ol>
<ul>
<li>
<p>Security: OpenShift adds extra security layers, such as Security Context Constraints (SCC) and SELinux restrictions, which may require additional resources for securing containers and applications.</p>]]></description></item><item><title>The statement 'beware of Kubernetes, it burns through your resources'</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/pas_op_met_kubernetes/</link><pubDate>Sat, 29 Mar 2025 15:00:43 +0100</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/pas_op_met_kubernetes/</guid><description><![CDATA[<p>The statement &ldquo;beware of Kubernetes, it burns through your resources&rdquo; refers to the fact that Kubernetes, although a powerful and flexible solution for orchestrating containerized applications, can consume a relatively large amount of system resources (such as CPU, memory, and storage).</p>
<p>This is due to several factors:</p>
<ol>
<li>
<p>Kubernetes has overhead: Kubernetes itself runs as a cluster of various components, such as the API server, scheduler, controller manager, and more. These components run on the control plane and need to be managed. This adds extra overhead to your system, meaning that the resources Kubernetes itself uses are added on top of the applications you are actually running.</p>]]></description></item><item><title>Golang / Go: The Smart Programming Language for Efficient Software and Concurrency</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/golang_go_concurrency/</link><pubDate>Sat, 22 Mar 2025 21:00:43 +0100</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/golang_go_concurrency/</guid><description>&lt;p>Concurrency might sound like a technical term, but it boils down to a program performing multiple tasks at once, as if it’s multitasking. Imagine you’re cooking: while the pasta is on the stove, you start the washing machine and charge your phone. Although you’re not doing everything at the exact same moment, it all happens smoothly side by side. Software that supports concurrency works the same way: a program can, for instance, download files, perform calculations, and send data to a server all at once. This multitasking makes the use of computing power more efficient and ensures faster, smoother performance.&lt;/p></description></item><item><title>Deploy on DigitalOcean App Platform</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/deployment/digitalocean-app-platform/</link><pubDate>Sun, 21 Jan 2024 15:00:19 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/deployment/digitalocean-app-platform/</guid><description><![CDATA[<h2 id="requirements" data-numberify>Requirements<a class="anchor ms-1" href="#requirements"></a></h2>
<ul>
<li>DigitalOcean Account</li>
</ul>

<h2 id="create-dockerfile" data-numberify>Create Dockerfile<a class="anchor ms-1" href="#create-dockerfile"></a></h2>
<p>Create the <code>Dockerfile</code> on your site root.</p>
<blockquote>
<p>Our <a href="https://github.com/razonyang/hugo-theme-bootstrap-skeleton" target="_blank" rel="noopener noreferrer">starter template<i class="fas fa-external-link-square-alt ms-1"></i></a> already includes the <code>Dockerfile</code>.</p>
</blockquote>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-dockerfile" data-lang="dockerfile"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="c">###############</span><span class="err">
</span></span></span><span class="line"><span class="ln"> 2</span><span class="cl"><span class="c"># Build Stage #</span><span class="err">
</span></span></span><span class="line"><span class="ln"> 3</span><span class="cl"><span class="c">###############</span><span class="err">
</span></span></span><span class="line"><span class="ln"> 4</span><span class="cl"><span class="k">FROM</span><span class="w"> </span><span class="s">hugomods/hugo:exts</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="s">builder</span><span class="err">
</span></span></span><span class="line"><span class="ln"> 5</span><span class="cl"><span class="err">
</span></span></span><span class="line"><span class="ln"> 6</span><span class="cl"><span class="k">COPY</span> . /src<span class="err">
</span></span></span><span class="line"><span class="ln"> 7</span><span class="cl"><span class="err">
</span></span></span><span class="line"><span class="ln"> 8</span><span class="cl"><span class="k">ENV</span> <span class="nv">HUGO_ENV</span><span class="o">=</span>production
</span></span><span class="line"><span class="ln"> 9</span><span class="cl">
</span></span><span class="line"><span class="ln">10</span><span class="cl"><span class="c"># Base URL</span><span class="err">
</span></span></span><span class="line"><span class="ln">11</span><span class="cl"><span class="k">ARG</span> <span class="nv">HUGO_BASEURL</span><span class="o">=</span><span class="err">
</span></span></span><span class="line"><span class="ln">12</span><span class="cl"><span class="k">ENV</span> <span class="nv">HUGO_BASEURL</span><span class="o">=</span><span class="si">${</span><span class="nv">HUGO_BASEURL</span><span class="si">}</span><span class="err">
</span></span></span><span class="line"><span class="ln">13</span><span class="cl"><span class="err">
</span></span></span><span class="line"><span class="ln">14</span><span class="cl"><span class="c"># Module Proxy</span><span class="err">
</span></span></span><span class="line"><span class="ln">15</span><span class="cl"><span class="k">ARG</span> <span class="nv">HUGO_MODULE_PROXY</span><span class="o">=</span><span class="err">
</span></span></span><span class="line"><span class="ln">16</span><span class="cl"><span class="k">ENV</span> <span class="nv">HUGO_MODULE_PROXY</span><span class="o">=</span><span class="si">${</span><span class="nv">HUGO_MODULE_PROXY</span><span class="si">}</span><span class="err">
</span></span></span><span class="line"><span class="ln">17</span><span class="cl"><span class="err">
</span></span></span><span class="line"><span class="ln">18</span><span class="cl"><span class="c"># NPM mirrors, such as https://registry.npmmirror.com</span><span class="err">
</span></span></span><span class="line"><span class="ln">19</span><span class="cl"><span class="k">ARG</span> <span class="nv">NPM_CONFIG_REGISTRY</span><span class="o">=</span><span class="err">
</span></span></span><span class="line"><span class="ln">20</span><span class="cl"><span class="k">ENV</span> <span class="nv">NPM_CONFIG_REGISTRY</span><span class="o">=</span><span class="si">${</span><span class="nv">NPM_CONFIG_REGISTRY</span><span class="si">}</span><span class="err">
</span></span></span><span class="line"><span class="ln">21</span><span class="cl"><span class="err">
</span></span></span><span class="line"><span class="ln">22</span><span class="cl"><span class="c"># Install dependencies</span><span class="err">
</span></span></span><span class="line"><span class="ln">23</span><span class="cl"><span class="k">RUN</span> npm ci<span class="err">
</span></span></span><span class="line"><span class="ln">24</span><span class="cl"><span class="err">
</span></span></span><span class="line"><span class="ln">25</span><span class="cl"><span class="c"># Build site</span><span class="err">
</span></span></span><span class="line"><span class="ln">26</span><span class="cl"><span class="k">RUN</span> hugo --minify --gc --enableGitInfo<span class="err">
</span></span></span><span class="line"><span class="ln">27</span><span class="cl"><span class="err">
</span></span></span><span class="line"><span class="ln">28</span><span class="cl"><span class="c"># Set the fallback 404 page if defaultContentLanguageInSubdir is enabled, please replace the `en` with your default language code.</span><span class="err">
</span></span></span><span class="line"><span class="ln">29</span><span class="cl"><span class="c"># RUN cp ./public/en/404.html ./public/404.html</span><span class="err">
</span></span></span><span class="line"><span class="ln">30</span><span class="cl"><span class="err">
</span></span></span><span class="line"><span class="ln">31</span><span class="cl"><span class="c">###############</span><span class="err">
</span></span></span><span class="line"><span class="ln">32</span><span class="cl"><span class="c"># Final Stage #</span><span class="err">
</span></span></span><span class="line"><span class="ln">33</span><span class="cl"><span class="c">###############</span><span class="err">
</span></span></span><span class="line"><span class="ln">34</span><span class="cl"><span class="k">FROM</span><span class="w"> </span><span class="s">hugomods/hugo:nginx</span><span class="err">
</span></span></span><span class="line"><span class="ln">35</span><span class="cl"><span class="k">COPY</span> --from<span class="o">=</span>builder /src/public /site<span class="err">
</span></span></span></code></pre></div><ul>
<li>The <code>/site</code> is the output directory of static files, which will be used later.</li>
</ul>

<h2 id="create-app" data-numberify>Create App<a class="anchor ms-1" href="#create-app"></a></h2>
<p>Navigate to <em>DigitalOcean Dashboard</em> -&gt; <em>Left Panel</em> -&gt; <em>Apps</em> -&gt; <em>Create App</em>, and then fill up the form as follows.</p>]]></description></item><item><title>Funding Widget</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/widgets/funding/</link><pubDate>Sun, 29 Jan 2023 19:44:19 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/widgets/funding/</guid><description>&lt;p>The funding widget, AKA buy me a coffee widget, gives the readers a way to support a creator.&lt;/p></description></item><item><title>Toggle</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/toggle/</link><pubDate>Sat, 21 Jan 2023 23:22:11 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/toggle/</guid><description><![CDATA[<p>The <code>toggle</code> shortcode is similar to the <code>code-toggle</code>, but it&rsquo;s more generic.</p>]]></description></item><item><title>Algolia</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/topics/algolia/</link><pubDate>Sun, 27 Nov 2022 19:53:12 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/topics/algolia/</guid><description><![CDATA[<p>The client search will become slower and slower with the content grows, it&rsquo;s reasonable to have a remote search service to handle search requests from a large site.</p>
<p>Algolia is a popular search service that provides free plan (10k records, 10k requests per month). After reading this article, you will learn how to configure Algolia and automatically upload index files.</p>]]></description><enclosure url="https://1552afcb.notes-6if.pages.dev/docs/topics/algolia/featured.png" length="53150" type="image/png"/></item><item><title>IFrame Shortcode</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/iframe/</link><pubDate>Sat, 19 Nov 2022 13:00:48 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/iframe/</guid><description>&lt;p>A detailed description of iframe shortcode.&lt;/p></description></item><item><title>Game Shortcode</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/game/</link><pubDate>Tue, 15 Nov 2022 21:16:48 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/game/</guid><description>&lt;p>A detailed description of game shortcode.&lt;/p></description></item><item><title>Landing Page Layout</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/layouts/landing/</link><pubDate>Thu, 15 Sep 2022 10:46:23 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/layouts/landing/</guid><description><![CDATA[<p>In this article, we&rsquo;ll talk about the landing page layout, you may be interested in it if you&rsquo;re going to customizing the pages in Markdown way.</p>]]></description></item><item><title>Repository Widget</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/widgets/repository/</link><pubDate>Fri, 09 Sep 2022 21:06:19 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/widgets/repository/</guid><description>&lt;p>The repository widget shows the commit information about current page, it&amp;rsquo;s useful for users to view or edit the source code.&lt;/p></description><enclosure url="https://1552afcb.notes-6if.pages.dev/docs/widgets/repository/featured.png" length="10492" type="image/png"/></item><item><title>Deploy to GitLab Pages</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/deployment/gitlab-pages/</link><pubDate>Sat, 27 Aug 2022 10:30:23 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/deployment/gitlab-pages/</guid><description><![CDATA[<p>This article explains how to deploy sites to <a href="https://docs.gitlab.com/ee/user/project/pages/" target="_blank" rel="noopener noreferrer">GitLab Pages<i class="fas fa-external-link-square-alt ms-1"></i></a> using GitLab CI.</p>]]></description></item><item><title>Deployment Overview</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/deployment/overview/</link><pubDate>Wed, 27 Jul 2022 18:00:25 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/deployment/overview/</guid><description>&lt;p>In this section, we are going to talk about the key points of deployments to avoid most problems during deployment.&lt;/p></description></item><item><title>Layouts Overriding</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/advanced/layouts-overriding/</link><pubDate>Wed, 27 Jul 2022 16:05:37 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/advanced/layouts-overriding/</guid><description><![CDATA[<p>According to the <a href="https://gohugo.io/templates/lookup-order/" target="_blank" rel="noopener noreferrer">Hugo Layouts Lookup Order<i class="fas fa-external-link-square-alt ms-1"></i></a>, it&rsquo;s easy to override Hugo and theme&rsquo;s layouts and partials.
It&rsquo;s useful for users who want to custom some stuff of particular layouts or partials.</p>]]></description></item><item><title>Sticky Widgets</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/topics/sticky-widgets/</link><pubDate>Wed, 27 Jul 2022 08:54:43 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/topics/sticky-widgets/</guid><description>&lt;p>When the page is too long, the sidebar will disappear with scrolling and the page will not look as neat and beautiful.
So this article will introduce how to use sticky widgets to avoid this problem.&lt;/p></description></item><item><title>Multilingual Mode</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/configuration/multilangual/</link><pubDate>Wed, 27 Jul 2022 08:06:06 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/configuration/multilangual/</guid><description><![CDATA[<p>HBS supports multiple languages out of box, such as English, Simplified Chinese, Traditional Chinese, French, Russian, etc.</p>
<p>You can add your own translations on: <a href="https://github.com/razonyang/hugo-theme-bootstrap/tree/master/i18n" target="_blank" rel="noopener noreferrer">hugo-theme-bootstrap/i18n<i class="fas fa-external-link-square-alt ms-1"></i></a></p>]]></description></item><item><title>PurgeCSS</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/advanced/purgecss/</link><pubDate>Mon, 25 Jul 2022 12:06:00 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/advanced/purgecss/</guid><description>&lt;p>The PurgeCSS is an awesome tool that remove unused CSS from your site.
In this section, we will dive into how the PurgeCSS work, and what should we pay attention to.&lt;/p></description></item><item><title>Performance</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/advanced/performance/</link><pubDate>Sat, 23 Jul 2022 18:30:48 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/advanced/performance/</guid><description>&lt;p>In this article we are going to talk about how to improve the performance of your sites.&lt;/p></description></item><item><title>Events</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/advanced/events/</link><pubDate>Sat, 23 Jul 2022 17:33:59 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/advanced/events/</guid><description>&lt;p>This articles listed some custom events emitted by the theme, you can catch those events via event listeners.&lt;/p></description></item><item><title>SCSS Variables</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/advanced/scss-variables/</link><pubDate>Sat, 23 Jul 2022 17:23:28 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/advanced/scss-variables/</guid><description>&lt;p>Thanks to &lt;code>assets/main/scss/_variables.scss&lt;/code>, we have the ability to change the default SCSS variables of theme and Bootstrap.&lt;/p></description></item><item><title>Text Shortcodes</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/text/</link><pubDate>Fri, 15 Jul 2022 01:00:43 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/text/</guid><description>&lt;p>In this article, we will explore some shortcodes for text, such as alignment, transform and selection.&lt;/p></description></item><item><title>Building a Docker Image</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/deployment/docker/</link><pubDate>Wed, 13 Jul 2022 10:30:29 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/deployment/docker/</guid><description>&lt;p>This article will detail how to build a Docker image.&lt;/p></description></item><item><title>Deploy to GitHub Pages</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/deployment/github-pages/</link><pubDate>Wed, 13 Jul 2022 10:30:23 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/deployment/github-pages/</guid><description><![CDATA[<p>This article explains how to deploy sites to <a href="https://pages.github.com/" target="_blank" rel="noopener noreferrer">GitHub Pages<i class="fas fa-external-link-square-alt ms-1"></i></a> using GitHub Actions.</p>]]></description></item><item><title>Deploy on Cloudflare Pages</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/deployment/cloudflare-pages/</link><pubDate>Tue, 12 Jul 2022 20:06:24 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/deployment/cloudflare-pages/</guid><description><![CDATA[<p>This article show you how to deploy your site to <a href="https://pages.cloudflare.com/" target="_blank" rel="noopener noreferrer">Cloudflare Pages<i class="fas fa-external-link-square-alt ms-1"></i></a>.</p>]]></description></item><item><title>Deploy to Netlify</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/deployment/netlify/</link><pubDate>Tue, 12 Jul 2022 14:20:49 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/deployment/netlify/</guid><description><![CDATA[<p>This article shows how to deploy your site to <a href="https://www.netlify.com/" target="_blank" rel="noopener noreferrer">Netlify<i class="fas fa-external-link-square-alt ms-1"></i></a>.</p>]]></description></item><item><title>Snackbar</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/advanced/snackbar/</link><pubDate>Sat, 02 Jul 2022 21:14:37 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/advanced/snackbar/</guid><description><![CDATA[<p>Users who have used the block copy button are no stranger to the Snackbar, which informs the user of the results of the application&rsquo;s execution. This article will give an example of how to use Snackbar to meet the user&rsquo;s need for custom interaction.</p>]]></description></item><item><title>Upgradation</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/getting-started/upgradation/</link><pubDate>Sat, 25 Jun 2022 22:15:02 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/getting-started/upgradation/</guid><description>&lt;p>This article explains how to upgrade the theme correctly.&lt;/p></description></item><item><title>Migrating to v1</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/migration/</link><pubDate>Mon, 20 Jun 2022 17:46:31 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/migration/</guid><description><![CDATA[<p>Track and review changes to the theme source files and documentation to help you migrate from <code>v0.*</code> to <code>v1</code>.</p>]]></description></item><item><title>Code Toggle</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/code-toggle/</link><pubDate>Mon, 13 Jun 2022 16:54:28 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/code-toggle/</guid><description>&lt;p>The &lt;code>code-toggle&lt;/code> shortcode generates code blocks of various formats according to the configuration code of any supported format.&lt;/p></description><enclosure url="https://1552afcb.notes-6if.pages.dev/docs/shortcodes/code-toggle/featured.png" length="157833" type="image/png"/></item><item><title>Introduction</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/getting-started/introduction/</link><pubDate>Mon, 13 Jun 2022 16:32:09 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/getting-started/introduction/</guid><description><![CDATA[<h2 id="goals" data-numberify>Goals<a class="anchor ms-1" href="#goals"></a></h2>
<ul>
<li>Performance</li>
<li>Friendly User Experience</li>
<li>SEO</li>
</ul>

<h2 id="features" data-numberify>Features<a class="anchor ms-1" href="#features"></a></h2>
<ul>
<li><a href="https://gohugo.io/hugo-pipes/" target="_blank" rel="noopener noreferrer">Hugo Pipes<i class="fas fa-external-link-square-alt ms-1"></i></a>: used to generate CSS and JS assets.</li>
<li>PurgeCSS: remove unused CSS.</li>
<li><a href="https://1552afcb.notes-6if.pages.dev/en/docs/configuration/">Flexible and Configurable</a>.</li>
<li>Fast and Good User Experience: <a href="https://pagespeed.web.dev/report?url=https://vandenboom.online/en/" target="_blank" rel="noopener noreferrer">Google PageSpeed Insights<i class="fas fa-external-link-square-alt ms-1"></i></a>&rsquo;s score is over 95.</li>
<li>RTL support: <a href="https://1552afcb.notes-6if.pages.dev/en/">Arabic demo site</a>.</li>
<li>Built on top of <a href="https://getbootstrap.com/" target="_blank" rel="noopener noreferrer">Bootstrap 5<i class="fas fa-external-link-square-alt ms-1"></i></a>.</li>
<li>FontAwesome icons.</li>
<li>Responsive.</li>
<li><a href="https://1552afcb.notes-6if.pages.dev/en/docs/pwa/">PWA</a>, AKA progressive web apps.</li>
<li>Various Palettes: <code>blue</code>, <code>blue-gray</code>, <code>brown</code>, <code>cyan</code>, <code>green</code>, <code>indigo</code>, <code>orange</code>, <code>pink</code>, <code>purple</code>, <code>red</code>, <code>teal</code>, <code>yellow</code>.</li>
<li>A <a href="https://1552afcb.notes-6if.pages.dev/en/docs/layouts/docs/">Docs Layout</a> for publishing project documentation, notes, digital gardens, zettelkastens etc.</li>
<li>Light/Dark Mode.</li>
<li>Font Size Switcher.</li>
<li>Multilingual(I18N).</li>
<li><a href="https://1552afcb.notes-6if.pages.dev/en/docs/layouts/search/">Local Search</a>.</li>
<li>DocSearch.</li>
<li>Pinning Posts.</li>
<li>Footer Menu.</li>
<li>Code Block Panel: copy code, line number, line wrap and expand.</li>
<li><a href="https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/code-toggle/">Code Toggle</a></li>
<li>Breadcrumb.</li>
<li><a href="https://1552afcb.notes-6if.pages.dev/en/docs/layouts/archives/">Archive</a>.</li>
<li><a href="https://1552afcb.notes-6if.pages.dev/en/docs/image-viewer/">Image Viewer</a>.</li>
<li><a href="https://1552afcb.notes-6if.pages.dev/en/docs/image-processing/">Image Processing</a>: resize and align images.</li>
<li>Resources Lazy Loading: <code>image</code> and <code>iframe</code>.</li>
<li><a href="https://1552afcb.notes-6if.pages.dev/en/docs/look-and-feel/#syntax-highlighting">Syntax Highlighting</a>.</li>
<li><a href="https://1552afcb.notes-6if.pages.dev/en/docs/widgets/reward/">Reward Widget</a>, AKA Buy Me a Coffee: any platform that supports QR code is supported.</li>
<li>Table of Contents.</li>
<li><a href="https://1552afcb.notes-6if.pages.dev/en/docs/widgets/comments/">Comments</a>: Disqus, Utterances, Giscus and Staticman can be used out of box, you can also integrate with other comments services.</li>
<li><a href="https://1552afcb.notes-6if.pages.dev/en/docs/advanced/custom-assets/">Custom Assets</a>: custom CSS and JS.</li>
<li><a href="https://1552afcb.notes-6if.pages.dev/en/docs/advanced/hooks/">Hooks</a>: provides ability to add custom code on page.</li>
<li><a href="https://1552afcb.notes-6if.pages.dev/en/docs/widgets/social-links/">Social Links</a>.</li>
<li><a href="https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/">Various Shortcodes</a>.</li>
<li>Twitter Cards and Open Graph.</li>
<li><a href="https://creativecommons.org/licenses/" target="_blank" rel="noopener noreferrer">Creative Commons License<i class="fas fa-external-link-square-alt ms-1"></i></a>.</li>
<li><a href="https://1552afcb.notes-6if.pages.dev/en/docs/layouts/contact/">Contact Form</a>.</li>
<li>Numberify Headings Automatically.</li>
</ul>]]></description></item><item><title>Prerequisites</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/getting-started/prerequisites/</link><pubDate>Mon, 13 Jun 2022 16:32:09 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/getting-started/prerequisites/</guid><description>&lt;p>Please make sure you meet the prerequisites prior to installing the theme.&lt;/p></description></item><item><title>Gallery Shortcode</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/gallery/</link><pubDate>Fri, 25 Mar 2022 00:00:00 +0000</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/gallery/</guid><description>&lt;p>This article shows how to use the &lt;code>gallery&lt;/code> shortcode.&lt;/p></description></item><item><title>Troubleshooting</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/troubleshooting/</link><pubDate>Sat, 19 Mar 2022 13:46:41 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/troubleshooting/</guid><description>&lt;p>This article lists some common problems so that you can easily solve them.&lt;/p></description></item><item><title>Install via Hugo Module</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/getting-started/installation/hugo-module/</link><pubDate>Sat, 26 Feb 2022 17:10:39 +0200</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/getting-started/installation/hugo-module/</guid><description><![CDATA[<p>This article refers to the modern, up-to-date installation method of installing the theme locally as Hugo module.</p>

<h2 id="proxy-optional" data-numberify>Proxy (Optional)<a class="anchor ms-1" href="#proxy-optional"></a></h2>
<p>If you&rsquo;re located at China mainland without VPN, the Hugo module download may fail.</p>
<p>There are two proxies for this: <a href="https://goproxy.cn" target="_blank" rel="noopener noreferrer">GOPROXY.CN<i class="fas fa-external-link-square-alt ms-1"></i></a> and <a href="https://goproxy.io" target="_blank" rel="noopener noreferrer">GOPROXY.IO<i class="fas fa-external-link-square-alt ms-1"></i></a>.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln">1</span><span class="cl">$ <span class="nb">export</span> <span class="nv">HUGO_MODULE_PROXY</span><span class="o">=</span>https://goproxy.cn
</span></span></code></pre></div><blockquote>
<p>Please note that, Hugo doesn&rsquo;t respect the <code>GOPROXY</code> env var, please use <code>HUGO_MODULE_PROXY</code> instead.</p>
</blockquote>
<p>You can also set the <code>module.proxy</code> instead of using env var.</p>]]></description></item><item><title>Docs Layout</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/layouts/docs/</link><pubDate>Wed, 12 Jan 2022 10:56:34 -0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/layouts/docs/</guid><description><![CDATA[<p>In this article, we&rsquo;ll explore the <code>docs</code> layout, which can be used to write project documentation, personal notes, and more.</p>]]></description><enclosure url="https://1552afcb.notes-6if.pages.dev/docs/layouts/docs/featured.png" length="157833" type="image/png"/></item><item><title>Menu</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/configuration/menu/</link><pubDate>Thu, 16 Dec 2021 17:25:20 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/configuration/menu/</guid><description><![CDATA[<p>We predefined two types of menus: <code>main</code> and <code>footer</code>, represents the top app bar menus and the footer menus, respectively.
This article will briefly introduce how to use the menus.</p>]]></description><enclosure url="https://1552afcb.notes-6if.pages.dev/docs/configuration/menu/featured.png" length="157833" type="image/png"/></item><item><title>Starter Template</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/getting-started/installation/starter-template/</link><pubDate>Thu, 16 Dec 2021 17:25:20 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/getting-started/installation/starter-template/</guid><description>&lt;p>The starter template for newbie.&lt;/p></description></item><item><title>FAQ Layout</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/layouts/faq/</link><pubDate>Tue, 07 Dec 2021 21:46:43 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/layouts/faq/</guid><description>&lt;p>The &lt;a href="https://1552afcb.notes-6if.pages.dev/en/faq/">FAQ&lt;/a> page is a collection of frequently asked questions.&lt;/p></description></item><item><title>Adding Content</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/content/</link><pubDate>Sat, 04 Dec 2021 10:43:39 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/content/</guid><description><![CDATA[<h2 id="main-sections" data-numberify>Main Sections<a class="anchor ms-1" href="#main-sections"></a></h2>
<p>The <code>mainSections</code> parameter is used to filter pages, default to <code>[&quot;posts&quot;, &quot;docs&quot;]</code>.</p>
<div class="highlight" title="config/_default/params.toml"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="ln">1</span><span class="cl"><span class="nx">mainSections</span> <span class="p">=</span> <span class="p">[</span><span class="s2">&#34;blog&#34;</span><span class="p">,</span> <span class="s2">&#34;posts&#34;</span><span class="p">,</span> <span class="s2">&#34;docs&#34;</span><span class="p">,</span> <span class="s2">&#34;notes&#34;</span><span class="p">]</span>
</span></span></code></pre></div>
<h2 id="front-matter" data-numberify>Front Matter<a class="anchor ms-1" href="#front-matter"></a></h2>
<p>Front Matter is the place where we put page metadata and parameters, such as title, date and so on.</p>

<h3 id="formats" data-numberify>Formats<a class="anchor ms-1" href="#formats"></a></h3>
<p>Hugo supports three formats of front matter: <code>YAML</code>, <code>TOML</code> and <code>JSON</code>.</p>
<ul>
<li><code>TOML</code>: identified by opening and closing <code>+++</code>.</li>
<li><code>YAML</code>: identified by opening and closing <code>---</code>.</li>
<li><code>JSON</code>: a single JSON object surrounded by <code>{</code> and <code>}</code>, followed by a new line.</li>
</ul>
<p>Let&rsquo;s take <code>TOML</code> as an example:</p>]]></description></item><item><title>Install via Git Submodule</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/getting-started/installation/git-submodule/</link><pubDate>Sat, 04 Dec 2021 10:43:39 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/getting-started/installation/git-submodule/</guid><description><![CDATA[<p>This article refers to the traditional installation method of cloning the theme locally as Git submodule.
While this installation method is still widely used, we recommend to install the theme as <a href="https://1552afcb.notes-6if.pages.dev/en/docs/getting-started/installation/hugo-module/">Hugo module</a>.</p>

<h2 id="create-a-new-site-from-scratch" data-numberify>Create a New Site from Scratch<a class="anchor ms-1" href="#create-a-new-site-from-scratch"></a></h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln">1</span><span class="cl">$ git clone https://github.com/razonyang/hugo-theme-bootstrap-skeleton myblog
</span></span><span class="line"><span class="ln">2</span><span class="cl">$ <span class="nb">cd</span> myblog
</span></span><span class="line"><span class="ln">3</span><span class="cl">$ git submodule add https://github.com/razonyang/hugo-theme-bootstrap themes/hugo-theme-bootstrap
</span></span><span class="line"><span class="ln">4</span><span class="cl">$ sed -i <span class="s2">&#34;s/theme:.*/theme: hugo-theme-bootstrap/g&#34;</span> config/_default/config.yaml
</span></span><span class="line"><span class="ln">5</span><span class="cl">$ rm go.mod go.sum
</span></span><span class="line"><span class="ln">6</span><span class="cl">$ hugo mod npm pack
</span></span><span class="line"><span class="ln">7</span><span class="cl">$ npm install
</span></span><span class="line"><span class="ln">8</span><span class="cl">$ hugo server
</span></span></code></pre></div><blockquote>
<p>If you&rsquo;re using Windows, use <code>xcopy .\themes\hugo-theme-bootstrap\exampleSite /E</code> instead.</p>]]></description></item><item><title>Image Viewer</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/image-viewer/</link><pubDate>Fri, 03 Dec 2021 20:46:50 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/image-viewer/</guid><description>&lt;p>Image viewer is an image gallery, it will be shown up when you click a non-linkable image.&lt;/p>
&lt;p>It also provides many tools, such as zoom in, zoom out and rotate.&lt;/p></description></item><item><title>Look and Feel</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/look-and-feel/</link><pubDate>Fri, 03 Dec 2021 19:42:57 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/look-and-feel/</guid><description>&lt;p>By default, a site using this theme has the default fonts, colors, and general look and feel.
However, the default scheme cannot satisfy everyone, but don&amp;rsquo;t worry, you can easily override the theme defaults, such as palette colors, fonts, syntax highlighting.&lt;/p></description></item><item><title>Progressive Web App</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/pwa/</link><pubDate>Fri, 03 Dec 2021 19:39:01 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/pwa/</guid><description><![CDATA[<p>PWAs(<a href="https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps" target="_blank" rel="noopener noreferrer">Progressive web apps<i class="fas fa-external-link-square-alt ms-1"></i></a>) are web apps developed using a number of specific technologies and standard patterns to allow them to take advantage of both web and native app features.</p>
<p>HBS provides some basic features, such as install site to home screen, precache files and available offline.</p>]]></description></item><item><title>Archive Layout</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/layouts/archives/</link><pubDate>Fri, 03 Dec 2021 11:16:51 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/layouts/archives/</guid><description>&lt;p>The archive page is a collection of posts grouped by year.&lt;/p></description></item><item><title>Search Layout</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/layouts/search/</link><pubDate>Fri, 03 Dec 2021 11:16:51 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/layouts/search/</guid><description>&lt;p>It may be difficult for readers to retrieve an article in the case if there are many articles in your site, therefore, we added the search feature.&lt;/p></description></item><item><title>Author Widget</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/widgets/author/</link><pubDate>Fri, 03 Dec 2021 11:10:19 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/widgets/author/</guid><description>&lt;p>The author widget is located in the sidebar, in order to introduce yourself briefly.&lt;/p></description></item><item><title>Reward Widget</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/widgets/reward/</link><pubDate>Fri, 03 Dec 2021 11:10:19 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/widgets/reward/</guid><description><![CDATA[<p>The reward widget, AKA buy me a coffee widget, gives the readers a way to support a creator through the use of donations or tips.</p>
<p>However, it limited to the QR code image, please take a look at the <a href="https://1552afcb.notes-6if.pages.dev/en/docs/widgets/funding/">funding widget</a>.</p>]]></description></item><item><title>Social Links</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/widgets/social-links/</link><pubDate>Thu, 02 Dec 2021 16:27:45 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/widgets/social-links/</guid><description>&lt;p>The &lt;code>social&lt;/code> parameter is a set of key value pairs of social links that mapping from platform to their user identifier.
It supports many popular social platforms, such as Twitter, Facebook, Reddit, GitHub.
This article lists all supported platforms and how to use them.&lt;/p></description></item><item><title>Contact Form</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/layouts/contact/</link><pubDate>Tue, 30 Nov 2021 23:56:00 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/layouts/contact/</guid><description>&lt;p>We can put our email address on &lt;a href="https://1552afcb.notes-6if.pages.dev/en/docs/widgets/social-links/">social links&lt;/a> so that readers can contact us. Unfortunately, emails will be more or less treated as spam and even filtered.
Therefore, we bring a feature called contact form.&lt;/p></description></item><item><title>Custom Assets</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/advanced/custom-assets/</link><pubDate>Sun, 28 Nov 2021 16:00:49 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/advanced/custom-assets/</guid><description>&lt;p>As a customizable theme, it provides the ability to customize assets, whether it is customizing CSS and JS or introducing third-party CSS and JS.&lt;/p></description></item><item><title>Comments Widget</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/widgets/comments/</link><pubDate>Sat, 27 Nov 2021 19:54:29 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/widgets/comments/</guid><description><![CDATA[<p><a href="https://disqus.com/" target="_blank" rel="noopener noreferrer">Disqus<i class="fas fa-external-link-square-alt ms-1"></i></a>, <a href="https://utteranc.es/" target="_blank" rel="noopener noreferrer">Utterances<i class="fas fa-external-link-square-alt ms-1"></i></a> and <a href="https://giscus.app/" target="_blank" rel="noopener noreferrer">Giscus<i class="fas fa-external-link-square-alt ms-1"></i></a> comments widgets are supported out of box.
This article shows how to configure them and even customize your own comment widgets.</p>]]></description></item><item><title>Get Involved</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/get-involved/</link><pubDate>Sat, 27 Nov 2021 19:54:29 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/get-involved/</guid><description>&lt;p>We are happy to listen to your opinions and feedback, and welcome you to get involved.&lt;/p></description></item><item><title>Hooks</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/advanced/hooks/</link><pubDate>Sat, 27 Nov 2021 19:54:29 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/advanced/hooks/</guid><description>&lt;p>As a flexible theme, it should have the ability to customize code and integrate third-party services. Therefore, we brought a feature called hook.&lt;/p>
&lt;p>In this article, we will introduce all hooks and provide some use cases.&lt;/p></description></item><item><title>Page Parameters</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/configuration/page-params/</link><pubDate>Sat, 27 Nov 2021 19:53:24 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/configuration/page-params/</guid><description><![CDATA[<p>Page parameters are located in page&rsquo;s <a href="https://gohugo.io/content-management/front-matter/" target="_blank" rel="noopener noreferrer">Front Matter<i class="fas fa-external-link-square-alt ms-1"></i></a>.</p>]]></description></item><item><title>Site Configuration</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/configuration/site/</link><pubDate>Sat, 27 Nov 2021 19:53:24 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/configuration/site/</guid><description>&lt;p>The site configuration is located in &lt;code>config/_default/config.toml&lt;/code> by default.&lt;/p></description></item><item><title>Site Parameters</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/configuration/site-params/</link><pubDate>Sat, 27 Nov 2021 19:53:24 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/configuration/site-params/</guid><description>&lt;p>The site parameters are located in &lt;code>config/_default/params.toml&lt;/code> by default.&lt;/p></description></item><item><title>Configuration Structure</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/configuration/structure/</link><pubDate>Sat, 27 Nov 2021 19:53:24 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/configuration/structure/</guid><description><![CDATA[<p>As the example site shown, we use <a href="https://gohugo.io/getting-started/configuration/#configuration-directory" target="_blank" rel="noopener noreferrer">Configuration Directory<i class="fas fa-external-link-square-alt ms-1"></i></a> to maintain easier organization and environment specific settings, it is especially useful on multilingual sites.</p>]]></description></item><item><title>Diagram Guide</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/diagram/</link><pubDate>Wed, 01 Sep 2021 11:36:50 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/diagram/</guid><description><![CDATA[<p>This article offers a sample of basic diagram usage that can be used in Hugo content files.</p>
<p>Please see also <a href="https://mermaid-js.github.io" target="_blank" rel="noopener noreferrer">Mermaid<i class="fas fa-external-link-square-alt ms-1"></i></a>.</p>]]></description></item><item><title>Image Processing</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/image-processing/</link><pubDate>Sun, 15 Aug 2021 14:19:06 +0800</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/image-processing/</guid><description>&lt;p>This article offers some use cases for showing how to resize, crop, fit, fill and align images.&lt;/p></description><enclosure url="https://1552afcb.notes-6if.pages.dev/docs/image-processing/featured-sample.webp" length="498412" type="image/webp"/></item><item><title>Markdown Syntax Guide</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/markdown-syntax/</link><pubDate>Mon, 09 Nov 2020 00:00:00 +0000</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/markdown-syntax/</guid><description><![CDATA[<h2 id="headings" data-numberify>Headings<a class="anchor ms-1" href="#headings"></a></h2>
<p>The following HTML <code>&lt;h1&gt;</code>—<code>&lt;h6&gt;</code> elements represent six levels of section headings. <code>&lt;h1&gt;</code> is the highest section level while <code>&lt;h6&gt;</code> is the lowest.</p>

<h1 id="h1" data-numberify>H1<a class="anchor ms-1" href="#h1"></a></h1>

<h2 id="h2" data-numberify>H2<a class="anchor ms-1" href="#h2"></a></h2>

<h3 id="h3" data-numberify>H3<a class="anchor ms-1" href="#h3"></a></h3>

<h4 id="h4" data-numberify>H4<a class="anchor ms-1" href="#h4"></a></h4>

<h5 id="h5" data-numberify>H5<a class="anchor ms-1" href="#h5"></a></h5>

<h6 id="h6" data-numberify>H6<a class="anchor ms-1" href="#h6"></a></h6>

<h2 id="paragraph" data-numberify>Paragraph<a class="anchor ms-1" href="#paragraph"></a></h2>
<p>Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.</p>]]></description><enclosure url="https://1552afcb.notes-6if.pages.dev/images/markdown.png" length="279937" type="image/png"/></item><item><title>Alert Shortcode</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/alert/</link><pubDate>Thu, 22 Oct 2020 00:00:00 +0000</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/alert/</guid><description>&lt;p>This article shows how to use the &lt;code>alert&lt;/code> shortcode.&lt;/p></description></item><item><title>Media Shortcodes</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/media/</link><pubDate>Thu, 22 Oct 2020 00:00:00 +0000</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/media/</guid><description>&lt;p>A detailed description of media shortcodes, such as Bilibili, Tencent, Youku, iQiyi and Netease Music.&lt;/p></description></item><item><title>Online IDE Shortcodes</title><link>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/online-ide/</link><pubDate>Thu, 22 Oct 2020 00:00:00 +0000</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/docs/shortcodes/online-ide/</guid><description>&lt;p>A detailed description of online IDE shortcodes, such as JSFiddle, CodePen, JSRun.&lt;/p></description></item><item><title>Rich Content</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/rich-content/</link><pubDate>Sun, 10 Mar 2019 00:00:00 +0000</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/rich-content/</guid><description><![CDATA[<p>Hugo ships with several <a href="https://gohugo.io/content-management/shortcodes/#use-hugo-s-built-in-shortcodes" target="_blank" rel="noopener noreferrer">Built-in Shortcodes<i class="fas fa-external-link-square-alt ms-1"></i></a> for rich content, along with a <a href="https://gohugo.io/about/hugo-and-gdpr/" target="_blank" rel="noopener noreferrer">Privacy Config<i class="fas fa-external-link-square-alt ms-1"></i></a> and a set of Simple Shortcodes that enable static and no-JS versions of various social media embeds.</p>]]></description></item><item><title>Placeholder Text</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/placeholder-text/</link><pubDate>Sat, 09 Mar 2019 00:00:00 +0000</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/placeholder-text/</guid><description>&lt;p>Lorem est tota propiore conpellat pectoribus de pectora summo.&lt;/p></description></item><item><title>Math Typesetting</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/math-typesetting/</link><pubDate>Fri, 08 Mar 2019 00:00:00 +0000</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/math-typesetting/</guid><description>&lt;p>Mathematical notation in a Hugo project can be enabled by using third party JavaScript libraries.&lt;/p></description></item><item><title>Emoji Support</title><link>https://1552afcb.notes-6if.pages.dev/en/posts/emoji-support/</link><pubDate>Tue, 05 Mar 2019 00:00:00 +0000</pubDate><guid>https://1552afcb.notes-6if.pages.dev/en/posts/emoji-support/</guid><description>&lt;p>Emoji can be enabled in a Hugo project in a number of ways.&lt;/p></description></item></channel></rss>