<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nicola Massarenti</title>
    <description>The latest articles on DEV Community by Nicola Massarenti (@nicolamassarenti).</description>
    <link>https://dev.to/nicolamassarenti</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F998734%2Fc77eab4e-5bcc-4689-bb00-ac9828151ad0.jpeg</url>
      <title>DEV Community: Nicola Massarenti</title>
      <link>https://dev.to/nicolamassarenti</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nicolamassarenti"/>
    <language>en</language>
    <item>
      <title>Pair programming with ChatGPT - an unexpected path</title>
      <dc:creator>Nicola Massarenti</dc:creator>
      <pubDate>Wed, 25 Jan 2023 07:30:00 +0000</pubDate>
      <link>https://dev.to/nicolamassarenti/pair-programming-with-chatgpt-an-unexpected-path-38if</link>
      <guid>https://dev.to/nicolamassarenti/pair-programming-with-chatgpt-an-unexpected-path-38if</guid>
      <description>&lt;p&gt;ChatGPT is out there and everyone is talking about it. I have read tons of posts regarding how to write prompts, what prompt is going to give you &lt;strong&gt;the&lt;/strong&gt; secret strategy for the business... yada yada yada...&lt;/p&gt;

&lt;p&gt;My story, here, is not about prompt engineering. &lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fnicolamassarenti%2Fnicolamassarenti.github.io%2Fmain%2Fcontent%2Fblog%2Fpair-programming-chatgpt%2Frobot-baby.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fnicolamassarenti%2Fnicolamassarenti.github.io%2Fmain%2Fcontent%2Fblog%2Fpair-programming-chatgpt%2Frobot-baby.png" alt=""&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;It's about one unexpected outcome, about how, for the first time, I felt like I was getting help from a Senior peer: someone who understood my problem, someone located remotely (because I was chatting with him), someone that had more experience than me in Linux, someone I could learn from.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;My OS is Linux Ubuntu. My shell is &lt;a href="https://fishshell.com/" rel="noopener noreferrer"&gt;fish&lt;/a&gt; and I love it (check out my &lt;a href="https://github.com/nicolamassarenti/dotfiles" rel="noopener noreferrer"&gt;dotfiles&lt;/a&gt;). It allows the creation of functions (a.k.a. aliases) very easily.&lt;/p&gt;

&lt;p&gt;My &lt;em&gt;note-taking tool&lt;/em&gt; is &lt;a href="https://obsidian.md/" rel="noopener noreferrer"&gt;Obsidian&lt;/a&gt;, an open source software for building the second brain (it's also where I'm drafting this blog post).&lt;/p&gt;

&lt;p&gt;On Ubuntu, I run the Obsidian app by running an AppImage, a format for distributing software on Linux. An AppImage file contains the software and all the dependencies you need to run the app. This means that to run the file you only type one command: &lt;code&gt;./path/to/file.AppImage&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Well, running obsidian via AppImage implies the following steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Opening a terminal - typing: &lt;code&gt;CTRL+T&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Running the AppImage - typing: &lt;code&gt;./path/to/AppImage&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Keeping the terminal open to keep the process up and running - the main problem, because I often do some house-cleaning and close all the pending processes and terminals&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This means that I should repeat these three steps at least once a day. Every day.... This had to be automated!&lt;/p&gt;

&lt;h2&gt;
  
  
  What I wanted to do
&lt;/h2&gt;

&lt;p&gt;My initial goal was to create a &lt;code&gt;fish&lt;/code&gt; function that allowed me to type &lt;code&gt;obsidian&lt;/code&gt; and, in turn, run the app image.&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fnicolamassarenti%2Fnicolamassarenti.github.io%2Fmain%2Fcontent%2Fblog%2Fpair-programming-chatgpt%2Fterminal-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fnicolamassarenti%2Fnicolamassarenti.github.io%2Fmain%2Fcontent%2Fblog%2Fpair-programming-chatgpt%2Fterminal-1.png" alt=""&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;This creates the following function (located in &lt;code&gt;~/.config/fish/functions/obsidian.fish&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;function &lt;/span&gt;obsidian &lt;span class="nt"&gt;--wraps&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/opt/obsidian/Obsidian-1.1.9.AppImage &lt;span class="nt"&gt;--description&lt;/span&gt; &lt;span class="s1"&gt;'alias obsidian=/opt/obsidian/Obsidian-1.0.3.AppImage'&lt;/span&gt;
  /opt/obsidian/Obsidian-1.0.3.AppImage &lt;span class="nv"&gt;$argv&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;However, this partially solved my problem. I had to keep the terminal up and running. This is what the terminal was printing while Obsidian was running:&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fnicolamassarenti%2Fnicolamassarenti.github.io%2Fmain%2Fcontent%2Fblog%2Fpair-programming-chatgpt%2Fterminal-2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fnicolamassarenti%2Fnicolamassarenti.github.io%2Fmain%2Fcontent%2Fblog%2Fpair-programming-chatgpt%2Fterminal-2.png" alt=""&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;So I thought: I just have to redirect the logs to &lt;code&gt;/dev/null&lt;/code&gt; and it's done! I can close or use the terminal for other stuff! Great!&lt;/p&gt;

&lt;p&gt;At this point, I wanted a quick result since (I thought) I knew what was the path to follow. So, I decided to ask ChatGPT to solve the problem. I asked:&lt;br&gt;
&lt;code&gt;write a fish function that runs a detached appImage at path "/opt/obsidian/Obsidian-1.1.9.AppImage"&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;Great! I got the solution:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;function &lt;/span&gt;run-obsidian
    &lt;span class="nb"&gt;nohup&lt;/span&gt; /opt/obsidian/Obsidian-1.1.9.AppImage &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /dev/null 2&amp;gt;&amp;amp;1 &amp;amp;
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I modified the &lt;code&gt;.fish&lt;/code&gt; file and tested the new function: obsidian was opened and the process was detached, but when I closed the terminal, obsidian was closed too!&lt;/p&gt;

&lt;p&gt;Fair enough... With some disappointment, I wrote to ChatGPT: &lt;code&gt;the process should be alive even if I kill the terminal&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;And here happened the unexpected! Here I was suggested a new path, something I knew could be used for such use cases but for a lack of experience I never considered. Here I learned something new, without searching for it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I discovered it was possible
&lt;/h2&gt;

&lt;p&gt;ChatGPT now shared an unexpected solution. It said that if I wanted to have the process running even if I logged out of the system, I had to use &lt;code&gt;systemd&lt;/code&gt; service manager.&lt;/p&gt;

&lt;p&gt;This is the service file generated:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Create a new service file&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;nano /etc/systemd/user/obsidian.service

&lt;span class="c"&gt;# Add the following content to the file&lt;/span&gt;
&lt;span class="o"&gt;[&lt;/span&gt;Unit]
&lt;span class="nv"&gt;Description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Obsidian AppImage

&lt;span class="o"&gt;[&lt;/span&gt;Service]
&lt;span class="nv"&gt;ExecStart&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/opt/obsidian/Obsidian-1.0.3.AppImage
&lt;span class="nv"&gt;Restart&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;always

&lt;span class="o"&gt;[&lt;/span&gt;Install]
&lt;span class="nv"&gt;WantedBy&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;default.target

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And, I could use the following commands to enable and start the service:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl &lt;span class="nt"&gt;--user&lt;/span&gt; &lt;span class="nb"&gt;enable &lt;/span&gt;obsidian.service
systemctl &lt;span class="nt"&gt;--user&lt;/span&gt; start obsidian.service
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This was my reaction:&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fnicolamassarenti%2Fnicolamassarenti.github.io%2Fmain%2Fcontent%2Fblog%2Fpair-programming-chatgpt%2Freaction.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fnicolamassarenti%2Fnicolamassarenti.github.io%2Fmain%2Fcontent%2Fblog%2Fpair-programming-chatgpt%2Freaction.png" alt=""&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;I was stunned. This &lt;strong&gt;kind of interaction&lt;/strong&gt; it's exactly what a person expects by a Senior colleague. I &lt;strong&gt;felt enriched&lt;/strong&gt; from the answer. It was great.&lt;/p&gt;

&lt;p&gt;Now, I had to automate the setup. I asked: &lt;code&gt;create a script that automates the generation of the file, the setup of systemctl, and that runs the latest version of the AppImage among those in the folder. Make it fish-compliant&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This was the output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/usr/bin/env fish&lt;/span&gt;

&lt;span class="c"&gt;# Edit this line to specify the path to your AppImages&lt;/span&gt;
&lt;span class="nb"&gt;set &lt;/span&gt;APPIMAGE_PATH &lt;span class="s1"&gt;'/opt/obsidian'&lt;/span&gt;

&lt;span class="c"&gt;# Edit this line to specify the service name&lt;/span&gt;
&lt;span class="nb"&gt;set &lt;/span&gt;SERVICE_NAME &lt;span class="s1"&gt;'obsidian'&lt;/span&gt;

&lt;span class="c"&gt;# Find the latest AppImage&lt;/span&gt;
&lt;span class="nb"&gt;set &lt;/span&gt;appimage &lt;span class="o"&gt;(&lt;/span&gt;find &lt;span class="nv"&gt;$APPIMAGE_PATH&lt;/span&gt; &lt;span class="nt"&gt;-name&lt;/span&gt; &lt;span class="s2"&gt;"Obsidian-*.AppImage"&lt;/span&gt; | &lt;span class="nb"&gt;sort&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; | &lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; 1&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="c"&gt;# Create the service file&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;sh &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"echo '[Unit]&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;Description=Obsidian AppImage&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;[Service]&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;ExecStart=&lt;/span&gt;&lt;span class="nv"&gt;$appimage&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;Restart=always&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;[Install]&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;WantedBy=default.target' &amp;gt; /etc/systemd/user/&lt;/span&gt;&lt;span class="nv"&gt;$SERVICE_NAME&lt;/span&gt;&lt;span class="s2"&gt;.service"&lt;/span&gt;

&lt;span class="c"&gt;# Reload the systemd configuration&lt;/span&gt;
systemctl &lt;span class="nt"&gt;--user&lt;/span&gt; daemon-reload

&lt;span class="c"&gt;# Enable the service&lt;/span&gt;
systemctl &lt;span class="nt"&gt;--user&lt;/span&gt; &lt;span class="nb"&gt;enable&lt;/span&gt; &lt;span class="nv"&gt;$SERVICE_NAME&lt;/span&gt;.service

&lt;span class="c"&gt;# Start the service&lt;/span&gt;
systemctl &lt;span class="nt"&gt;--user&lt;/span&gt; start &lt;span class="nv"&gt;$SERVICE_NAME&lt;/span&gt;.service
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and it was done. Wow.&lt;/p&gt;

</description>
      <category>chatgpt</category>
      <category>ai</category>
      <category>linux</category>
      <category>programming</category>
    </item>
    <item>
      <title>How to create a website using GitHub Pages, Google Domains and Hugo</title>
      <dc:creator>Nicola Massarenti</dc:creator>
      <pubDate>Mon, 16 Jan 2023 08:15:32 +0000</pubDate>
      <link>https://dev.to/nicolamassarenti/how-to-create-a-website-using-github-pages-google-domains-and-hugo-49fo</link>
      <guid>https://dev.to/nicolamassarenti/how-to-create-a-website-using-github-pages-google-domains-and-hugo-49fo</guid>
      <description>&lt;p&gt;Originally posted &lt;a href="https://nicolamassarenti.com/blog/create-a-website-github-google-domains/"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's early 2023, and I've resigned from my full-time well-paid job to start a new journey as a freelancer. The first thing to do is to open a website that allows me to share thoughts, projects, and blog posts and be a reference for my clients.&lt;/p&gt;

&lt;p&gt;There are tons of options. I must keep into account that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I have very little time available&lt;/li&gt;
&lt;li&gt;I have limited knowledge of front-end technologies&lt;/li&gt;
&lt;li&gt;I need a personal website deployed as soon as possible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the next sections I'll bring you on the journey of deploying a no-cost, minimal-effort and blog-friendly website on a custom domain (in my case, it's &lt;a href="https://nicolamassarenti.com/"&gt;nicolamassarenti.com&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technologies
&lt;/h2&gt;

&lt;p&gt;If you're like me and not a front-end/full-stack developer you'll be &lt;br&gt;
overwhelmed by the options. To name a few, you'll have to choose among:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spend time and learn a new technology&lt;/li&gt;
&lt;li&gt;Use a no-code platform&lt;/li&gt;
&lt;li&gt;Create a static site&lt;/li&gt;
&lt;li&gt;Create a dynamic site&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Atjw8GYW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/nicolamassarenti/nicolamassarenti.github.io/main/content/blog/create-a-website-for-free-github-google-domains/which-path.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Atjw8GYW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/nicolamassarenti/nicolamassarenti.github.io/main/content/blog/create-a-website-for-free-github-google-domains/which-path.png" alt="" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the beginning, I was considering developing the website with Vue.js, which is easy to use and has an active community. I already know it a bit: in the past, I created a few dashboards (with vue.js and bootstrap), some login pages, and some upload pages. It would have been too much of an effort. It would have required a few days of coding, my design (colours, font, etc) would have been poor and, most importantly, there was the risk of falling into the rabbit hole of learning. I couldn't take this effort: I needed a website as soon as possible.&lt;br&gt;
On the other side, there was React, a popular framework with a steep learning curve. It may have been a good choice, but again, no time. I had to move on.&lt;/p&gt;

&lt;p&gt;The second option was to use some no-code platforms such as &lt;a href="//www.squarespace.com"&gt;Squarespace&lt;/a&gt; or &lt;a href="//wix.com"&gt;Wix&lt;/a&gt;, which have the following drawbacks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;they're not free&lt;/li&gt;
&lt;li&gt;I would be limited to the design they offer... Yes, I know, there are A LOT of templates.. But hey, I am a developer, and I want to have freedom ;) &lt;/li&gt;
&lt;li&gt;I would be dependent forever on a specific vendor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, I ended up choosing the third option: building a website using a framework for static websites. After some googling I stumbled upon hugo, which provides many themes, and supports Markdown and content organization through the use of taxonomies (e.g., categories, tags). One of the coolest themes I stumbled upon is &lt;a href="https://github.com/adityatelange/hugo-PaperMod"&gt;PaperMod&lt;/a&gt;, a minimal theme suited for a blog. The documentation wasn't great and it didn't seem straightforward to change the homepage.&lt;/p&gt;

&lt;p&gt;So I did a deeper search and came across &lt;a href="https://hugoloveit.com/"&gt;LoveIt&lt;/a&gt;, a theme similar to PaperMod, with better documentation, recent commits and an easy way of customizing the home page.&lt;/p&gt;

&lt;p&gt;Once I chose the website, it was time for the interesting part: &lt;strong&gt;developing&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  How to create a website
&lt;/h2&gt;

&lt;p&gt;First of all, you have to install hugo, the link to the installation is &lt;a href="https://gohugo.io/installation/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Then, create your project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hugo new site my-website
&lt;span class="nb"&gt;cd &lt;/span&gt;my-website
git init &lt;span class="c"&gt;#initializing the folder as a repository&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now install the theme. The straightforward way is to add the theme repository as a sub-module.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git submodule add https://github.com/dillonzq/LoveIt.git themes/LoveIt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Customization
&lt;/h2&gt;

&lt;p&gt;The configurations are stored in the file &lt;code&gt;config.toml&lt;/code&gt;. My configurations are the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="py"&gt;baseURL&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://nicolamassarenti.com/"&lt;/span&gt;

&lt;span class="c"&gt;# Change the default theme to be use when building the site with Hugo&lt;/span&gt;
&lt;span class="py"&gt;theme&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"LoveIt"&lt;/span&gt;

&lt;span class="c"&gt;# website title&lt;/span&gt;
&lt;span class="py"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Nicola Massarenti"&lt;/span&gt;

&lt;span class="c"&gt;# language code ["en", "zh-CN", "fr", "pl", ...]&lt;/span&gt;
&lt;span class="py"&gt;languageCode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"en"&lt;/span&gt;
&lt;span class="c"&gt;# language name ["English", "简体中文", "Français", "Polski", ...]&lt;/span&gt;
&lt;span class="py"&gt;languageName&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"English"&lt;/span&gt;
&lt;span class="c"&gt;# whether to include Chinese/Japanese/Korean&lt;/span&gt;
&lt;span class="py"&gt;hasCJKLanguage&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;

&lt;span class="c"&gt;# default amount of posts in each pages&lt;/span&gt;
&lt;span class="py"&gt;paginate&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;
&lt;span class="c"&gt;# google analytics code [UA-XXXXXXXX-X]&lt;/span&gt;
&lt;span class="py"&gt;googleAnalytics&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
&lt;span class="c"&gt;# copyright description used only for seo schema&lt;/span&gt;
&lt;span class="py"&gt;copyright&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;

&lt;span class="c"&gt;# whether to use robots.txt&lt;/span&gt;
&lt;span class="py"&gt;enableRobotsTXT&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="c"&gt;# whether to use git commit log&lt;/span&gt;
&lt;span class="py"&gt;enableGitInfo&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="c"&gt;# whether to use emoji code&lt;/span&gt;
&lt;span class="py"&gt;enableEmoji&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

&lt;span class="c"&gt;# ignore some build errors&lt;/span&gt;
&lt;span class="py"&gt;ignoreErrors&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"error-remote-getjson"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"error-missing-instagram-accesstoken"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="c"&gt;# Author config&lt;/span&gt;
&lt;span class="nn"&gt;[author]&lt;/span&gt;
  &lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Nicola Massarenti"&lt;/span&gt;
  &lt;span class="py"&gt;email&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"nicola.massarenti@gmail.com"&lt;/span&gt;
  &lt;span class="py"&gt;link&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;

&lt;span class="c"&gt;# Menu config&lt;/span&gt;
&lt;span class="nn"&gt;[menu]&lt;/span&gt;
  &lt;span class="nn"&gt;[[menu.main]]&lt;/span&gt;
    &lt;span class="py"&gt;weight&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="py"&gt;identifier&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"blog"&lt;/span&gt;
    &lt;span class="py"&gt;pre&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;post&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Blog"&lt;/span&gt;
    &lt;span class="py"&gt;url&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"/blog/"&lt;/span&gt;
    &lt;span class="py"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"The blog"&lt;/span&gt;
  &lt;span class="nn"&gt;[[menu.main]]&lt;/span&gt;
    &lt;span class="py"&gt;weight&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
    &lt;span class="py"&gt;identifier&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"about"&lt;/span&gt;
    &lt;span class="py"&gt;pre&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;post&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"About"&lt;/span&gt;
    &lt;span class="py"&gt;url&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"/about/"&lt;/span&gt;
    &lt;span class="py"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"The about page"&lt;/span&gt;

&lt;span class="nn"&gt;[params]&lt;/span&gt;
  &lt;span class="c"&gt;# site default theme ["auto", "light", "dark"]&lt;/span&gt;
  &lt;span class="py"&gt;defaultTheme&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"dark"&lt;/span&gt;
  &lt;span class="c"&gt;# public git repo url only then enableGitInfo is true&lt;/span&gt;
  &lt;span class="py"&gt;gitRepo&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://github.com/nicolamassarenti/nicolamassarenti.com"&lt;/span&gt;
  &lt;span class="c"&gt;#  which hash function used for SRI, when empty, no SRI is used&lt;/span&gt;
  &lt;span class="c"&gt;# ["sha256", "sha384", "sha512", "md5"]&lt;/span&gt;
  &lt;span class="py"&gt;fingerprint&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
  &lt;span class="c"&gt;#  date format&lt;/span&gt;
  &lt;span class="py"&gt;dateFormat&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"02/01/2006"&lt;/span&gt;
  &lt;span class="c"&gt;# website title for Open Graph and Twitter Cards&lt;/span&gt;
  &lt;span class="py"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Nicola Massarenti's website"&lt;/span&gt;
  &lt;span class="c"&gt;# website description for RSS, SEO, Open Graph and Twitter Cards&lt;/span&gt;
  &lt;span class="py"&gt;description&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"The personal website of Nicola Massarenti"&lt;/span&gt;
  &lt;span class="c"&gt;# website images for Open Graph and Twitter Cards&lt;/span&gt;
  &lt;span class="py"&gt;images&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;["/logo.png"]&lt;/span&gt;

  &lt;span class="c"&gt;# Header config&lt;/span&gt;
  &lt;span class="nn"&gt;[params.header]&lt;/span&gt;
    &lt;span class="c"&gt;# desktop header mode ["fixed", "normal", "auto"]&lt;/span&gt;
    &lt;span class="py"&gt;desktopMode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"auto"&lt;/span&gt;
    &lt;span class="c"&gt;# mobile header mode ["fixed", "normal", "auto"]&lt;/span&gt;
    &lt;span class="py"&gt;mobileMode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"auto"&lt;/span&gt;
    &lt;span class="c"&gt;#  Header title config&lt;/span&gt;
    &lt;span class="nn"&gt;[params.header.title]&lt;/span&gt;
      &lt;span class="c"&gt;# URL of the LOGO&lt;/span&gt;
      &lt;span class="py"&gt;logo&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="c"&gt;# title name&lt;/span&gt;
      &lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Nicola Massarenti"&lt;/span&gt;
      &lt;span class="c"&gt;# you can add extra information before the name (HTML format is supported), such as icons&lt;/span&gt;
      &lt;span class="py"&gt;pre&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="c"&gt;# you can add extra information after the name (HTML format is supported), such as icons&lt;/span&gt;
      &lt;span class="py"&gt;post&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="c"&gt;#  whether to use typeit animation for title name&lt;/span&gt;
      &lt;span class="py"&gt;typeit&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;

  &lt;span class="c"&gt;# Footer config&lt;/span&gt;
  &lt;span class="nn"&gt;[params.footer]&lt;/span&gt;
    &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;#  Custom content (HTML format is supported)&lt;/span&gt;
    &lt;span class="py"&gt;custom&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;''&lt;/span&gt;
    &lt;span class="c"&gt;#  whether to show Hugo and theme info&lt;/span&gt;
    &lt;span class="py"&gt;hugo&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
    &lt;span class="c"&gt;#  whether to show copyright info&lt;/span&gt;
    &lt;span class="py"&gt;copyright&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;#  whether to show the author&lt;/span&gt;
    &lt;span class="py"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;# Site creation time&lt;/span&gt;
    &lt;span class="py"&gt;since&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2023&lt;/span&gt;
    &lt;span class="c"&gt;# ICP info only in China (HTML format is supported)&lt;/span&gt;
    &lt;span class="py"&gt;icp&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="c"&gt;# license info (HTML format is supported)&lt;/span&gt;
    &lt;span class="py"&gt;license&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;'&amp;lt;a rel="license external nofollow noopener noreffer" href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank"&amp;gt;CC BY-NC 4.0&amp;lt;/a&amp;gt;'&lt;/span&gt;

  &lt;span class="c"&gt;#  Section (all posts) page config&lt;/span&gt;
  &lt;span class="nn"&gt;[params.section]&lt;/span&gt;
    &lt;span class="c"&gt;# special amount of posts in each section page&lt;/span&gt;
    &lt;span class="py"&gt;paginate&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;
    &lt;span class="c"&gt;# date format (month and day)&lt;/span&gt;
    &lt;span class="py"&gt;dateFormat&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"02-01"&lt;/span&gt;
    &lt;span class="c"&gt;# amount of RSS pages&lt;/span&gt;
    &lt;span class="py"&gt;rss&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;

  &lt;span class="c"&gt;#  List (category or tag) page config&lt;/span&gt;
  &lt;span class="nn"&gt;[params.list]&lt;/span&gt;
    &lt;span class="c"&gt;# special amount of posts in each list page&lt;/span&gt;
    &lt;span class="py"&gt;paginate&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;
    &lt;span class="c"&gt;# date format (month and day)&lt;/span&gt;
    &lt;span class="py"&gt;dateFormat&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"02-01"&lt;/span&gt;
    &lt;span class="c"&gt;# amount of RSS pages&lt;/span&gt;
    &lt;span class="py"&gt;rss&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;

  &lt;span class="c"&gt;#  App icon config&lt;/span&gt;
  &lt;span class="nn"&gt;[params.app]&lt;/span&gt;
    &lt;span class="c"&gt;# optional site title override for the app when added to an iOS home screen or Android launcher&lt;/span&gt;
    &lt;span class="py"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Nicola Massarenti's website"&lt;/span&gt;
    &lt;span class="c"&gt;# whether to omit favicon resource links&lt;/span&gt;
    &lt;span class="py"&gt;noFavicon&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
    &lt;span class="c"&gt;# modern SVG favicon to use in place of older style .png and .ico files&lt;/span&gt;
    &lt;span class="py"&gt;svgFavicon&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="c"&gt;# Android browser theme color&lt;/span&gt;
    &lt;span class="py"&gt;themeColor&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"#ffffff"&lt;/span&gt;
    &lt;span class="c"&gt;# Safari mask icon color&lt;/span&gt;
    &lt;span class="py"&gt;iconColor&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"#5bbad5"&lt;/span&gt;
    &lt;span class="c"&gt;# Windows v8-10 tile color&lt;/span&gt;
    &lt;span class="py"&gt;tileColor&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"#da532c"&lt;/span&gt;

  &lt;span class="c"&gt;#  Search config&lt;/span&gt;
  &lt;span class="nn"&gt;[params.search]&lt;/span&gt;
    &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;# type of search engine ["lunr", "algolia"]&lt;/span&gt;
    &lt;span class="py"&gt;type&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"lunr"&lt;/span&gt;
    &lt;span class="c"&gt;# max index length of the chunked content&lt;/span&gt;
    &lt;span class="py"&gt;contentLength&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;4000&lt;/span&gt;
    &lt;span class="c"&gt;# placeholder of the search bar&lt;/span&gt;
    &lt;span class="py"&gt;placeholder&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="c"&gt;#  max number of results length&lt;/span&gt;
    &lt;span class="py"&gt;maxResultLength&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
    &lt;span class="c"&gt;#  snippet length of the result&lt;/span&gt;
    &lt;span class="py"&gt;snippetLength&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;
    &lt;span class="c"&gt;#  HTML tag name of the highlight part in results&lt;/span&gt;
    &lt;span class="py"&gt;highlightTag&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"em"&lt;/span&gt;
    &lt;span class="c"&gt;#  whether to use the absolute URL based on the baseURL in search index&lt;/span&gt;
    &lt;span class="py"&gt;absoluteURL&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
    &lt;span class="nn"&gt;[params.search.algolia]&lt;/span&gt;
      &lt;span class="py"&gt;index&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="py"&gt;appID&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="py"&gt;searchKey&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;

  &lt;span class="c"&gt;# Home page config&lt;/span&gt;
  &lt;span class="nn"&gt;[params.home]&lt;/span&gt;
    &lt;span class="c"&gt;#  amount of RSS pages&lt;/span&gt;
    &lt;span class="py"&gt;rss&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
    &lt;span class="c"&gt;# Home page profile&lt;/span&gt;
    &lt;span class="nn"&gt;[params.home.profile]&lt;/span&gt;
      &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="c"&gt;# Gravatar Email for preferred avatar in home page&lt;/span&gt;
      &lt;span class="py"&gt;gravatarEmail&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="c"&gt;# URL of avatar shown in home page&lt;/span&gt;
      &lt;span class="py"&gt;avatarURL&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"/images/NicolaMassarenti.jpg"&lt;/span&gt;
      &lt;span class="c"&gt;#  title shown in home page (HTML format is supported)&lt;/span&gt;
      &lt;span class="py"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Nicola Massarenti"&lt;/span&gt;
      &lt;span class="c"&gt;# subtitle shown in home page (HTML format is supported)&lt;/span&gt;
      &lt;span class="py"&gt;subtitle&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Freelance AI/ML Engineer"&lt;/span&gt;
      &lt;span class="c"&gt;# whether to use typeit animation for subtitle&lt;/span&gt;
      &lt;span class="py"&gt;typeit&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="c"&gt;# whether to show social links&lt;/span&gt;
      &lt;span class="py"&gt;social&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="c"&gt;#  disclaimer (HTML format is supported)&lt;/span&gt;
      &lt;span class="py"&gt;disclaimer&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="c"&gt;# Home page posts&lt;/span&gt;
    &lt;span class="nn"&gt;[params.home.posts]&lt;/span&gt;
      &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="c"&gt;# special amount of posts in each home posts page&lt;/span&gt;
      &lt;span class="py"&gt;paginate&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;
      &lt;span class="c"&gt;#  replaced with hiddenFromHomePage in params.page&lt;/span&gt;
      &lt;span class="c"&gt;# default behavior when you don't set "hiddenFromHomePage" in front matter&lt;/span&gt;
      &lt;span class="py"&gt;defaultHiddenFromHomePage&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;

  &lt;span class="c"&gt;# Social config about the author&lt;/span&gt;
  &lt;span class="nn"&gt;[params.social]&lt;/span&gt;
    &lt;span class="py"&gt;GitHub&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"nicolamassarenti"&lt;/span&gt;
    &lt;span class="py"&gt;Linkedin&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="py"&gt;"nicola-massarenti/?locale&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="err"&gt;en_US&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;    &lt;span class="py"&gt;Twitter&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Instagram&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Facebook&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Telegram&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"@nicolamassarenti"&lt;/span&gt;
    &lt;span class="py"&gt;Medium&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"@nicola-massarenti"&lt;/span&gt;
    &lt;span class="py"&gt;Gitlab&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Youtubelegacy&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Youtubecustom&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Youtubechannel&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Tumblr&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Quora&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Keybase&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Pinterest&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Reddit&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Codepen&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;FreeCodeCamp&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Bitbucket&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Stackoverflow&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Weibo&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Odnoklassniki&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;VK&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Flickr&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Xing&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Snapchat&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Soundcloud&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Spotify&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Bandcamp&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Paypal&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Fivehundredpx&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Mix&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Goodreads&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Lastfm&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Foursquare&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Hackernews&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Kickstarter&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Patreon&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Steam&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Twitch&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Strava&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Skype&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Whatsapp&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Zhihu&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Douban&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Angellist&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Slidershare&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Jsfiddle&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Deviantart&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Behance&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Dribbble&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Wordpress&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Vine&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Googlescholar&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Researchgate&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Mastodon&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Thingiverse&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Devto&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Gitea&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;XMPP&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Matrix&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Bilibili&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Discord&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;DiscordInvite&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Lichess&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;ORCID&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"0000-0002-8882-4252"&lt;/span&gt;
    &lt;span class="py"&gt;Pleroma&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Kaggle&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;MediaWiki&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Plume&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;HackTheBox&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;RootMe&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Phone&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;Email&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"nicola.massarenti@gmail.com"&lt;/span&gt;
    &lt;span class="py"&gt;RSS&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="c"&gt;# &lt;/span&gt;

  &lt;span class="c"&gt;#  Page global config&lt;/span&gt;
  &lt;span class="nn"&gt;[params.page]&lt;/span&gt;
    &lt;span class="c"&gt;#  whether to hide a page from home page&lt;/span&gt;
    &lt;span class="py"&gt;hiddenFromHomePage&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
    &lt;span class="c"&gt;#  whether to hide a page from search results&lt;/span&gt;
    &lt;span class="py"&gt;hiddenFromSearch&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
    &lt;span class="c"&gt;#  whether to enable twemoji&lt;/span&gt;
    &lt;span class="py"&gt;twemoji&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
    &lt;span class="c"&gt;# whether to enable lightgallery&lt;/span&gt;
    &lt;span class="py"&gt;lightgallery&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
    &lt;span class="c"&gt;#  whether to enable the ruby extended syntax&lt;/span&gt;
    &lt;span class="py"&gt;ruby&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;#  whether to enable the fraction extended syntax&lt;/span&gt;
    &lt;span class="py"&gt;fraction&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;#  whether to enable the fontawesome extended syntax&lt;/span&gt;
    &lt;span class="py"&gt;fontawesome&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;# whether to show link to Raw Markdown content of the content&lt;/span&gt;
    &lt;span class="py"&gt;linkToMarkdown&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;#  whether to show the full text content in RSS&lt;/span&gt;
    &lt;span class="py"&gt;rssFullText&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
    &lt;span class="c"&gt;#  Table of the contents config&lt;/span&gt;
    &lt;span class="nn"&gt;[params.page.toc]&lt;/span&gt;
      &lt;span class="c"&gt;# whether to enable the table of the contents&lt;/span&gt;
      &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="c"&gt;#  whether to keep the static table of the contents in front of the post&lt;/span&gt;
      &lt;span class="py"&gt;keepStatic&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="c"&gt;# whether to make the table of the contents in the sidebar automatically collapsed&lt;/span&gt;
      &lt;span class="py"&gt;auto&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;#  KaTeX mathematical formulas&lt;/span&gt;
    &lt;span class="nn"&gt;[params.page.math]&lt;/span&gt;
      &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="c"&gt;#  default inline delimiter is $ ... $ and \( ... \)&lt;/span&gt;
      &lt;span class="py"&gt;inlineLeftDelimiter&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="py"&gt;inlineRightDelimiter&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="c"&gt;#  default block delimiter is $$ ... $$, \[ ... \], \begin{equation} ... \end{equation} and some other functions&lt;/span&gt;
      &lt;span class="py"&gt;blockLeftDelimiter&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="py"&gt;blockRightDelimiter&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="c"&gt;# KaTeX extension copy_tex&lt;/span&gt;
      &lt;span class="py"&gt;copyTex&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="c"&gt;# KaTeX extension mhchem&lt;/span&gt;
      &lt;span class="py"&gt;mhchem&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;#  Code config&lt;/span&gt;
    &lt;span class="nn"&gt;[params.page.code]&lt;/span&gt;
      &lt;span class="c"&gt;# whether to show the copy button of the code block&lt;/span&gt;
      &lt;span class="py"&gt;copy&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="c"&gt;# the maximum number of lines of displayed code by default&lt;/span&gt;
      &lt;span class="py"&gt;maxShownLines&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;
    &lt;span class="c"&gt;#  Mapbox GL JS config&lt;/span&gt;
    &lt;span class="nn"&gt;[params.page.mapbox]&lt;/span&gt;
      &lt;span class="c"&gt;# access token of Mapbox GL JS&lt;/span&gt;
      &lt;span class="py"&gt;accessToken&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="c"&gt;# style for the light theme&lt;/span&gt;
      &lt;span class="py"&gt;lightStyle&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="py"&gt;"mapbox://styles/mapbox/light-v10?optimize&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;      &lt;span class="c"&gt;# style for the dark theme&lt;/span&gt;
      &lt;span class="py"&gt;darkStyle&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="py"&gt;"mapbox://styles/mapbox/dark-v10?optimize&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;      &lt;span class="c"&gt;# whether to add NavigationControl&lt;/span&gt;
      &lt;span class="py"&gt;navigation&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="c"&gt;# whether to add GeolocateControl&lt;/span&gt;
      &lt;span class="py"&gt;geolocate&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="c"&gt;# whether to add ScaleControl&lt;/span&gt;
      &lt;span class="py"&gt;scale&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="c"&gt;# whether to add FullscreenControl&lt;/span&gt;
      &lt;span class="py"&gt;fullscreen&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;#  social share links in post page&lt;/span&gt;
    &lt;span class="nn"&gt;[params.page.share]&lt;/span&gt;
      &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="py"&gt;Twitter&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="py"&gt;Facebook&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="py"&gt;Linkedin&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;Whatsapp&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;Pinterest&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;Tumblr&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;HackerNews&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="py"&gt;Reddit&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;VK&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;Buffer&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;Xing&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;Line&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="py"&gt;Instapaper&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;Pocket&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;Flipboard&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;Weibo&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="py"&gt;Blogger&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;Baidu&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;Odnoklassniki&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;Evernote&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;Skype&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;Trello&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;Mix&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
    &lt;span class="c"&gt;#  Comment config&lt;/span&gt;
    &lt;span class="nn"&gt;[params.page.comment]&lt;/span&gt;
      &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="c"&gt;# Disqus comment config&lt;/span&gt;
      &lt;span class="nn"&gt;[params.page.comment.disqus]&lt;/span&gt;
        &lt;span class="c"&gt;# &lt;/span&gt;
        &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
        &lt;span class="c"&gt;# Disqus shortname to use Disqus in posts&lt;/span&gt;
        &lt;span class="py"&gt;shortname&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="c"&gt;# Gitalk comment config&lt;/span&gt;
      &lt;span class="nn"&gt;[params.page.comment.gitalk]&lt;/span&gt;
        &lt;span class="c"&gt;# &lt;/span&gt;
        &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
        &lt;span class="py"&gt;owner&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;repo&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;clientId&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;clientSecret&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="c"&gt;# Valine comment config&lt;/span&gt;
      &lt;span class="nn"&gt;[params.page.comment.valine]&lt;/span&gt;
        &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
        &lt;span class="py"&gt;appId&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;appKey&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;placeholder&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;avatar&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"mp"&lt;/span&gt;
        &lt;span class="py"&gt;meta&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;pageSize&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
        &lt;span class="c"&gt;# automatically adapt the current theme i18n configuration when empty&lt;/span&gt;
        &lt;span class="py"&gt;lang&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;visitor&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
        &lt;span class="py"&gt;recordIP&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
        &lt;span class="py"&gt;highlight&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
        &lt;span class="py"&gt;enableQQ&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
        &lt;span class="py"&gt;serverURLs&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="c"&gt;#  emoji data file name, default is "google.yml"&lt;/span&gt;
        &lt;span class="c"&gt;# ["apple.yml", "google.yml", "facebook.yml", "twitter.yml"]&lt;/span&gt;
        &lt;span class="c"&gt;# located in "themes/LoveIt/assets/lib/valine/emoji/" directory&lt;/span&gt;
        &lt;span class="c"&gt;# you can store your own data files in the same path under your project:&lt;/span&gt;
        &lt;span class="c"&gt;# "assets/lib/valine/emoji/"&lt;/span&gt;
        &lt;span class="py"&gt;emoji&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="c"&gt;# Facebook comment config&lt;/span&gt;
      &lt;span class="nn"&gt;[params.page.comment.facebook]&lt;/span&gt;
        &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
        &lt;span class="py"&gt;width&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"100%"&lt;/span&gt;
        &lt;span class="py"&gt;numPosts&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
        &lt;span class="py"&gt;appId&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="c"&gt;# automatically adapt the current theme i18n configuration when empty&lt;/span&gt;
        &lt;span class="py"&gt;languageCode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="c"&gt;#  Telegram comments config&lt;/span&gt;
      &lt;span class="nn"&gt;[params.page.comment.telegram]&lt;/span&gt;
        &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
        &lt;span class="py"&gt;siteID&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;limit&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
        &lt;span class="py"&gt;height&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;color&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;colorful&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
        &lt;span class="py"&gt;dislikes&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
        &lt;span class="py"&gt;outlined&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="c"&gt;#  Commento comment config&lt;/span&gt;
      &lt;span class="nn"&gt;[params.page.comment.commento]&lt;/span&gt;
        &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="c"&gt;#  utterances comment config&lt;/span&gt;
      &lt;span class="nn"&gt;[params.page.comment.utterances]&lt;/span&gt;
        &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
        &lt;span class="c"&gt;# owner/repo&lt;/span&gt;
        &lt;span class="py"&gt;repo&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;issueTerm&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"pathname"&lt;/span&gt;
        &lt;span class="py"&gt;label&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;lightTheme&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"github-light"&lt;/span&gt;
        &lt;span class="py"&gt;darkTheme&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"github-dark"&lt;/span&gt;
      &lt;span class="c"&gt;# giscus comment config (https://giscus.app/)&lt;/span&gt;
      &lt;span class="nn"&gt;[params.page.comment.giscus]&lt;/span&gt;
        &lt;span class="c"&gt;# You can refer to the official documentation of giscus to use the following configuration.&lt;/span&gt;
        &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
        &lt;span class="py"&gt;repo&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;repoId&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;category&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Announcements"&lt;/span&gt;
        &lt;span class="py"&gt;categoryId&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="c"&gt;# automatically adapt the current theme i18n configuration when empty&lt;/span&gt;
        &lt;span class="py"&gt;lang&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;mapping&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"pathname"&lt;/span&gt;
        &lt;span class="py"&gt;reactionsEnabled&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"1"&lt;/span&gt;
        &lt;span class="py"&gt;emitMetadata&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"0"&lt;/span&gt;
        &lt;span class="py"&gt;inputPosition&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"bottom"&lt;/span&gt;
        &lt;span class="py"&gt;lazyLoading&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
        &lt;span class="py"&gt;lightTheme&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"light"&lt;/span&gt;
        &lt;span class="py"&gt;darkTheme&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"dark"&lt;/span&gt;
    &lt;span class="c"&gt;#  Third-party library config&lt;/span&gt;
    &lt;span class="nn"&gt;[params.page.library]&lt;/span&gt;
      &lt;span class="nn"&gt;[params.page.library.css]&lt;/span&gt;
        &lt;span class="c"&gt;# someCSS = "some.css"&lt;/span&gt;
        &lt;span class="c"&gt;# located in "assets/"&lt;/span&gt;
        &lt;span class="c"&gt;# Or&lt;/span&gt;
        &lt;span class="c"&gt;# someCSS = "https://cdn.example.com/some.css"&lt;/span&gt;
      &lt;span class="nn"&gt;[params.page.library.js]&lt;/span&gt;
        &lt;span class="c"&gt;# someJavascript = "some.js"&lt;/span&gt;
        &lt;span class="c"&gt;# located in "assets/"&lt;/span&gt;
        &lt;span class="c"&gt;# Or&lt;/span&gt;
        &lt;span class="c"&gt;# someJavascript = "https://cdn.example.com/some.js"&lt;/span&gt;
    &lt;span class="c"&gt;#  Page SEO config&lt;/span&gt;
    &lt;span class="nn"&gt;[params.page.seo]&lt;/span&gt;
      &lt;span class="c"&gt;# image URL&lt;/span&gt;
      &lt;span class="py"&gt;images&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
      &lt;span class="c"&gt;# Publisher info&lt;/span&gt;
      &lt;span class="nn"&gt;[params.page.seo.publisher]&lt;/span&gt;
        &lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
        &lt;span class="py"&gt;logoUrl&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;

  &lt;span class="c"&gt;#  TypeIt config&lt;/span&gt;
  &lt;span class="nn"&gt;[params.typeit]&lt;/span&gt;
    &lt;span class="c"&gt;# typing speed between each step (measured in milliseconds)&lt;/span&gt;
    &lt;span class="py"&gt;speed&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;
    &lt;span class="c"&gt;# blinking speed of the cursor (measured in milliseconds)&lt;/span&gt;
    &lt;span class="py"&gt;cursorSpeed&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;
    &lt;span class="c"&gt;# character used for the cursor (HTML format is supported)&lt;/span&gt;
    &lt;span class="py"&gt;cursorChar&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"|"&lt;/span&gt;
    &lt;span class="c"&gt;# cursor duration after typing finishing (measured in milliseconds, "-1" means unlimited)&lt;/span&gt;
    &lt;span class="py"&gt;duration&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;-1&lt;/span&gt;

  &lt;span class="c"&gt;# Site verification code config for Google/Bing/Yandex/Pinterest/Baidu&lt;/span&gt;
  &lt;span class="nn"&gt;[params.verification]&lt;/span&gt;
    &lt;span class="py"&gt;google&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;bing&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;yandex&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;pinterest&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;baidu&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;

  &lt;span class="c"&gt;#  Site SEO config&lt;/span&gt;
  &lt;span class="nn"&gt;[params.seo]&lt;/span&gt;
    &lt;span class="c"&gt;# image URL&lt;/span&gt;
    &lt;span class="py"&gt;image&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://raw.githubusercontent.com/nicolamassarenti/nicolamassarenti.com/main/assets/images/NicolaMassarenti.jpg"&lt;/span&gt;
    &lt;span class="c"&gt;# thumbnail URL&lt;/span&gt;
    &lt;span class="py"&gt;thumbnailUrl&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://raw.githubusercontent.com/nicolamassarenti/nicolamassarenti.com/main/assets/images/NicolaMassarenti.jpg"&lt;/span&gt;

  &lt;span class="c"&gt;#  Analytics config&lt;/span&gt;
  &lt;span class="nn"&gt;[params.analytics]&lt;/span&gt;
    &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
    &lt;span class="c"&gt;# Google Analytics&lt;/span&gt;
    &lt;span class="nn"&gt;[params.analytics.google]&lt;/span&gt;
      &lt;span class="py"&gt;id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="c"&gt;# whether to anonymize IP&lt;/span&gt;
      &lt;span class="py"&gt;anonymizeIP&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;# Fathom Analytics&lt;/span&gt;
    &lt;span class="nn"&gt;[params.analytics.fathom]&lt;/span&gt;
      &lt;span class="py"&gt;id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="c"&gt;# server url for your tracker if you're self hosting&lt;/span&gt;
      &lt;span class="py"&gt;server&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="c"&gt;# Plausible Analytics&lt;/span&gt;
    &lt;span class="nn"&gt;[params.analytics.plausible]&lt;/span&gt;
      &lt;span class="py"&gt;dataDomain&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="c"&gt;# Yandex Metrica&lt;/span&gt;
    &lt;span class="nn"&gt;[params.analytics.yandexMetrica]&lt;/span&gt;
      &lt;span class="py"&gt;id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;

  &lt;span class="c"&gt;#  Cookie consent config&lt;/span&gt;
  &lt;span class="nn"&gt;[params.cookieconsent]&lt;/span&gt;
    &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;# text strings used for Cookie consent banner&lt;/span&gt;
    &lt;span class="nn"&gt;[params.cookieconsent.content]&lt;/span&gt;
      &lt;span class="py"&gt;message&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="py"&gt;dismiss&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="py"&gt;link&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;

  &lt;span class="c"&gt;#  CDN config for third-party library files&lt;/span&gt;
  &lt;span class="nn"&gt;[params.cdn]&lt;/span&gt;
    &lt;span class="c"&gt;# CDN data file name, disabled by default&lt;/span&gt;
    &lt;span class="c"&gt;# ["jsdelivr.yml"]&lt;/span&gt;
    &lt;span class="c"&gt;# located in "themes/LoveIt/assets/data/cdn/" directory&lt;/span&gt;
    &lt;span class="c"&gt;# you can store your own data files in the same path under your project:&lt;/span&gt;
    &lt;span class="c"&gt;# "assets/data/cdn/"&lt;/span&gt;
    &lt;span class="py"&gt;data&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;

  &lt;span class="c"&gt;#  Compatibility config&lt;/span&gt;
  &lt;span class="nn"&gt;[params.compatibility]&lt;/span&gt;
    &lt;span class="c"&gt;# whether to use Polyfill.io to be compatible with older browsers&lt;/span&gt;
    &lt;span class="py"&gt;polyfill&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
    &lt;span class="c"&gt;# whether to use object-fit-images to be compatible with older browsers&lt;/span&gt;
    &lt;span class="py"&gt;objectFit&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;

&lt;span class="c"&gt;# Markup related config in Hugo&lt;/span&gt;
&lt;span class="nn"&gt;[markup]&lt;/span&gt;
  &lt;span class="c"&gt;# Syntax Highlighting&lt;/span&gt;
  &lt;span class="nn"&gt;[markup.highlight]&lt;/span&gt;
    &lt;span class="py"&gt;codeFences&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="py"&gt;guessSyntax&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="py"&gt;lineNos&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="py"&gt;lineNumbersInTable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;# false is a necessary configuration&lt;/span&gt;
    &lt;span class="c"&gt;# (https://github.com/dillonzq/LoveIt/issues/158)&lt;/span&gt;
    &lt;span class="py"&gt;noClasses&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
  &lt;span class="c"&gt;# Goldmark is from Hugo 0.60 the default library used for Markdown&lt;/span&gt;
  &lt;span class="nn"&gt;[markup.goldmark]&lt;/span&gt;
    &lt;span class="nn"&gt;[markup.goldmark.extensions]&lt;/span&gt;
      &lt;span class="py"&gt;definitionList&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="py"&gt;footnote&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="py"&gt;linkify&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="py"&gt;strikethrough&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="py"&gt;table&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="py"&gt;taskList&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="py"&gt;typographer&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="nn"&gt;[markup.goldmark.renderer]&lt;/span&gt;
      &lt;span class="c"&gt;# whether to use HTML tags directly in the document&lt;/span&gt;
      &lt;span class="py"&gt;unsafe&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="c"&gt;# Table Of Contents settings&lt;/span&gt;
  &lt;span class="nn"&gt;[markup.tableOfContents]&lt;/span&gt;
    &lt;span class="py"&gt;startLevel&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
    &lt;span class="py"&gt;endLevel&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;

&lt;span class="c"&gt;# Sitemap config&lt;/span&gt;
&lt;span class="nn"&gt;[sitemap]&lt;/span&gt;
  &lt;span class="py"&gt;changefreq&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"weekly"&lt;/span&gt;
  &lt;span class="py"&gt;filename&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"sitemap.xml"&lt;/span&gt;
  &lt;span class="py"&gt;priority&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt;

&lt;span class="c"&gt;# Permalinks config&lt;/span&gt;
&lt;span class="nn"&gt;[Permalinks]&lt;/span&gt;
  &lt;span class="c"&gt;# posts = ":year/:month/:filename"&lt;/span&gt;
  &lt;span class="py"&gt;posts&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;":filename"&lt;/span&gt;

&lt;span class="c"&gt;# Privacy config&lt;/span&gt;
&lt;span class="nn"&gt;[privacy]&lt;/span&gt;
  &lt;span class="c"&gt;#  privacy of the Google Analytics (replaced by params.analytics.google)&lt;/span&gt;
  &lt;span class="nn"&gt;[privacy.googleAnalytics]&lt;/span&gt;
    &lt;span class="c"&gt;# ...&lt;/span&gt;
  &lt;span class="nn"&gt;[privacy.twitter]&lt;/span&gt;
    &lt;span class="py"&gt;enableDNT&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="nn"&gt;[privacy.youtube]&lt;/span&gt;
    &lt;span class="py"&gt;privacyEnhanced&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

&lt;span class="c"&gt;# Options to make output .md files&lt;/span&gt;
&lt;span class="nn"&gt;[mediaTypes]&lt;/span&gt;
  &lt;span class="nn"&gt;[mediaTypes."text/plain"]&lt;/span&gt;
    &lt;span class="py"&gt;suffixes&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;["md"]&lt;/span&gt;

&lt;span class="c"&gt;# Options to make output .md files&lt;/span&gt;
&lt;span class="nn"&gt;[outputFormats.MarkDown]&lt;/span&gt;
  &lt;span class="py"&gt;mediaType&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"text/plain"&lt;/span&gt;
  &lt;span class="py"&gt;isPlainText&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="py"&gt;isHTML&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;

&lt;span class="c"&gt;# Options to make hugo output files&lt;/span&gt;
&lt;span class="nn"&gt;[outputs]&lt;/span&gt;
  &lt;span class="c"&gt;# &lt;/span&gt;
  &lt;span class="py"&gt;home&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"HTML"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"RSS"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"JSON"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
  &lt;span class="py"&gt;page&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"HTML"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"MarkDown"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
  &lt;span class="py"&gt;section&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"HTML"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"RSS"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
  &lt;span class="py"&gt;taxonomy&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"HTML"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"RSS"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
  &lt;span class="py"&gt;taxonomyTerm&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;["HTML"]&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Favicons
&lt;/h3&gt;

&lt;p&gt;I used &lt;a href="https://raw.githubusercontent.com/nicolamassarenti/nicolamassarenti.github.io/main/assets/images/NicolaMassarenti.jpg"&gt;this&lt;/a&gt; picture and generated the different formats using &lt;a href="https://realfavicongenerator.net/"&gt;realfavicongenerator&lt;/a&gt; . &lt;/p&gt;

&lt;h2&gt;
  
  
  Skeleton structure
&lt;/h2&gt;

&lt;p&gt;Setting up the skeleton (menu bar, header, footer) is fairly simple.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="c"&gt;# Menu config&lt;/span&gt;
&lt;span class="nn"&gt;[menu]&lt;/span&gt;
  &lt;span class="nn"&gt;[[menu.main]]&lt;/span&gt;
    &lt;span class="py"&gt;weight&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="py"&gt;identifier&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"blog"&lt;/span&gt;
    &lt;span class="py"&gt;pre&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;post&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Blog"&lt;/span&gt;
    &lt;span class="py"&gt;url&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"/blog/"&lt;/span&gt;
    &lt;span class="py"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"The blog"&lt;/span&gt;
  &lt;span class="nn"&gt;[[menu.main]]&lt;/span&gt;
    &lt;span class="py"&gt;weight&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
    &lt;span class="py"&gt;identifier&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"about"&lt;/span&gt;
    &lt;span class="py"&gt;pre&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;post&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"About"&lt;/span&gt;
    &lt;span class="py"&gt;url&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"/about/"&lt;/span&gt;
    &lt;span class="py"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"The about page"&lt;/span&gt;

&lt;span class="nn"&gt;[params]&lt;/span&gt;
  &lt;span class="c"&gt;# site default theme ["auto", "light", "dark"]&lt;/span&gt;
  &lt;span class="py"&gt;defaultTheme&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"dark"&lt;/span&gt;
  &lt;span class="c"&gt;# public git repo url only then enableGitInfo is true&lt;/span&gt;
  &lt;span class="py"&gt;gitRepo&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://github.com/nicolamassarenti/nicolamassarenti.com"&lt;/span&gt;
  &lt;span class="c"&gt;#  which hash function used for SRI, when empty, no SRI is used&lt;/span&gt;
  &lt;span class="c"&gt;# ["sha256", "sha384", "sha512", "md5"]&lt;/span&gt;
  &lt;span class="py"&gt;fingerprint&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
  &lt;span class="c"&gt;#  date format&lt;/span&gt;
  &lt;span class="py"&gt;dateFormat&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"02/01/2006"&lt;/span&gt;
  &lt;span class="c"&gt;# website title for Open Graph and Twitter Cards&lt;/span&gt;
  &lt;span class="py"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Nicola Massarenti's website"&lt;/span&gt;
  &lt;span class="c"&gt;# website description for RSS, SEO, Open Graph and Twitter Cards&lt;/span&gt;
  &lt;span class="py"&gt;description&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"The personal website of Nicola Massarenti"&lt;/span&gt;
  &lt;span class="c"&gt;# website images for Open Graph and Twitter Cards&lt;/span&gt;
  &lt;span class="py"&gt;images&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;["/logo.png"]&lt;/span&gt;

  &lt;span class="c"&gt;# Header config&lt;/span&gt;
  &lt;span class="nn"&gt;[params.header]&lt;/span&gt;
    &lt;span class="c"&gt;# desktop header mode ["fixed", "normal", "auto"]&lt;/span&gt;
    &lt;span class="py"&gt;desktopMode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"auto"&lt;/span&gt;
    &lt;span class="c"&gt;# mobile header mode ["fixed", "normal", "auto"]&lt;/span&gt;
    &lt;span class="py"&gt;mobileMode&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"auto"&lt;/span&gt;
    &lt;span class="c"&gt;#  Header title config&lt;/span&gt;
    &lt;span class="nn"&gt;[params.header.title]&lt;/span&gt;
      &lt;span class="c"&gt;# URL of the LOGO&lt;/span&gt;
      &lt;span class="py"&gt;logo&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="c"&gt;# title name&lt;/span&gt;
      &lt;span class="py"&gt;name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Nicola Massarenti"&lt;/span&gt;
      &lt;span class="c"&gt;# you can add extra information before the name (HTML format is supported), such as icons&lt;/span&gt;
      &lt;span class="py"&gt;pre&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="c"&gt;# you can add extra information after the name (HTML format is supported), such as icons&lt;/span&gt;
      &lt;span class="py"&gt;post&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="c"&gt;#  whether to use typeit animation for title name&lt;/span&gt;
      &lt;span class="py"&gt;typeit&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;

  &lt;span class="c"&gt;# Footer config&lt;/span&gt;
  &lt;span class="nn"&gt;[params.footer]&lt;/span&gt;
    &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;#  Custom content (HTML format is supported)&lt;/span&gt;
    &lt;span class="py"&gt;custom&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;''&lt;/span&gt;
    &lt;span class="c"&gt;#  whether to show Hugo and theme info&lt;/span&gt;
    &lt;span class="py"&gt;hugo&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
    &lt;span class="c"&gt;#  whether to show copyright info&lt;/span&gt;
    &lt;span class="py"&gt;copyright&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;#  whether to show the author&lt;/span&gt;
    &lt;span class="py"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="c"&gt;# Site creation time&lt;/span&gt;
    &lt;span class="py"&gt;since&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2023&lt;/span&gt;
    &lt;span class="c"&gt;# ICP info only in China (HTML format is supported)&lt;/span&gt;
    &lt;span class="py"&gt;icp&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="c"&gt;# license info (HTML format is supported)&lt;/span&gt;
    &lt;span class="py"&gt;license&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;'&amp;lt;a rel="license external nofollow noopener noreffer" href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank"&amp;gt;CC BY-NC 4.0&amp;lt;/a&amp;gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It sets the menu, the footer and the header configurations. There are two sections: &lt;code&gt;blog&lt;/code&gt;, which contains my articles, and &lt;code&gt;about&lt;/code&gt;, a page with my work experiences.&lt;/p&gt;

&lt;h2&gt;
  
  
  Home page
&lt;/h2&gt;

&lt;p&gt;To set up the home page is necessary to save the avatar in the folder &lt;code&gt;assets/images&lt;/code&gt;.  The configurations are:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;  &lt;span class="nn"&gt;[params.home]&lt;/span&gt;
    &lt;span class="py"&gt;rss&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
    &lt;span class="nn"&gt;[params.home.profile]&lt;/span&gt;
      &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="py"&gt;gravatarEmail&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
      &lt;span class="py"&gt;avatarURL&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"/images/NicolaMassarenti.jpg"&lt;/span&gt;
      &lt;span class="py"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Nicola Massarenti"&lt;/span&gt;
      &lt;span class="py"&gt;subtitle&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Freelance AI/ML Engineer"&lt;/span&gt;
      &lt;span class="py"&gt;typeit&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="py"&gt;social&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="py"&gt;disclaimer&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
    &lt;span class="nn"&gt;[params.home.posts]&lt;/span&gt;
      &lt;span class="py"&gt;enable&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="py"&gt;paginate&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;
      &lt;span class="py"&gt;defaultHiddenFromHomePage&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;

  &lt;span class="nn"&gt;[params.social]&lt;/span&gt;
    &lt;span class="py"&gt;GitHub&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://github.com/nicolamassarenti"&lt;/span&gt;
    &lt;span class="py"&gt;Linkedin&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://www.linkedin.com/in/nicola-massarenti/"&lt;/span&gt;
    &lt;span class="py"&gt;Telegram&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"@nicolamassarenti"&lt;/span&gt;
    &lt;span class="py"&gt;Medium&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://medium.com/@nicola-massarenti"&lt;/span&gt;
    &lt;span class="py"&gt;ORCID&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://orcid.org/0000-0002-8882-4252"&lt;/span&gt;
    &lt;span class="py"&gt;Email&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"nicola.massarenti@gmail.com"&lt;/span&gt;
    &lt;span class="py"&gt;RSS&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="c"&gt;# &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Setting up CI/CD
&lt;/h2&gt;

&lt;p&gt;Setting up the &lt;em&gt;CI/CD&lt;/em&gt; on GitHub is fast: you can automate your deployments by using the default action for &lt;code&gt;hugo&lt;/code&gt; applications. The &lt;code&gt;yml&lt;/code&gt; is provided by GitHub and is the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Sample workflow for building and deploying a Hugo site to GitHub Pages&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deploy Hugo site to Pages&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="c1"&gt;# Runs on pushes targeting the default branch&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;main"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;

  &lt;span class="c1"&gt;# Allows you to run this workflow manually from the Actions tab&lt;/span&gt;
  &lt;span class="na"&gt;workflow_dispatch&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

&lt;span class="c1"&gt;# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages&lt;/span&gt;
&lt;span class="na"&gt;permissions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;contents&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;read&lt;/span&gt;
  &lt;span class="na"&gt;pages&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;write&lt;/span&gt;
  &lt;span class="na"&gt;id-token&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;write&lt;/span&gt;

&lt;span class="c1"&gt;# Allow one concurrent deployment&lt;/span&gt;
&lt;span class="na"&gt;concurrency&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;group&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pages"&lt;/span&gt;
  &lt;span class="na"&gt;cancel-in-progress&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;

&lt;span class="c1"&gt;# Default to bash&lt;/span&gt;
&lt;span class="na"&gt;defaults&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;shell&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;bash&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="c1"&gt;# Build job&lt;/span&gt;
  &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;HUGO_VERSION&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;0.108.0&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Install Hugo CLI&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \&lt;/span&gt;
          &lt;span class="s"&gt;&amp;amp;&amp;amp; sudo dpkg -i ${{ runner.temp }}/hugo.deb&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Install Dart Sass Embedded&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;sudo snap install dart-sass-embedded&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Checkout&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v3&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;submodules&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;recursive&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Setup Pages&lt;/span&gt;
        &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;pages&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/configure-pages@v2&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Install Node.js dependencies&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[[&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;-f&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;package-lock.json&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;||&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;-f&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;npm-shrinkwrap.json&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;]]&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;npm&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;ci&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;||&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;true"&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Build with Hugo&lt;/span&gt;
        &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="c1"&gt;# For maximum backward compatibility with Hugo modules&lt;/span&gt;
          &lt;span class="na"&gt;HUGO_ENVIRONMENT&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;production&lt;/span&gt;
          &lt;span class="na"&gt;HUGO_ENV&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;production&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;hugo \&lt;/span&gt;
            &lt;span class="s"&gt;--minify \&lt;/span&gt;
            &lt;span class="s"&gt;--baseURL "${{ steps.pages.outputs.base_url }}/"&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Upload artifact&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/upload-pages-artifact@v1&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;./public&lt;/span&gt;

  &lt;span class="c1"&gt;# Deployment job&lt;/span&gt;
  &lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;github-pages&lt;/span&gt;
      &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ steps.deployment.outputs.page_url }}&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;needs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;build&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deploy to GitHub Pages&lt;/span&gt;
        &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;deployment&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/deploy-pages@v1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Setting up GitHub Pages and Google Domains
&lt;/h2&gt;

&lt;p&gt;First of all, you have to enable GitHub Pages for your profile by going to your &lt;em&gt;profile settings&lt;/em&gt; and enabling Pages. Then, you have to &lt;a href="https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site#configuring-an-apex-domain"&gt;configure an apex domain&lt;/a&gt;, add your desired custom domain and save the configurations.&lt;/p&gt;

&lt;p&gt;Now it's time to move to Google Domains and click on &lt;em&gt;Manage&lt;/em&gt; to the website you want to use as a custom domain.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8A1YDjx4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/nicolamassarenti/nicolamassarenti.github.io/main/content/blog/create-a-website-for-free-github-google-domains/domains-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8A1YDjx4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/nicolamassarenti/nicolamassarenti.github.io/main/content/blog/create-a-website-for-free-github-google-domains/domains-1.png" alt="" width="880" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, add the Host Name records as shown in the picture below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iNKVDBsb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/nicolamassarenti/nicolamassarenti.github.io/main/content/blog/create-a-website-for-free-github-google-domains/domains-2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iNKVDBsb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/nicolamassarenti/nicolamassarenti.github.io/main/content/blog/create-a-website-for-free-github-google-domains/domains-2.png" alt="" width="880" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusions
&lt;/h2&gt;

&lt;p&gt;The process of creating a website can be daunting, especially if you have limited time and knowledge of front-end technologies. However, as demonstrated in this post, it is possible to create a professional, blog-friendly website with minimal effort by using a framework for static websites such as Hugo and a suitable theme. By following the steps outlined in this post, you can have your own website up and running in no time and for free.&lt;/p&gt;

&lt;p&gt;I hope you found this post helpful and informative. If you have any questions or comments, please don't hesitate to leave them below or to reach out to me on my &lt;a href="https://www.linkedin.com/in/nicola-massarenti/?locale=en_US"&gt;LinkedIn account&lt;/a&gt;. I would love to hear from you.&lt;/p&gt;

</description>
      <category>github</category>
      <category>tutorial</category>
      <category>programming</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
