16 Commits

Author SHA1 Message Date
Paul T
1709d6458d docs: add blurb in README about docs 2024-04-01 07:25:35 -07:00
Paul T
0d70af373b chore: update to checkout@v4 2024-04-01 07:25:35 -07:00
Paul T
5f91afd694 ci: fix output file name 2024-04-01 07:25:35 -07:00
Paul T
a0e579493a ci: fix package spelling 2024-04-01 07:25:35 -07:00
Paul T
15a6288165 ci: install needed fonts 2024-04-01 07:25:35 -07:00
Paul T
0dbf348b2b ci: set up initial script
Add CI to build documentation with each push
2024-04-01 07:25:35 -07:00
Paul T
311bf4fcc5 chore: minor README update 2024-04-01 06:26:47 -07:00
Paul T
c706d87704 feat(template): update resume and coverletter template
Updated template based on feedback from Lemmy and else where. Changes coloring scheme as well as some of the font/font weight and style used. Overall, this makes everything a lot more readable and easier to scan at a glance.
2024-04-01 06:26:47 -07:00
Paul T
803aea96cd chore: move image locations in repo 2024-04-01 06:26:47 -07:00
Paul T
48fc43779e build: add script to generate preview images 2024-04-01 06:26:47 -07:00
Paul T
d4ba30d3f2 chore: read version from toml when installing package locally
Updated script to read the package version from the toml file
2024-04-01 06:26:47 -07:00
Brandon Hu
6330bded37 fix(typos): replaced _ with - 2024-03-29 19:34:42 -07:00
Paul T
d73acd5dea chore: add funding.yml 2024-03-28 11:35:22 -04:00
Paul T
009adbe248 docs: update readme docs and reorganize images
Moved images to central folder and updated usage docs in the README
2024-03-28 08:31:48 -04:00
Paul T
bde0b7120c docs: update build/usage documentation
Resolves #2
2024-03-27 20:25:24 -04:00
Paul Tsouchlos
4f43e0b2b3 docs: fix formatting issue in README 2024-03-26 09:17:01 -07:00
14 changed files with 100 additions and 47 deletions

3
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,3 @@
# Thanks for any donations! :)
github: DeveloperPaul123

View File

@@ -0,0 +1,21 @@
name: Build documentation
on: [push, workflow_dispatch]
jobs:
build_pdf:
runs-on: ubuntu-latest
steps:
- name: Set up Git repository
uses: actions/checkout@v4
- name: Install fonts
run: sudo apt-get install fonts-font-awesome fonts-roboto texlive-fonts-recommended texlive-fonts-extra
- name: Typst
uses: yusancky/setup-typst@v2
id: setup-typst
with:
version: 'v0.11.0'
- run: typst compile modern-cv-docs.typ
- name: Upload PDF file
uses: actions/upload-artifact@v3
with:
name: modern-cv-docs
path: modern-cv-docs.pdf

View File

@@ -3,6 +3,7 @@
[![say thanks](https://img.shields.io/badge/Say%20Thanks-👍-1EAEDB.svg)](https://github.com/DeveloperPaul123/modern-cv/stargazers) [![say thanks](https://img.shields.io/badge/Say%20Thanks-👍-1EAEDB.svg)](https://github.com/DeveloperPaul123/modern-cv/stargazers)
[![Discord](https://img.shields.io/discord/652515194572111872?logo=Discord)](https://discord.gg/CX2ybByRnt) [![Discord](https://img.shields.io/discord/652515194572111872?logo=Discord)](https://discord.gg/CX2ybByRnt)
![Release](https://img.shields.io/github/v/release/DeveloperPaul123/modern-cv) ![Release](https://img.shields.io/github/v/release/DeveloperPaul123/modern-cv)
[![Build documentation](https://github.com/DeveloperPaul123/modern-cv/actions/workflows/build-documentation.yml/badge.svg)](https://github.com/DeveloperPaul123/modern-cv/actions/workflows/build-documentation.yml)
A port of the [Awesome-CV](https://github.com/posquit0/Awesome-CV) Latex resume template in [typst](https://github.com/typst/typst). A port of the [Awesome-CV](https://github.com/posquit0/Awesome-CV) Latex resume template in [typst](https://github.com/typst/typst).
@@ -13,7 +14,11 @@ You will need the `Roboto` and `Source Sans Pro` fonts installed on your system
- [Roboto](https://fonts.google.com/specimen/Roboto) - [Roboto](https://fonts.google.com/specimen/Roboto)
- [Source Sans Pro](https://github.com/adobe-fonts/source-sans-pro) - [Source Sans Pro](https://github.com/adobe-fonts/source-sans-pro)
This template also uses FontAwesome icons via the [`fontawesome`](https://typst.app/universe/package/fontawesome) package. This template also uses FontAwesome icons via the [fontawesome](https://typst.app/universe/package/fontawesome) package. You will need to install the fontawesome fonts on your system or configure the `typst` web app to use them. You can download fontawesome [here](https://fontawesome.com/download).
To use the fontawesome icons in the web app, add a `fonts` folder to your project and upload the `otf` files from the fontawesome download to this folder like so:
![alt text](assets/images/typst_web_editor.png)
See `typst fonts --help` for more information on configuring fonts for `typst` that are not installed on your system. See `typst fonts --help` for more information on configuring fonts for `typst` that are not installed on your system.
@@ -43,22 +48,32 @@ Below is a basic example for a simple resume:
= Education = Education
#resume_entry( #resume-entry(
title: "Example University", title: "Example University",
location: "B.S. in Computer Science", location: "B.S. in Computer Science",
date: "August 2014 - May 2019", date: "August 2014 - May 2019",
description: "Example" description: "Example"
) )
#resume_item[ #resume-item[
- #lorem(20) - #lorem(20)
- #lorem(15) - #lorem(15)
- #lorem(25) - #lorem(25)
] ]
``` ```
After saving to a `*.typ` file, compile your resume using the following command:
```bash
typst compile resume.typ
```
For more information on how to use and compile `typst` files, see the [official documentation](https://typst.app/docs).
Documentation for this template is published with each commit. See the attached PDF on each Github Action run [here](https://github.com/DeveloperPaul123/modern-cv/actions).
### Output ### Output
| | | | | |
| --- | --- | | --- | --- |
| ![Resume](resume.png) | ![Coverletter](coverletter.png) | | ![Resume](assets/images/resume.png) | ![Cover Letter](assets/images/coverletter.png) |

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

BIN
assets/images/resume.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 402 KiB

27
lib.typ
View File

@@ -1,10 +1,10 @@
#import "@preview/fontawesome:0.1.0": * #import "@preview/fontawesome:0.1.0": *
// const color // const color
#let color-darknight = rgb("131A28") #let color-darknight = rgb("#131A28")
#let color-darkgray = rgb("414141") #let color-darkgray = rgb("#333333")
#let color-gray = rgb("5d5d5d") #let color-gray = rgb("#5d5d5d")
#let default-accent-color = rgb("333ECC") #let default-accent-color = rgb("#262F99")
// const icons // const icons
#let linkedin-icon = box(fa-icon("linkedin", fa-set: "Brands", fill: color-darknight)) #let linkedin-icon = box(fa-icon("linkedin", fa-set: "Brands", fill: color-darknight))
@@ -64,14 +64,14 @@
/// - body (content): The body of the right header /// - body (content): The body of the right header
/// - accent_color (color): The accent color to color the text with. This defaults to the default-accent-color /// - accent_color (color): The accent color to color the text with. This defaults to the default-accent-color
#let secondary-right-header(body, accent_color: default-accent-color) = { #let secondary-right-header(body, accent_color: default-accent-color) = {
set text(accent_color, size: 11pt, style: "italic", weight: "light") set text(size: 11pt, weight: "medium")
body body
} }
/// Right section of a tertiaty headers. /// Right section of a tertiaty headers.
/// - body (content): The body of the right header /// - body (content): The body of the right header
#let tertiary-right-header(body) = { #let tertiary-right-header(body) = {
set text(weight: "light", style: "italic", size: 9pt) set text(weight: "light", size: 9pt)
body body
} }
@@ -110,12 +110,14 @@
/// - author (content): Structure that takes in all the author's information /// - author (content): Structure that takes in all the author's information
/// - date (string): The date the resume was created /// - date (string): The date the resume was created
/// - accent_color (color): The accent color of the resume /// - accent_color (color): The accent color of the resume
/// - colored_headers (boolean): Whether the headers should be colored or not
/// - body (content): The body of the resume /// - body (content): The body of the resume
/// -> none /// -> none
#let resume( #let resume(
author: (:), author: (:),
date: datetime.today().display("[month repr:long] [day], [year]"), date: datetime.today().display("[month repr:long] [day], [year]"),
accent_color: default-accent-color, accent_color: default-accent-color,
colored_headers : true,
body) = { body) = {
set document( set document(
author: author.firstname + " " + author.lastname, author: author.firstname + " " + author.lastname,
@@ -168,7 +170,8 @@
) )
#align(left)[ #align(left)[
#text[#strong[#text(accent_color)[#it.body.text.slice(0, 3)]]]#strong[#text[#it.body.text.slice(3)]] #let color = if colored_headers { accent_color } else { color-darkgray }
#text[#strong[#text(color)[#it.body.text]]]
#box(width: 1fr, line(length: 100%)) #box(width: 1fr, line(length: 100%))
] ]
] ]
@@ -213,8 +216,7 @@
let address = { let address = {
set text( set text(
size: 9pt, size: 9pt,
weight: "bold", weight: "bold"
style: "italic",
) )
align(center)[ align(center)[
#author.address #author.address
@@ -259,7 +261,7 @@
/// This formats the item for the resume entries. Typically your body would be a bullet list of items. Could be your responsibilities at a company or your academic achievements in an educational background section. /// This formats the item for the resume entries. Typically your body would be a bullet list of items. Could be your responsibilities at a company or your academic achievements in an educational background section.
/// - body (content): The body of the resume entry /// - body (content): The body of the resume entry
#let resume-item(body) = { #let resume-item(body) = {
set text(size: 10pt, style: "normal", weight: "light") set text(size: 10pt, style: "normal", weight: "light", fill: color-darknight)
set par(leading: 0.65em) set par(leading: 0.65em)
body body
} }
@@ -390,7 +392,7 @@
) )
#align(left)[ #align(left)[
#text[#strong[#text(accent_color)[#it.body.text.slice(0, 3)]]]#strong[#text[#it.body.text.slice(3)]] #text[#strong[#text(accent_color)[#it.body.text]]]
#box(width: 1fr, line(length: 100%)) #box(width: 1fr, line(length: 100%))
] ]
] ]
@@ -425,8 +427,7 @@
let address = { let address = {
set text( set text(
size: 9pt, size: 9pt,
weight: "regular", weight: "bold",
style: "italic",
fill: color-gray fill: color-gray
) )
align(right)[ align(right)[

Binary file not shown.

Before

Width:  |  Height:  |  Size: 420 KiB

View File

@@ -1,3 +1,10 @@
# requires the PSToml cmdlet to be installed
# https://github.com/jborean93/PSToml?tab=readme-ov-file
# Install-Module -Name PSToml -Scope AllUsers
$typst_toml = ConvertFrom-Toml (Get-Content "$PSScriptRoot/../typst.toml" -Raw)
Write-Host 'Package version: ' $typst_toml.package.version
$Source = "$PSScriptRoot/../*" $Source = "$PSScriptRoot/../*"
$Destination = "$env:LOCALAPPDATA/typst/packages/local/modern-cv/0.1.0" $Destination = "$env:LOCALAPPDATA/typst/packages/local/modern-cv/$($typst_toml.package.version)"
New-Item -ItemType Directory -Path $Destination -Force
Copy-Item -Path $Source -Destination $Destination -Recurse -Force Copy-Item -Path $Source -Destination $Destination -Recurse -Force

View File

@@ -0,0 +1,4 @@
typst compile -f png $PSScriptRoot/../template/resume.typ $PSScriptRoot/../assets/images/resume.png
typst compile -f png $PSScriptRoot/../template/coverletter.typ $PSScriptRoot/../assets/images/coverletter.png
oxipng.exe $PSScriptRoot/../assets/images/*

View File

@@ -1,4 +1,4 @@
#import "@preview/modern-cv:0.1.0":* #import "@preview/modern-cv:0.2.0":*
#show: coverletter.with( #show: coverletter.with(
author: ( author: (

View File

@@ -1,4 +1,4 @@
#import "@preview/modern-cv:0.1.0": * #import "@preview/modern-cv:0.2.0": *
#show: resume.with( #show: resume.with(
author: ( author: (
@@ -11,34 +11,21 @@
address: "111 Example St. Example City, EX 11111", address: "111 Example St. Example City, EX 11111",
positions: ( positions: (
"Software Engineer", "Software Engineer",
"Software Architect" "Software Architect",
"Developer"
) )
), ),
date: datetime.today().display() date: datetime.today().display(),
colored_headers: true
) )
= Education
#resume-entry(
title: "Example University",
location: "B.S. in Computer Science",
date: "August 2014 - May 2019",
description: "Example"
)
#resume-item[
- #lorem(20)
- #lorem(15)
- #lorem(25)
]
= Experience = Experience
#resume-entry( #resume-entry(
title: "Example, Inc.", title: "Senior Software Engineer",
location: "Example City, EX", location: "Example City, EX",
date: "2019 - Present", date: "2019 - Present",
description: "Senior Software Engineer" description: "Example, Inc."
) )
#resume-item[ #resume-item[
@@ -48,10 +35,10 @@
] ]
#resume-entry( #resume-entry(
title: "Previous Company, Inc.", title: "Software Engineer",
location: "Example City, EX", location: "Example City, EX",
date: "2011 - 2019", date: "2011 - 2019",
description: "Software Engineer" description: "Previous Company, Inc."
) )
#resume-item[ #resume-item[
@@ -88,6 +75,21 @@
= Skills = Skills
#resume-skill-item("Programming Languages", (strong("C++"), "Python", "Java", "C#", "JavaScript", "TypeScript")) #resume-skill-item("Languages", (strong("C++"), strong("Python"), "Java", "C#", "JavaScript", "TypeScript"))
#resume-skill-item("Spoken Languages", (strong("English"), "Spanish")) #resume-skill-item("Spoken Languages", (strong("English"), "Spanish"))
#resume-skill-item("Programs", (strong("Excel"),"Word")) #resume-skill-item("Programs", (strong("Excel"),"Word", "Powerpoint", "Visual Studio"))
= Education
#resume-entry(
title: "Example University",
location: "Example City, EX",
date: "August 2014 - May 2019",
description: "B.S. in Computer Science"
)
#resume-item[
- #lorem(20)
- #lorem(15)
- #lorem(25)
]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "modern-cv" name = "modern-cv"
version = "0.1.0" version = "0.2.0"
compiler = "0.11.0" compiler = "0.11.0"
entrypoint = "lib.typ" entrypoint = "lib.typ"
authors = ["Paul Tsouchlos <https://github.com/DeveloperPaul123>"] authors = ["Paul Tsouchlos <https://github.com/DeveloperPaul123>"]
@@ -16,4 +16,4 @@ repository = "https://github.com/DeveloperPaul123/modern-cv"
[template] [template]
path = "template" path = "template"
entrypoint = "resume.typ" entrypoint = "resume.typ"
thumbnail = "resume.png" thumbnail = "assets/images/resume.png"