I've been creating websites for sometime now. However, I've never taken the time to create a website for myself. As a developer, I needed a very lightweight method to create content which didn't take up much time. Although I create numerous sites which CMS systems (e.g Wordpress, Silverstripe), I personally find the process of using them very lengthly. I tend to create content quickly using markdown files. In the end, I opted to build this blog using a static site generator - Jigsaw.
What is Jigsaw?
Jigsaw is a static site generator created by Tighten Co which bases it's template structure on Laravel Blade. It allows for the use markdown language, blade templates and/or other templating languages to create static sites which are compiled to create a full html website. Furthermore, it has pretty urls baked in to remove the .html extension from the URL.
Blade templates work similar to your standard template in a CMS, which provides comfort in the writing process. Once compiled, I simply push my blog changes up to a git repo which hooks to serve onto my server.
Jigsaw requires you to use the command line terminal. You will need to get familiar with the command line terminal to use jigsaw (and other important command line apps).
Via single requirement...
You can create a new jigsaw project once by running the following command (ignoring the $)
$ mkdir new-jigsaw-folder && cd new-jigsaw-folder $ composer require tightenco/jigsaw $ ./vendor/bin/jigsaw init
Then you will be able to compile your site using
$ ./vendor/bin/jigsaw build
Or, install jigsaw globally
Alternatively, If you would like to install jigsaw globally via composer, run the following command
$ composer require global tightenco/jigsaw
which then will allow you to run the following whenever you like (make sure ~/.composer/vendor/bin is in your $PATH)
$ jigsaw init
and build using
$ jigsaw build
bootstrap.php config.php gulpfile.js package.json source tasks
All content for the website is kept within the source folder (templates, css, images).
Jigsaw comes with files need for gulp straight out the gate, so running npm install or yarn will install the node_modules required. To compile the site, you simply need to run:
This will compile the file to a
.build_local by default (which can be changed if required). My method is to publish to
public once completed, and point my domain to view the pubic folder on my server. This means pushing my git repo with draft content won't show on the live site.
I won't go into too much detail with the rest of the process as the docs of Jigsaw are very helpful.
Hopefully you find this useful. Thanks for reading and welcome to the blog!