Last Update: 2023-05-19 16:45:15 -0300

1. Introduction

This document explains how I build my résumé:

Its source code is available here:

2. Prerequisites

  1. Bash installed (version 5 or superior).

  2. asciidoctor installed (for HTML generation).

  3. asciidoctor-pdf installed (for PDF generation).

  4. w3m installed (for TXT generation).

  5. pandoc installed (for DOCX generation).

  6. serve installed (via npm install -g serve).

  7. Other required tools: git, zip, rsync, and tree.

3. Downloading and extracting the source code

$ curl https://paulojeronimo.com/cv/source-code.zip -o paulojeronimo-cv.zip
$ unzip paulojeronimo-cv.zip
$ cd cv

4. Developing it locally

4.1. Building and viewing the generated files

$ ENVIRONMENT=development ./build
$ ./build serve

4.2. Stoping the local web server

$ ./build serve stop

5. Generating all the static formats (HTML, TXT, PDF and DOCX)

$ ./build

Open en/index.html.

6. Building all the files for a specific language (en as a sample)

$ ./en/build

7. Listing the generated files

$ ./build show-results

8. Generate all the files required to publish

$ ./build
$ ./build publish

9. Publish all the generated files to GitHub Pages

$ ./build
$ ./build publish-to-gh-pages

10. Deleting the generated files

$ ./build clean

11. TODO (some ideas)

  1. Create a Linux Container to build the the development environment for this project.

  2. Separate the data and the presentation. This is an old demand that I now have to find find to implement. Today they are merged in the AsciiDocs.

    1. The data will be available in the JSON Resume format. But I don’t like to write JSON files! So, I will generate it from YAML or TOML files.

  3. Generate the AsciiDoc files. It will merge the JSON Resume data with templates I will create using Nunjucks and TypeScript.

  4. Use Artificial Intelligence APIs to translate my CV from English to other languages more quickly.