Theme Development
Remember JSON Resume is just a schema. Our method of theming is purely recommended if you wish to be compatibable with the official tooling and hosting.
Getting started
The basic philosophy is that you create a new NPM module that follows the naming convention of jsonresume-theme-{name}
The module should export a function called render
that takes a resume.json
The render
function should return a string
which is generally in the format of html
In its most basic form it should look like this
const render = (resume) => {
return '<h1>' + resume.basics.name + '</h1>'
}
export { render }
Considerations
- All assets and css has to be inline the output
- Gotta base64 encoding your images and other assets
- The
render
function should be pure, as in, it should have no side effects. Which means to say it shouldn't read or write from disk or the network. So do not importfs
orhttp
(or any modules that depend on those) into your theme. - Your theme is in control of the build process so do whatever you may there
- Feel free to share any opinions on this process in the repoistory
Examples
Here are some good example repositories to see how others have built themes
If there are any official themes you like, find their source and see if you can learn from them
Publishing / Hosting
If you want to add a theme to the official list, you need to publish an NPM module namedjsonresume-theme-{name}
. That module needs to export a function called `render` that takes a `resume.json` and returns a plain HTML string.