This blog is an attempt to keep track of and organize a variety of my personal projects. I'm hoping that by starting this blog it will encourage me to finish what I actually start! This blog is the first on my list.
A few of the things on my list:
- Ghost/Github Blog
- Deck of Cards API vanilla node app
- Record Cataloger Meteor App
- Meteor 1000 Books by Kindergarten Meteor App
- Sudoku Solver
- Freeflow Solver
- Crafty Spending App with Charlestronauts
How was this blog built?
This blog was built using ghost-render.
Using github's pages to render the final blog, locally I am writing these posts
in markdown, which is ideal. It was rather tricky to set up however. There were
a couple unintuitive things I needed to do in order to get the repo working perfectly.
I will try and review the process I went through. Some steps may be basic, but
it will be best to be thorough for all audiences. (that's being optimistic!)
Step 1: Create username repo
Since I wanted to host the blog with github, this step was the easiest. Creating
a repo called username
.github.io will automatically created a hosted static website
to display your website.
Step 2: Setting up the local environment
git clone <username.github.io repo>
cd <username.github.io repo>
Once inside this repo follow the instructions for ghost-render.
I decided to do the entire process within a folder called chris_potter_blog/ in the repo.
I will recount them here for good measure.
npm install -g ghost-render
ghost-render --init > settings.json
Themes
I decided the theme(s) should be organized into their own folder for cleanliness. I decided to try and jump between themes for testing. Each theme I decided to fork into my personal repo so that I could make changes and commit those changes to my own theme.
Build process
I decided to write my own bash script to compile my blog. Creating the script is simple:
touch compile
chmod +x compile
within that file I added the following code:
#!/bin/bash
ghost-render --input ./blog/ --settings ./settings.json --theme ./themes/Swaggy-Bastard --output ./rendering
running sh compile
within the chris_potter_blog folder will create the rendering/
folder with the contents of the blog. Once this is complete, from the base folder
of the repo, run
ln -s chris_potter_blog/rendering/* .
touch .nojekyll
I decided to symlink the information in the rendering folder to try and keep the repo relatively clean and tidy for the build process. If you feel this is overkill, then don't do it!
The final issue lies with the themes repos declared under the themes folder. Git
considers these sub-repos of the blog. So I needed to touch .gitmodules
and within
that file have:
[submodule "chris_potter_blog/themes/Swaggy-Bastard"]
path = chris_potter_blog/themes/Swaggy-Bastard
url = https://github.com/cpotter/Swaggy-Bastard.git