Blog about blog

My personal brand of ease, blogging without maintenance

I've been blogging on and off now for the past 16 years in some form or capacity[1]. It has afforded me personal and professional opportunities and allowed a good platform to just vent or get my voice out there in cyberspace. I've never been consistent, but it's almost like things just build up and I have to write it out.

This past year has been the most difficult in my life, but I'm still here, thriving and enjoying all of the blessings that have come my way. I have a lot to say, and to talk about my past year is big on that list, but I'll save that for a later post.

I thought I'd write a quick post to talk about this blog and why I chose the technologies involved and why I think I'll keep up with writing more.

For the better part of the last 16 years I've self hosted my blog either on Livejournal, Xanga, Wordpress or Jekyll/Octopress. Through blogging I found linux, I found html, css, and finally javascript. It was my drive to self host and have ultimate control of my blog that led me to learn and tinker. So blogging, for me, has been not only an exercise in saying what's on my mind and releasing those thoughts, ideas, and inspirations, but also a playground for me to learn[2].

Fast-forward to now. My patience/time is very limited and maintenance of a website is something that will fall by the wayside if it's left to my own will. I used to own calvin.io, but I didn't renew and a domain squatter now owns that domain. No biggie, I say, but it definitely shows my lack of keeping up with simple things like that (renewing a domain name).

I really liked using Octopress which is a static site generator based on Jekyll, but after a while, my ruby environment kept breaking...and, of course, one thing that really is laborious, is keeping up with that sort of thing if I rarely write ruby apps these days.

Enter Ghost.

This awesome node-based blogging/content management platform is something I can definitely play with, but I don't want to maintain a deployment and use a server, and if I can help it, I'd love to just host my blog on github pages; I really did like the static file generation of Jekyll, but hated to change out themes or have to update my ruby environment...even with rvm, it felt like that's all I was doing, especially if I wanted to add a feature.

So it was after checking out this awesome list of static site generators that I found this relatively young project called ghost-render. Because it shared the name of the Ghost platform, I wanted to see what it generated.

Turns out its pretty freaking awesome!

All you need to basically do is

  1. globally install ghost-render via npm
    npm install -g ghost-render
  2. make your blog folder/repo
    mkdir myBlog
    cd myBlog
  3. clone a desireable, already made ghost site theme - mine:
    git clone git@github.com:daleanthony/uno.git
  4. Then, in the root of your blog folder, make a settings.json file, here's mine:
    {
    "blog": {
     "url": "http://calweb.github.io",
     "title": "Calvin Webster",
     "description": "My space for space",
     "logo": "https://avatars.githubusercontent.com/u/115030?v=3",
     "cover": "assets/images/coverArt.jpg",
     "social": {
       "twitter": "calweb",
       "github": "calweb",
       "linked": "calweb",
       "instagram": "calweb"
     },
     "google_analytics": "UA-8904260-8",
     "disqus_shortname": "calweb"
    },
    "authors": {
     "default": {
       "name": "Calvin Webster",
       "bio": "ordinary guy who is extraordinarily curious about our world. born in hawaii, military family, loves beach, nature, and people. Instructor @theironyard",
       "website": "http://calweb.github.io/author/calvin",
       "image": "https://avatars.githubusercontent.com/u/115030?v=3",
       "cover": "http://lorempixel.com/1100/425/animals/",
       "slug": "calvin"
     }
    }
    }
  5. you'll need to create the folder of your blog content, in markdown, with folders that signify the {year}/{month}/{day}/myPost.md. I made a small bash script to automate this when I want to create a new post, here:
  1. Then, once you're happy with your post(s), simply build out the static site using ghost-render with some flags, like this:
ghost-render --input ./_site/ --settings ./settings.json --theme ./uno --output ../calweb.github.io

To help break down what ^^ is doing

  • ghost-render is the utility to build the static site
  • --input ./_site/ is the flag for where are the markdown files are located, which are in my _site directory
  • --settings ./settings.json holds the main configuration for my Ghost-theme, like name, photos, social links
  • --theme ./uno is the unaltered theme I cloned from github. There are tons of ghost themes to choose from. (this is huge for me as I can just clone another theme and change the whole site)
  • --output ../calweb.github.io and finally where all of the static html files will live, with the appropriate file structure.

And there you have it, a blog is created and its merely a folder of static html/js/css files, but I have access to any existing ghost theme or I could make/modify my own. I dont have to login, manage deployments, maintain any environments other than the one I use all the time.

So....I guess this post got a little longer than I thought. But the basic reason I chose ghost-render is that its super simple to create posts, make files, push to github and done! I can spend more time in an editor, writing markdown. It's not perfect as I need to write scripts to help me do tasks like making new posts or building the site after some updates, but once I do that, it's pretty simple and I just have a static site i can publish.

Maybe this is a new beginning to more blogging!


[1] : Sol Net is the last remnant of my old digital footprint, but probably for the better ;) [2] : I am sitting here right now trying to add a markdown footnote, but can't so I'm looking into changing the Markdown Parser that has that feature in ghost-render called marked with markdown-it so that I can...but alas, its trying to call string methods on arrays of the md tokens and I should probably finish this post, instead of hacking around.

comments powered by Disqus