Boilerplate theme
This is the boilerplate theme for JSON Resume.
Getting started
To get started with theme development, this is what you'll need:
If you're on Linux, you can simply run:
sudo apt-get install nodejs-legacy npm
Or if you're on OSX and got Homebrew installed:
brew install node
Install the command line
We're going to use the official kcv-cli to run our development server.
Go ahead and install it:
sudo npm install -g kcv-cli
Download theme
Lets go ahead and download a copy of the repository.
Install npm packages
We need to install the dependencies. cd
into the theme folder we just downloaded and run:
sudo npm install
This will read the local package.json
and install the packages listed under dependencies
.
Serve theme
While inside the theme folder, simply run:
kcv serve
You should now see this message:
Preview: http://localhost:4000
Press ctrl-c to stop
Development
Overview
Now that you have your boilerplate theme installed, go through a quick overview of each of the files needed for your JSONResume theme:
-
package.json
: Your package.json is required by all npm packages. Everytime you want to release a new update of your theme, you'll need to update it's version number. -
index.js
: This is the file that will return the needed HTML to the theme server. You can use it to process some things with your theme first, but we'll talk about that a bit later. -
resume.hbs
: This is your actual template. This file is sent to theindex.js
for it to send to the theme server. -
style.css
: This is where all the CSS of your project goes. Since theindex.js
only returns HTML, the contents of this file are put between<style>
tags in yourresume.hbs
file.
In order to get values from an actual JSONResume, you'll need to use a templating system, such as Mustache or Handlebars. The default boilerplate theme uses Handlebars.
index.js
The index.js
is where all the compiliing of your theme, and neccessary edits will go.
At the top, you can already see the Node.js require
function being used with the dependencies. You can obviously add own dependencies, if you are planning on using a different templating system, you can remove it.
The most important part of index.js
is the render
function. This is where all the compilation goes. This render function is expected to take a resume object (from a resume.json
), and should return HTML. In this case, it is returning a compiled Handlebars document. If you removed the Handlebars dependency, you'll want to remove it and replace it with your own templating system compilation.
Above the return
line are css and template variables. Using the Node.js fs
module, it reads first the style.css
and the resume.hbs
.
Deployment
If you are familar with NPM, you should be done with this in no time.
If you already have an NPM account, you can run npm login
and enter your username and password. If not, you can run npm adduser
and fill in the proper fields.
If you changed the dependencies or added new ones, you'll want to run npm install
again, and just to make sure, run npm update
to get the latest version of each dependency.
When you are done with that, you may go into your package.json, and edit the version number. When all of the above is finished, you may run npm publish
to release your theme to the public. Now everyone can use your theme with their resume.
When updating your theme, you'll need to change the version number and run npm publish
again.
License
Available under the MIT license.