-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
268 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/.idea |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# SimpleCV | ||
SimpleCV is simple and elegant CV template written in [Typst](https://typst.app/) | ||
aimed at (but not limited to!) people with an engineering background. The template was | ||
inspired by two Latex CV templates([[1]](https://www.overleaf.com/latex/templates/autocv/scfvqfpxncwb), | ||
[[2]](https://www.overleaf.com/latex/templates/faangpath-simple-template/npsfpdqnxmbc)). | ||
Feel free to create open an issue if you have any questions or notice some error. | ||
|
||
# Usage | ||
Create a new Typst project and copy the whole content of the `source` directory | ||
into the project. Change the contents of the `main.typ` file according to your own needs. This should be it. | ||
You can find an example of what the CV looks like in `example.pdf`. | ||
|
||
# License | ||
The project itself is available under the MIT license. The icons are | ||
from FontAwesome and subject their [their license agreement](https://github.com/FortAwesome/Font-Awesome/blob/6.x/LICENSE.txt). |
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
#import template, education_entry, work_entry, skill_entry from "simplecv.typ" | ||
|
||
// Change the margins of the cv. | ||
#set page(margin: (x: 1.5cm, y: 0.5cm)) | ||
|
||
// Change the overall text size of the cv. Might be useful if you want to add/remove content so that everything still stays on one page. | ||
#set text(12pt) | ||
|
||
// Change the font of the cv. | ||
#set text("Linux Libertine") | ||
|
||
// Change the theme color of the cv. | ||
#let color = blue | ||
|
||
// Change to your name. | ||
#let name = "John Doe" | ||
|
||
// Change the shown contact data. You can also change the order of the elements so that they will show up in a different order. Currently, only these five elements are available with icons, but you can add new ones by editing the template. | ||
#let contact_data = ( | ||
( | ||
"service": "linkedin", | ||
"display": "John Doe", | ||
"link": "https://www.linkedin.com/in/JohnDoe" | ||
), | ||
( | ||
"service": "email", | ||
"display": "[email protected]", | ||
"link": "mailto://[email protected]" | ||
), | ||
( | ||
"service": "phone", | ||
"display": "+1 123 456 789", | ||
"link": "tel:+1 123 456 789" | ||
), | ||
( | ||
"service": "github", | ||
"display": "JohnDoe", | ||
"link": "https://github.com/JohnDoe" | ||
), | ||
( | ||
"service": "website", | ||
"display": "mywebsite.com", | ||
"link": "https://mywebsite.com" | ||
) | ||
) | ||
|
||
// Leave this unchanged. This puts the name and contact data in the right spot. | ||
#show doc => template(name, contact_data, color, doc) | ||
|
||
// Starting from here, you can add as much content as you want. This represents the main content of the cv. | ||
= Education | ||
#education_entry("Computer Science", "ETH Zürich", | ||
degree_title: "MSc.", start_date: "Sep 2016", end_date: "Jul 2018", | ||
description: lorem(9), location: "Munich, Germany") | ||
|
||
#education_entry("Computer Science", "Stanford University", | ||
degree_title: "BSc.", start_date: "Sep 2012", end_date: "Jul 2016", | ||
description: lorem(12), location: "California, USA") | ||
|
||
= Experience | ||
#work_entry("Senior Software Engineer", "Microsoft", start_date: "Since Nov 2021", tasks: ( | ||
lorem(7), | ||
lorem(13), | ||
lorem(9) | ||
), | ||
location: "Seattle, USA") | ||
|
||
#work_entry("Senior Software Engineer", "Apple", start_date: "Jan 2020", end_date: "Oct 2021", tasks: ( | ||
lorem(4), | ||
lorem(6), | ||
lorem(14) | ||
), | ||
location: "California, USA") | ||
|
||
#work_entry("Junior Software Engineer", "Google", start_date: "Oct 2018", end_date: "Nov 2019", tasks: ( | ||
lorem(8), | ||
lorem(12), | ||
lorem(3) | ||
), | ||
location: "Zurich, Switzerland") | ||
|
||
= Projects | ||
*Project 1*. #lorem(40) | ||
|
||
*Project 2*. #lorem(32) | ||
|
||
*Project 3*. #lorem(40) | ||
|
||
= Skills | ||
// Ratings won't be displayed in this template. | ||
#skill_entry("Technologies", | ||
( | ||
("name": "Git", "rating": 3), | ||
("name": "C++", "rating": 2), | ||
("name": "Python", "rating": 5), | ||
("name": "Typst", "rating": 3), | ||
("name": "JavaScript", "rating": 4), | ||
("name": "Vue.js", "rating": 4), | ||
) | ||
) | ||
|
||
#skill_entry("Languages", | ||
( | ||
("name": "English", "rating": 5), | ||
("name": "German", "rating": 5), | ||
("name": "Spanish", "rating": 3), | ||
("name": "Japanese", "rating": 2), | ||
) | ||
) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
// Based on https://www.overleaf.com/latex/templates/autocv/scfvqfpxncwb and https://www.overleaf.com/latex/templates/faangpath-simple-template/npsfpdqnxmbc | ||
|
||
#set list(indent: 1em) | ||
// Reduce space between paragraphs. | ||
#let par_space = 0.5em | ||
// Reduce space between headings and descriptions. | ||
#let sep_space = par_space + 0.2em | ||
|
||
// Format start and end dates. | ||
#let format_date(start_date: none, end_date: none) = { | ||
let date = { | ||
if end_date == none { | ||
start_date | ||
} else if start_date == none { | ||
end_date | ||
} else { | ||
start_date + " - " + end_date | ||
} | ||
} | ||
|
||
[*#date*] | ||
} | ||
|
||
// Format locations. | ||
#let format_location(location) = { | ||
[_#block(above: sep_space, location)_] | ||
} | ||
|
||
// General entry that is split into a left and right half (for experience and education). | ||
#let cv_entry(left_content: none, right_content: none) = { | ||
grid( | ||
columns: (11fr, 6fr), | ||
column-gutter: 1cm, | ||
{ | ||
set align(left) | ||
left_content | ||
}, | ||
{ | ||
set align(right) | ||
right_content | ||
} | ||
) | ||
} | ||
|
||
// Entry for education. | ||
#let education_entry(degree, university, degree_title: none, description: none, start_date: none, end_date: none, location: none) = { | ||
cv_entry( | ||
left_content: { | ||
if degree_title != none { | ||
[*#degree_title*] + " " | ||
} + [*#degree*] + [ (#university)] + block(above: sep_space, par[#description]) | ||
}, | ||
right_content: { | ||
format_date(start_date: start_date, end_date: end_date) | ||
|
||
if location != none { | ||
"\n" + format_location(location) | ||
} | ||
} | ||
) | ||
} | ||
|
||
// Entry for work. | ||
#let work_entry(role, company, tasks: none, start_date: none, end_date: none, location: none) = { | ||
cv_entry( | ||
left_content: { | ||
[*#role*] + "\n" + block(above: sep_space, text[#company]) | ||
|
||
if tasks != none { | ||
let tasks_list = [] | ||
|
||
for task in tasks { | ||
tasks_list += [- #task] | ||
} | ||
|
||
tasks_list | ||
} | ||
}, | ||
right_content: { | ||
format_date(start_date: start_date, end_date: end_date) | ||
|
||
if location != none { | ||
"\n" + format_location(location) | ||
} | ||
} | ||
) | ||
} | ||
|
||
// Entry for skills | ||
#let skill_entry(category, skills) = { | ||
[== #category] | ||
|
||
let cell = rect.with(radius: 5pt, inset: 4pt) | ||
let boxes = for skill in skills {(cell(skill.name),)} | ||
|
||
{boxes.join(" ")} | ||
} | ||
|
||
// Set name and contact data and format headings | ||
#let template(name, contact_data, color, doc) = { | ||
set par(justify: true, leading: par_space) | ||
align(center)[ | ||
#smallcaps(text(size: 2.5em, fill: color)[#name]) \ | ||
|
||
{ | ||
if contact_data != none and contact_data.len() > 0 { | ||
let elements = for el in contact_data { | ||
(link(el.link)[{box(image(height: 0.7em, el.service + ".svg")) + " " + el.display}],) | ||
} | ||
elements.join(" | ") | ||
} | ||
} | ||
] | ||
|
||
show heading.where(level: 1): i => { | ||
set align(left) | ||
let title = smallcaps(i.title) | ||
|
||
set block(above: 1em) | ||
set text(weight: "light", size: 1.2em, fill: color) | ||
stack( | ||
dir: ttb, | ||
spacing: 2mm, | ||
[{title}], | ||
line(length: 100%, stroke: color) | ||
) | ||
} | ||
|
||
show heading.where(level: 2): i => { | ||
set align(left) | ||
let title = smallcaps(i.title) | ||
set block(above: 0.8em) | ||
set text(weight: "light", size: 1.1em, fill: color) | ||
[{i.title}] | ||
} | ||
|
||
doc | ||
} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.