Skip to content

My CV in JSON format, generated with HTML template

Notifications You must be signed in to change notification settings

alifeee/json-resume

Repository files navigation

CV

My CV in JSON format based on https://jsonresume.org/.

Preview of CV online

Where does it end up?

  1. On cv.alfierenn.dev
  2. On the json-resume registry (via the gist)
  3. PDF on the releases page or website

Changing the theme

The current theme is held within the ./theme folder. You can also use online themes.

A list of themes can be found at https://jsonresume.org/themes/. You can try them by visiting the JSON resume registry. The theme can be changed via the theme query parameter, e.g.:

https://registry.jsonresume.org/alifeee?theme=even

Development

Install dependencies

bun install

(in a separate folder) to install Chrome with Puppeteer (does not install with Bun)

npm install puppeteer

Test & spellcheck

bun run test

Build HTML

bun run build-html

Build PDF

bun run build-pdf

Develop HTML with hot reload

Hot reload is on any files imported, which are template.txt and cv.json (see build.html.ts). The template is a .txt only as this can be imported into Bun natively, whereas other extensions require some typescript magic to be imported.

Note that hot reload does not work with Windows files. The repository must exist on a Linux filesystem.

To do this on Windows, open \\wsl.localhost\Ubuntu\home\<user> with Explorer and open VSCode via the context menu. WSL can be used via the console window. This way, hot reload works in Bun.

Using it like this, sometimes VSCode's file explorer does not refresh properly.

HTML

bun run dev

PDF

Note: you still must manually refresh the opened PDF after it rebuilds. This is notably less hot than live-developing the HTML, but still quite fast.

bun run dev-pdf

GitHub Actions

See the files themselves for more details.

Action Description
test.yml Runs on pull request and push to main. Verifies that the resume.json conforms to the json-resume schema, JS tests pass, and runs spellcheck
publish.yml Runs on release (or tag). Builds the HTML and PDF, then pushes to: releases page; and publish branch (viewable on my GitHub pages).
gist.yml Runs on release (or tag). Updates the resume gist if resume.json has changed.