Building CVs with Go and ConTeXt.
Find a file
Dan Anglin fa8dbe68e9
feat(BREAKING): limit shown employment history
Allow users to limit the amount of employment history shown in the PDF
document by specifying a time range. This is a breaking change as the
structure of the CV needs to slightly change. The employment's start and
end dates need to be represented as integers.

Additional refactoring:

- The CV type is now in the internal cv package.
- The template functions are now in the internal templateFuncs package.
2023-03-02 17:40:04 +00:00
docker chore: renamed project to spruce 2023-02-23 19:44:06 +00:00
example feat(BREAKING): limit shown employment history 2023-03-02 17:40:04 +00:00
internal feat(BREAKING): limit shown employment history 2023-03-02 17:40:04 +00:00
templates/tex feat(BREAKING): limit shown employment history 2023-03-02 17:40:04 +00:00
.dockerignore fix: update the Dockerfile 2023-02-21 08:30:31 +00:00
.gitignore chore: renamed project to spruce 2023-02-23 19:44:06 +00:00
.hadolint.yaml feat: new cv builder tool 2023-02-18 21:01:28 +00:00
go.mod feat(BREAKING): limit shown employment history 2023-03-02 17:40:04 +00:00
go.sum chore: go mod tidy 2023-02-19 07:42:25 +00:00
LICENSE feat: new cv builder tool 2023-02-18 21:01:28 +00:00
main.go feat(BREAKING): limit shown employment history 2023-03-02 17:40:04 +00:00
README.md feat(BREAKING): limit shown employment history 2023-03-02 17:40:04 +00:00

Spruce - A tool for building CVs

Overview

Spruce is a tool that generates a PDF document from a CV written in JSON. The PDF generation is completed in two steps:

  1. The application parses the JSON document and generates a TEX file using the TEX template files located in the templates directory.
  2. The application then uses ConTeXt to generate the final PDF document from the generated TEX file.

Dependencies

If you are interested in generating your own CV, then below is a list of dependencies that you'll need to install:

  • Go: Please go here to download the latest version of the Go programming language.
  • ConTeXt: You can go to the installation page to find out how to install ConTeXt for your Operating System.
  • The Carlito font (ttf-carlito): A free, metric compatible alternative to the Calibri.
    • For Ubuntu/Debian installation you can use apt:
      $ apt install font-crosextra-carlito
      
    • For Arch Linux you can use pacman:
      $ pacman -S ttf-carlito
      
    • Alternatively you can download the font from https://fontlibrary.org/en/font/carlito
    • Once this font is installed you'll need to update ConTeXt so it can find the font when generating the PDF:
      $ OSFONTDIR=/usr/share/fonts
      $ mtxrun --script fonts --reload
      

Generating the example PDF Document

You can generate a PDF from the example CV by running the following command:

$ go run . --input example/cv.json

This will create a file called cv.pdf which you can view in your favourite PDF viewer.

Inspirations

  • The Markdown Resume - This project uses ConTeXt and pandoc to convert Markdown based CVs into multiple formats including PDF, HTML and DOCX. This is where I discovered ConTeXt.
  • melkir/resume - This project generates CVs using Go and LaTeX.