Once I took the decision to start my blog, I had to overcome any friction to publish content without complex setups. I had decided which authoring platform to work with, Obsidian. It was the time to choose a good static-site generator. After reading pro’s and con’s, I decided on Quartz.
This is how I made my blog’s initial set up.
Quartz
On the console, cloned the project by typing
git clone https://github.com/jackyzha0/quartz.gitBefore cd’ing the project directory, during a very lucid and inspired moment, I renamed it to the specially creative name my-blog
mv quartz my-blog
cd my-blogI followed the installation instructions, setting previously the desired node version (Quartz needs v20 at least)
nvm use 20
npm i
npx quartz createThe last command asks the user two questions for configuring the project. In my case, I chose the following options:
- Choose how to initialize the content in
./my-blog/content: Empty Quartz - Choose how Quartz should resolve links in your content: Treat links as shortest path
Obsidian
In this case, I simply started a new vault called my-blog and set the vault directory to my-blog/content. Time will tell if setting the content directory was a good or bad decision. My purpose was to avoid any distraction and show only the files I am interested in, for publishing, and nothing else.
Github
Creating new repository
I created a new repository on Github and named it my-blog, leaving the rest of all controls of options to their default state.
Setting up Github Pages
I accessed the Github Pages settings page, by following the menus
Settings>Pages
and switched the Build and deployment - Source selector to GitHub Actions.
Finally I downloaded and applied “the right” CICD patch file for building the content to their static-site appearance and deploying it to Github Pages platform
curl https://gist.githubusercontent.com/mtribal/795abd0acb4b0dbf4bdd226c4cd38157/raw/16e58cf07f0097217d43887067041025632f2849/deploy.yaml -o .github/workflows/deploy.yaml
git add .github/workflows/deploy.yamlDeploying
It was almost set! I needed only set the correct remote reference in the current repository and make my first deploy
git remote set-url origin git@github.com:mtribal/my-blog.git
npx quartz sync --no-pullAfter impatiently checking for no more than one minute the pipeline execution in Github Actions, the seed of my future blog was finally planted. Hooray!