Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/timsainb/curriculum_vitae

My Curriculum Vitae, generated in Python via Jinja from JSON fields into HTML. http://timsainburg.com/pages/cv.html
https://github.com/timsainb/curriculum_vitae

Last synced: about 1 month ago
JSON representation

My Curriculum Vitae, generated in Python via Jinja from JSON fields into HTML. http://timsainburg.com/pages/cv.html

Awesome Lists containing this project

README

        

### Tim Sainburg Curriculum Vitae
This repo makes an HTML Curriculum Vitae (CV) from a set of json files. It is [based on Colin Raffel's CV](https://github.com/craffel/craffel.github.io)

## Usage
If all you want to do is generate an HTML file, just run `python3 generate.py`. It will look inside of templates, and generate HTML using Jinja from those templates and the related JSON files (inside of data).

For my own specific uses, I created a Makefile, that will need to be re-created specifically for your use case. That file is just used to do things like git push the updated CV repo, copy files over to my websites repo, build that repo, and push it it github. To run the makefile, just run `make buildwebsite` or another make command.

### Quick explanation

Data is stored in a JSON, like this:
```
{"research":
[

{
"Organization": "University of California, San Diego",
"lab": "Auditory Neurscience Laboratory",
"location": "La Jolla, CA",
"advisor": "Timothy Q Gentner",
"start": "2015",
"end": "now",
"title": "PhD Student"
}
]
}
```

The `.tpl` Jinja template for the HTML output, is generated using the JSON data, like this:

```


Tim Sainburg: Curriculum Vitae


Education



{% for item in education %}

{{item.start}}–{{item.end}}


{{item.place}}

{{item.degree}}

{% if item.lab %}{{item.lab}}
{% endif %}
{% if item.advisor %}Advisor: {{item.advisor}}
{% endif %}


{% endfor %}

```

This is all orchestrated by the `generate.py` script, which just finds all of the json files, loads them up, generates the HTML from .tpl, and writes it to a file:

```
env = jinja2.environment.Environment(
loader=jinja2.FileSystemLoader('/MY/TEMPLATE/PATH')
)
template = env.get_template('MYTEMPLATE.TPL')
with open('/MY/OUTPUT/PATH/MYTEMPLATE.HTML', "w") as f:
f.write(template.render(**data))
```