Skip to content
/ cv Public
forked from bamos/cv

My YAML-based cv and website generator.

License

Notifications You must be signed in to change notification settings

renan-souza/cv

 
 

Repository files navigation

About

Here you'll find the source code to automatically generate my CV and Webpage from YAML and BibTeX input.

This repo is the main one, but it is intended to work together with the website repo. So make sure you clone it as well and put it in the same parent directory of this repo. That is, the directory structure looks like this:

  • parent-dir
    • cv
    • renan-souza.github.io

The script generate.py reads from cv.yaml and publications and outputs LaTeX and Markdown by using Jinja templates.

Requirements

Installation

Ruby is used to generate the website and we use a Docker image to use the right Ruby (and dependencies) versions that work for this website.

  • Build the Docker image for the website:
cd cv
make web_build
cd cv
# Assuming you use conda
conda create -n cv python=3.8
conda activate cv
pip install -r requirements.txt

Building and Running

The Makefile contains the instructions to build both the pdf and the webpage. Take a look at it.

On Mac or Linux, make command will call generate.py to build the LaTeX documents with latexmk and biber. make will then generate the _config.yml of the Website repo and call the target web to start the server using Docker (docker run -p 4444:4444 -it website) so that the server will start at localhost:4444 (port is specified in the _config.yml).

What to modify

Change the content in cv.yaml. You should also look through the template files to make sure there isn't any special-case code that needs to be modified. The Makefile can also start a Jekyll server and push the new documents to another repository.

Warnings and further instructions

  1. Strings in cv.yaml should be LaTeX (though, the actual LaTeX formatting should be in the left in the templates as much as possible).
  2. If you do include any new LaTeX commands, make sure that one of the REPLACEMENTS in generate.py converts them properly.
  3. The LaTeX templates use modified Jinja delimiters to avoid overlaps with normal LaTeX. See generate.py for details.
  4. If you see errors like:
    Could not find unf_ext-0.0.7.7 in any of the sources
    Run `bundle install` to install missing gems.
    
    Or if you change the structure of the website like CSS styles, you might need to run make web_build to rebuild the Docker image for the website.

Publications

All publications are stored as BibTeX in publications. The entries can be obtained from Google Scholar.

BibTeX is built for integration with LaTeX, but producing Markdown is not traditionally done from BibTeX files. This repository uses BibtexParser to load the bibliography into a map. The data is manually formatted to mimic the LaTeX IEEE bibliography style.

Useful info and docs

The variables and code in the files under templates use Jinja2 whose syntax, for the variables, is similar to python.

The variables and code in the files under in the website's repo use Jekyll. This doc is handy if you need to manipulate variables in the Jekyll's template.

Licensing

This repo is a fork from Brandon Amos's repo for building CV and personal webpage. Based on Brandon's code, I have made several changes here to customize for my own template.

This work is distributed under the MIT license with portions copyright Brandon Amos and Ellis Michael. This work includes major refactorings done in and after the commit 685a7a7 which is compliant to the website repo's commit 8cd893a.

About

My YAML-based cv and website generator.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TeX 66.8%
  • Python 21.8%
  • PowerShell 6.2%
  • Makefile 3.0%
  • Batchfile 2.2%