Initial commit
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
*.pdf
|
||||||
189
LICENSE
Normal file
189
LICENSE
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2024 Paul Tsouchlos
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Fonticons, Inc. (https://fontawesome.com)
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Font Awesome Free License
|
||||||
|
|
||||||
|
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
||||||
|
commercial projects, open source projects, or really almost whatever you want.
|
||||||
|
Full Font Awesome Free license: https://fontawesome.com/license/free.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
|
||||||
|
|
||||||
|
The Font Awesome Free download is licensed under a Creative Commons
|
||||||
|
Attribution 4.0 International License and applies to all icons packaged
|
||||||
|
as SVG and JS file types.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Fonts: SIL OFL 1.1 License
|
||||||
|
|
||||||
|
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
||||||
|
packaged as web and desktop font files.
|
||||||
|
|
||||||
|
Copyright (c) 2023 Fonticons, Inc. (https://fontawesome.com)
|
||||||
|
with Reserved Font Name: "Font Awesome".
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
SIL OPEN FONT LICENSE
|
||||||
|
Version 1.1 - 26 February 2007
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting — in part or in whole — any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Code: MIT License (https://opensource.org/licenses/MIT)
|
||||||
|
|
||||||
|
In the Font Awesome Free download, the MIT license applies to all non-font and
|
||||||
|
non-icon files.
|
||||||
|
|
||||||
|
Copyright 2023 Fonticons, Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in the
|
||||||
|
Software without restriction, including without limitation the rights to use, copy,
|
||||||
|
modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
|
||||||
|
and to permit persons to whom the Software is furnished to do so, subject to the
|
||||||
|
following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||||
|
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Attribution
|
||||||
|
|
||||||
|
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
|
||||||
|
Awesome Free files already contain embedded comments with sufficient
|
||||||
|
attribution, so you shouldn't need to do anything additional when using these
|
||||||
|
files normally.
|
||||||
|
|
||||||
|
We've kept attribution comments terse, so we ask that you do not actively work
|
||||||
|
to remove them from files, especially code. They're a great way for folks to
|
||||||
|
learn about Font Awesome.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Brand Icons
|
||||||
|
|
||||||
|
All brand icons are trademarks of their respective owners. The use of these
|
||||||
|
trademarks does not indicate endorsement of the trademark holder by Font
|
||||||
|
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||||
|
to represent the company, product, or service to which they refer.**
|
||||||
16
README.md
Normal file
16
README.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Modern CV
|
||||||
|
|
||||||
|
A port of the [Awesome-CV](https://github.com/posquit0/Awesome-CV) Latex resume template in [typst](https://github.com/typst/typst).
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
You will need the `Robot` and `Source Sans Pro` fonts installed on your system or available somewhere. You can download them from the following links:
|
||||||
|
|
||||||
|
- [Roboto](https://fonts.google.com/specimen/Roboto)
|
||||||
|
- [Source Sans Pro](https://github.com/adobe-fonts/source-sans-pro)
|
||||||
|
|
||||||
|
See `typst fonts --help` for more information on configuring fonts for `typst` that are not installed on your system.
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
:construction:
|
||||||
165
assets/icons/LICENSE.txt
Normal file
165
assets/icons/LICENSE.txt
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
Fonticons, Inc. (https://fontawesome.com)
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Font Awesome Free License
|
||||||
|
|
||||||
|
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
||||||
|
commercial projects, open source projects, or really almost whatever you want.
|
||||||
|
Full Font Awesome Free license: https://fontawesome.com/license/free.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
|
||||||
|
|
||||||
|
The Font Awesome Free download is licensed under a Creative Commons
|
||||||
|
Attribution 4.0 International License and applies to all icons packaged
|
||||||
|
as SVG and JS file types.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Fonts: SIL OFL 1.1 License
|
||||||
|
|
||||||
|
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
||||||
|
packaged as web and desktop font files.
|
||||||
|
|
||||||
|
Copyright (c) 2023 Fonticons, Inc. (https://fontawesome.com)
|
||||||
|
with Reserved Font Name: "Font Awesome".
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
SIL OPEN FONT LICENSE
|
||||||
|
Version 1.1 - 26 February 2007
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting — in part or in whole — any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Code: MIT License (https://opensource.org/licenses/MIT)
|
||||||
|
|
||||||
|
In the Font Awesome Free download, the MIT license applies to all non-font and
|
||||||
|
non-icon files.
|
||||||
|
|
||||||
|
Copyright 2023 Fonticons, Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in the
|
||||||
|
Software without restriction, including without limitation the rights to use, copy,
|
||||||
|
modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
|
||||||
|
and to permit persons to whom the Software is furnished to do so, subject to the
|
||||||
|
following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||||
|
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Attribution
|
||||||
|
|
||||||
|
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
|
||||||
|
Awesome Free files already contain embedded comments with sufficient
|
||||||
|
attribution, so you shouldn't need to do anything additional when using these
|
||||||
|
files normally.
|
||||||
|
|
||||||
|
We've kept attribution comments terse, so we ask that you do not actively work
|
||||||
|
to remove them from files, especially code. They're a great way for folks to
|
||||||
|
learn about Font Awesome.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Brand Icons
|
||||||
|
|
||||||
|
All brand icons are trademarks of their respective owners. The use of these
|
||||||
|
trademarks does not indicate endorsement of the trademark holder by Font
|
||||||
|
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||||
|
to represent the company, product, or service to which they refer.**
|
||||||
1
assets/icons/square-phone-solid.svg
Normal file
1
assets/icons/square-phone-solid.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm90.7 96.7c9.7-2.6 19.9 2.3 23.7 11.6l20 48c3.4 8.2 1 17.6-5.8 23.2L168 231.7c16.6 35.2 45.1 63.7 80.3 80.3l20.2-24.7c5.6-6.8 15-9.2 23.2-5.8l48 20c9.3 3.9 14.2 14 11.6 23.7l-12 44C336.9 378 329 384 320 384C196.3 384 96 283.7 96 160c0-9 6-16.9 14.7-19.3l44-12z"/></svg>
|
||||||
|
After Width: | Height: | Size: 612 B |
546
lib.typ
Normal file
546
lib.typ
Normal file
@@ -0,0 +1,546 @@
|
|||||||
|
#import "@preview/fontawesome:0.1.0": *
|
||||||
|
|
||||||
|
// const color
|
||||||
|
#let color_darknight = rgb("131A28")
|
||||||
|
#let color_darkgray = rgb("414141")
|
||||||
|
#let color_gray = rgb("5d5d5d")
|
||||||
|
#let default_accent_color = rgb("333ECC")
|
||||||
|
|
||||||
|
// const icons
|
||||||
|
#let linkedin_icon = box(fa-icon("linkedin", fa-set: "Brands", fill: color_darknight))
|
||||||
|
#let github_icon = box(fa-icon("github", fa-set: "Brands", fill: color_darknight))
|
||||||
|
// for some reason this icon doesn't work with fa-icon, so we use the local version
|
||||||
|
#let phone_icon = box(image("assets/icons/square-phone-solid.svg"))
|
||||||
|
#let email_icon = box(fa-icon("envelope", fill: color_darknight))
|
||||||
|
|
||||||
|
/// Helpers
|
||||||
|
|
||||||
|
// layout utility
|
||||||
|
#let __justify_align(left_body, right_body) = {
|
||||||
|
block[
|
||||||
|
#left_body
|
||||||
|
#box(width: 1fr)[
|
||||||
|
#align(right)[
|
||||||
|
#right_body
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
#let __justify_align_3(left_body, mid_body, right_body) = {
|
||||||
|
block[
|
||||||
|
#box(width: 1fr)[
|
||||||
|
#align(left)[
|
||||||
|
#left_body
|
||||||
|
]
|
||||||
|
]
|
||||||
|
#box(width: 1fr)[
|
||||||
|
#align(center)[
|
||||||
|
#mid_body
|
||||||
|
]
|
||||||
|
]
|
||||||
|
#box(width: 1fr)[
|
||||||
|
#align(right)[
|
||||||
|
#right_body
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Show a link with an icon, specifically for Github projects
|
||||||
|
/// *Example*
|
||||||
|
/// #example(`resume.github_link("DeveloperPaul123/awesome-resume")`)
|
||||||
|
/// - github_path (string): The path to the Github project (e.g. "DeveloperPaul123/awesome-resume")
|
||||||
|
/// -> none
|
||||||
|
#let github_link(github_path) = {
|
||||||
|
set box(height: 11pt)
|
||||||
|
|
||||||
|
align(right + horizon)[
|
||||||
|
#fa-icon("github", fa-set: "Brands", fill: color_darkgray) #link("https://github.com/" + github_path, github_path)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Right section for the justified headers
|
||||||
|
/// - 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
|
||||||
|
#let secondary_right_header(body, accent_color: default_accent_color) = {
|
||||||
|
set text(accent_color, size: 11pt, style: "italic", weight: "light")
|
||||||
|
body
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Right section of a tertiaty headers.
|
||||||
|
/// - body (content): The body of the right header
|
||||||
|
#let tertiary_right_header(body) = {
|
||||||
|
set text(weight: "light", style: "italic", size: 9pt)
|
||||||
|
body
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Justified header that takes a primary section and a secondary section. The primary section is on the left and the secondary section is on the right.
|
||||||
|
/// - primary (content): The primary section of the header
|
||||||
|
/// - secondary (content): The secondary section of the header
|
||||||
|
#let justified_header(primary, secondary) = {
|
||||||
|
set block(above: 0.7em, below: 0.7em)
|
||||||
|
pad[
|
||||||
|
#__justify_align[
|
||||||
|
== #primary
|
||||||
|
][
|
||||||
|
#secondary_right_header[#secondary]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Justified header that takes a primary section and a secondary section. The primary section is on the left and the secondary section is on the right. This is a smaller header compared to the `justified_header`.
|
||||||
|
/// - primary (content): The primary section of the header
|
||||||
|
/// - secondary (content): The secondary section of the header
|
||||||
|
#let secondary_justified_header(primary, secondary) = {
|
||||||
|
__justify_align[
|
||||||
|
=== #primary
|
||||||
|
][
|
||||||
|
#tertiary_right_header[#secondary]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
/// --- End of Helpers
|
||||||
|
|
||||||
|
/// ---- Resume Template ----
|
||||||
|
|
||||||
|
/// Resume template that is inspired by the Awesome CV Latex template by posquit0. This template can loosely be considered a port of the original Latex template.
|
||||||
|
///
|
||||||
|
/// The original template: https://github.com/posquit0/Awesome-CV
|
||||||
|
///
|
||||||
|
/// - author (content): Structure that takes in all the author's information
|
||||||
|
/// - date (string): The date the resume was created
|
||||||
|
/// - accent_color (color): The accent color of the resume
|
||||||
|
/// - body (content): The body of the resume
|
||||||
|
/// -> none
|
||||||
|
#let resume(
|
||||||
|
author: (:),
|
||||||
|
date: datetime.today().display("[month repr:long] [day], [year]"),
|
||||||
|
accent_color: default_accent_color,
|
||||||
|
body) = {
|
||||||
|
set document(
|
||||||
|
author: author.firstname + " " + author.lastname,
|
||||||
|
title: "resume",
|
||||||
|
)
|
||||||
|
|
||||||
|
set text(
|
||||||
|
font: ("Source Sans Pro"),
|
||||||
|
lang: "en",
|
||||||
|
size: 11pt,
|
||||||
|
fill: color_darkgray,
|
||||||
|
fallback: false
|
||||||
|
)
|
||||||
|
|
||||||
|
set page(
|
||||||
|
paper: "a4",
|
||||||
|
margin: (left: 15mm, right: 15mm, top: 10mm, bottom: 10mm),
|
||||||
|
footer: [
|
||||||
|
#set text(fill: gray, size: 8pt)
|
||||||
|
#__justify_align_3[
|
||||||
|
#smallcaps[#date]
|
||||||
|
][
|
||||||
|
#smallcaps[
|
||||||
|
#author.firstname
|
||||||
|
#author.lastname
|
||||||
|
#sym.dot.c
|
||||||
|
#"Résumé"
|
||||||
|
]
|
||||||
|
][
|
||||||
|
#counter(page).display()
|
||||||
|
]
|
||||||
|
],
|
||||||
|
footer-descent: 0pt,
|
||||||
|
)
|
||||||
|
|
||||||
|
// set paragraph spacing
|
||||||
|
show par: set block(above: 0.75em, below: 0.75em)
|
||||||
|
set par(justify: true)
|
||||||
|
|
||||||
|
set heading(
|
||||||
|
numbering: none,
|
||||||
|
outlined: false,
|
||||||
|
)
|
||||||
|
|
||||||
|
show heading.where(level:1): it => [
|
||||||
|
#set block(above: 1em, below: 1em)
|
||||||
|
#set text(
|
||||||
|
size: 16pt,
|
||||||
|
weight: "regular"
|
||||||
|
)
|
||||||
|
|
||||||
|
#align(left)[
|
||||||
|
#text[#strong[#text(accent_color)[#it.body.text.slice(0, 3)]]]#strong[#text[#it.body.text.slice(3)]]
|
||||||
|
#box(width: 1fr, line(length: 100%))
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
show heading.where(level: 2): it => {
|
||||||
|
set text(color_darkgray, size: 12pt, style: "normal", weight: "bold")
|
||||||
|
it.body
|
||||||
|
}
|
||||||
|
|
||||||
|
show heading.where(level: 3): it => {
|
||||||
|
set text(size: 10pt, weight: "regular")
|
||||||
|
smallcaps[#it.body]
|
||||||
|
}
|
||||||
|
|
||||||
|
let name = {
|
||||||
|
align(center)[
|
||||||
|
#pad(bottom: 5pt)[
|
||||||
|
#block[
|
||||||
|
#set text(size: 32pt, style: "normal", font: ("Roboto"))
|
||||||
|
#text(accent_color, weight: "thin")[#author.firstname]
|
||||||
|
#text(weight: "bold")[#author.lastname]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
let positions = {
|
||||||
|
set text(
|
||||||
|
accent_color,
|
||||||
|
size: 9pt,
|
||||||
|
weight: "regular"
|
||||||
|
)
|
||||||
|
align(center)[
|
||||||
|
#smallcaps[
|
||||||
|
#author.positions.join(
|
||||||
|
text[#" "#sym.dot.c#" "]
|
||||||
|
)
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
let address = {
|
||||||
|
set text(
|
||||||
|
size: 9pt,
|
||||||
|
weight: "bold",
|
||||||
|
style: "italic",
|
||||||
|
)
|
||||||
|
align(center)[
|
||||||
|
#author.address
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
let contacts = {
|
||||||
|
set box(height: 9pt)
|
||||||
|
|
||||||
|
let separator = box(width: 5pt)
|
||||||
|
|
||||||
|
align(center)[
|
||||||
|
#set text(size: 9pt, weight: "regular", style: "normal")
|
||||||
|
#block[
|
||||||
|
#align(horizon)[
|
||||||
|
#phone_icon
|
||||||
|
#box[#text(author.phone)]
|
||||||
|
#separator
|
||||||
|
#email_icon
|
||||||
|
#box[#link("mailto:" + author.email)[#author.email]]
|
||||||
|
#separator
|
||||||
|
#github_icon
|
||||||
|
#box[#link("https://github.com/" + author.github)[#author.github]]
|
||||||
|
#separator
|
||||||
|
#linkedin_icon
|
||||||
|
#box[
|
||||||
|
#link("https://www.linkedin.com/in/" + author.linkedin)[#author.firstname #author.lastname]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
name
|
||||||
|
positions
|
||||||
|
address
|
||||||
|
contacts
|
||||||
|
body
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The base item for resume entries.
|
||||||
|
/// 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
|
||||||
|
#let resume_item(body) = {
|
||||||
|
set text(size: 10pt, style: "normal", weight: "light")
|
||||||
|
set par(leading: 0.65em)
|
||||||
|
body
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The base item for resume entries. 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.
|
||||||
|
/// - title (string): The title of the resume entry
|
||||||
|
/// - location (string): The location of the resume entry
|
||||||
|
/// - date (string): The date of the resume entry, this can be a range (e.g. "Jan 2020 - Dec 2020")
|
||||||
|
/// - description (content): The body of the resume entry
|
||||||
|
#let resume_entry(
|
||||||
|
title: none,
|
||||||
|
location: "",
|
||||||
|
date: "",
|
||||||
|
description: ""
|
||||||
|
) = {
|
||||||
|
pad[
|
||||||
|
#justified_header(title, location)
|
||||||
|
#secondary_justified_header(description, date)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Show cumulative GPA.
|
||||||
|
/// *Example:*
|
||||||
|
/// #example(`resume.resume_gpa("3.5", "4.0")`)
|
||||||
|
#let resume_gpa(numerator, denominator) = {
|
||||||
|
set text(size: 12pt, style: "italic", weight: "light")
|
||||||
|
text[Cumulative GPA: #box[#strong[#numerator] / #denominator]]
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Show a certification in the resume.
|
||||||
|
/// *Example:*
|
||||||
|
/// #example(`resume.resume_certification("AWS Certified Solutions Architect - Associate", "Jan 2020")`)
|
||||||
|
/// - certification (content): The certification
|
||||||
|
/// - date (content): The date the certification was achieved
|
||||||
|
#let resume_certification(certification, date) = {
|
||||||
|
justified_header(certification, date)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Show a list of skills in the resume under a given category.
|
||||||
|
/// - category (string): The category of the skills
|
||||||
|
/// - items (list): The list of skills. This can be a list of strings but you can also emphasize certain skills by using the `strong` function.
|
||||||
|
#let resume_skill_item(category, items) = {
|
||||||
|
set block(below: 0.65em)
|
||||||
|
set pad(top: 2pt)
|
||||||
|
|
||||||
|
pad[
|
||||||
|
#grid(
|
||||||
|
columns: (20fr, 80fr),
|
||||||
|
gutter: 10pt,
|
||||||
|
align(right)[
|
||||||
|
#set text(hyphenate: false)
|
||||||
|
== #category
|
||||||
|
],
|
||||||
|
align(left)[
|
||||||
|
#set text(size: 11pt, style: "normal", weight: "light")
|
||||||
|
#items.join(", ")
|
||||||
|
],
|
||||||
|
)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
/// ---- End of Resume Template ----
|
||||||
|
|
||||||
|
/// ---- Coverletter ----
|
||||||
|
|
||||||
|
/// Cover letter template that is inspired by the Awesome CV Latex template by posquit0. This template can loosely be considered a port of the original Latex template.
|
||||||
|
/// This coverletter template is designed to be used with the resume template.
|
||||||
|
/// - author (content): Structure that takes in all the author's information
|
||||||
|
/// - profile_picture (image): The profile picture of the author. This will be cropped to a circle and should be square in nature.
|
||||||
|
/// - date (date): The date the cover letter was created
|
||||||
|
/// - accent_color (color): The accent color of the cover letter
|
||||||
|
/// - body (content): The body of the cover letter
|
||||||
|
#let coverletter(
|
||||||
|
author: (:),
|
||||||
|
profile_picture: image,
|
||||||
|
date: datetime.today().display("[month repr:long] [day], [year]"),
|
||||||
|
accent_color: default_accent_color,
|
||||||
|
body
|
||||||
|
) = {
|
||||||
|
set document(
|
||||||
|
author: author.firstname + " " + author.lastname,
|
||||||
|
title: "resume",
|
||||||
|
)
|
||||||
|
|
||||||
|
set text(
|
||||||
|
font: ("Source Sans Pro"),
|
||||||
|
lang: "en",
|
||||||
|
size: 11pt,
|
||||||
|
fill: color_darkgray,
|
||||||
|
fallback: false
|
||||||
|
)
|
||||||
|
|
||||||
|
set page(
|
||||||
|
paper: "a4",
|
||||||
|
margin: (left: 15mm, right: 15mm, top: 10mm, bottom: 10mm),
|
||||||
|
footer: [
|
||||||
|
#set text(fill: gray, size: 8pt)
|
||||||
|
#__justify_align_3[
|
||||||
|
#smallcaps[#date]
|
||||||
|
][
|
||||||
|
#smallcaps[
|
||||||
|
#author.firstname
|
||||||
|
#author.lastname
|
||||||
|
#sym.dot.c
|
||||||
|
#"Cover Letter"
|
||||||
|
]
|
||||||
|
][
|
||||||
|
#counter(page).display()
|
||||||
|
]
|
||||||
|
],
|
||||||
|
footer-descent: 0pt,
|
||||||
|
)
|
||||||
|
|
||||||
|
// set paragraph spacing
|
||||||
|
show par: set block(above: 0.75em, below: 0.75em)
|
||||||
|
set par(justify: true)
|
||||||
|
|
||||||
|
set heading(
|
||||||
|
numbering: none,
|
||||||
|
outlined: false,
|
||||||
|
)
|
||||||
|
|
||||||
|
show heading: it => [
|
||||||
|
#set block(above: 1em, below: 1em)
|
||||||
|
#set text(
|
||||||
|
size: 16pt,
|
||||||
|
weight: "regular"
|
||||||
|
)
|
||||||
|
|
||||||
|
#align(left)[
|
||||||
|
#text[#strong[#text(accent_color)[#it.body.text.slice(0, 3)]]]#strong[#text[#it.body.text.slice(3)]]
|
||||||
|
#box(width: 1fr, line(length: 100%))
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
let name = {
|
||||||
|
align(right)[
|
||||||
|
#pad(bottom: 5pt)[
|
||||||
|
#block[
|
||||||
|
#set text(size: 32pt, style: "normal", font: ("Roboto"))
|
||||||
|
#text(accent_color, weight: "thin")[#author.firstname]
|
||||||
|
#text(weight: "bold")[#author.lastname]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
let positions = {
|
||||||
|
set text(
|
||||||
|
accent_color,
|
||||||
|
size: 9pt,
|
||||||
|
weight: "regular"
|
||||||
|
)
|
||||||
|
align(right)[
|
||||||
|
#smallcaps[
|
||||||
|
#author.positions.join(
|
||||||
|
text[#" "#sym.dot.c#" "]
|
||||||
|
)
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
let address = {
|
||||||
|
set text(
|
||||||
|
size: 9pt,
|
||||||
|
weight: "regular",
|
||||||
|
style: "italic",
|
||||||
|
fill: color_gray
|
||||||
|
)
|
||||||
|
align(right)[
|
||||||
|
#author.address
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
let contacts = {
|
||||||
|
set box(height: 9pt)
|
||||||
|
|
||||||
|
let separator = [#box(sym.bar.v)]
|
||||||
|
|
||||||
|
align(right)[
|
||||||
|
#set text(size: 8pt, weight: "light", style: "normal")
|
||||||
|
#block[
|
||||||
|
#align(horizon)[
|
||||||
|
#stack(dir: ltr, spacing: 0.5em,
|
||||||
|
phone_icon,
|
||||||
|
box[#text(author.phone)],
|
||||||
|
separator,
|
||||||
|
email_icon,
|
||||||
|
box[#link("mailto:" + author.email)[#author.email]],
|
||||||
|
separator,
|
||||||
|
github_icon,
|
||||||
|
box[#link("https://github.com/" + author.github)[#author.github]],
|
||||||
|
separator,
|
||||||
|
linkedin_icon,
|
||||||
|
box[
|
||||||
|
#link("https://www.linkedin.com/in/" + author.linkedin)[#author.firstname #author.lastname]
|
||||||
|
]
|
||||||
|
)
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
let letter_heading = {
|
||||||
|
grid(columns: (1fr, 2fr),
|
||||||
|
rows: (100pt),
|
||||||
|
align(left+horizon)[
|
||||||
|
#block(clip: true, stroke: 0pt, radius: 2cm,
|
||||||
|
width: 4cm, height: 4cm, profile_picture)
|
||||||
|
],
|
||||||
|
[
|
||||||
|
#name
|
||||||
|
#positions
|
||||||
|
#address
|
||||||
|
#contacts
|
||||||
|
]
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
let letter_conclusion = {
|
||||||
|
align(bottom)[
|
||||||
|
#pad(bottom: 2em)[
|
||||||
|
#text(weight: "light")[Sincerely,] \
|
||||||
|
#text(weight: "bold")[#author.firstname #author.lastname] \ \
|
||||||
|
#text(weight: "light", style: "italic")[Attached: Curriculum Vitae]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
// actual content
|
||||||
|
letter_heading
|
||||||
|
body
|
||||||
|
linebreak()
|
||||||
|
letter_conclusion
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Cover letter heading that takes in the information for the hiring company and formats it properly.
|
||||||
|
/// - entity_info (content): The information of the hiring entity including the company name, the target (who's attention to), street address, and city
|
||||||
|
/// - date (date): The date the letter was written (defaults to the current date)
|
||||||
|
#let hiring_entity_info(entity_info: (:), date: datetime.today().display("[month repr:long] [day], [year]")) = {
|
||||||
|
set par(leading: 1em)
|
||||||
|
pad(top: 1.5em, bottom: 1.5em)[
|
||||||
|
#__justify_align[
|
||||||
|
#text(weight: "bold", size: 12pt)[#entity_info.target]
|
||||||
|
][
|
||||||
|
#text(weight: "light", style: "italic", size: 9pt)[#date]
|
||||||
|
]
|
||||||
|
|
||||||
|
#pad(top: 0.65em, bottom: 0.65em)[
|
||||||
|
#text(weight: "regular", fill: color_gray, size: 9pt)[
|
||||||
|
#smallcaps[#entity_info.name] \
|
||||||
|
#entity_info.street_address \
|
||||||
|
#entity_info.city \
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Letter heading for a given job position and addressee.
|
||||||
|
/// - job_position (string): The job position you are applying for
|
||||||
|
/// - addressee (string): The person you are addressing the letter to
|
||||||
|
#let letter_heading(job_position: "", addressee: "") = {
|
||||||
|
// TODO: Make this adaptable to content
|
||||||
|
underline(evade: false, stroke: 0.5pt, offset: 0.3em)[
|
||||||
|
#text(weight: "bold", size: 12pt)[Job Application for #job_position]
|
||||||
|
]
|
||||||
|
pad(top: 1em, bottom: 1em)[
|
||||||
|
#text(weight: "light", fill: color_gray)[
|
||||||
|
Dear #addressee,
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Cover letter content paragraph. This is the main content of the cover letter.
|
||||||
|
/// - content (content): The content of the cover letter
|
||||||
|
#let coverletter_content(content) = {
|
||||||
|
pad(top: 1em, bottom: 1em)[
|
||||||
|
#set par(first-line-indent: 3em)
|
||||||
|
#set text(weight: "light")
|
||||||
|
#content
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
/// ---- End of Coverletter ----
|
||||||
9
resume-documentation.typ
Normal file
9
resume-documentation.typ
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#import "lib.typ"
|
||||||
|
#import "@preview/tidy:0.2.0"
|
||||||
|
|
||||||
|
#let docs = tidy.parse-module(
|
||||||
|
read("lib.typ"),
|
||||||
|
name: "Modern CV",
|
||||||
|
scope: (resume: lib)
|
||||||
|
)
|
||||||
|
#tidy.show-module(docs)
|
||||||
BIN
resume.png
Normal file
BIN
resume.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 420 KiB |
3
scripts/install_package_locally.ps1
Normal file
3
scripts/install_package_locally.ps1
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
$Source = "$PSScriptRoot/../*"
|
||||||
|
$Destination = "$env:LOCALAPPDATA/typst/packages/local/modern-cv/0.1.0"
|
||||||
|
Copy-Item -Path $Source -Destination $Destination -Recurse -Force
|
||||||
47
template/coverletter.typ
Normal file
47
template/coverletter.typ
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
#import "@local/modern-cv:0.1.0":*
|
||||||
|
|
||||||
|
#show: coverletter.with(
|
||||||
|
author: (
|
||||||
|
firstname: "John",
|
||||||
|
lastname: "Smith",
|
||||||
|
email: "js@gmail.com",
|
||||||
|
phone: "(+1) 111-111-1111",
|
||||||
|
github: "DeveloperPaul123",
|
||||||
|
linkedin: "John Smith",
|
||||||
|
address: "111 Example St. Apt. 111, Example City, EX 11111",
|
||||||
|
positions: (
|
||||||
|
"Software Engineer",
|
||||||
|
"Full Stack Developer"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
profile_picture: image("./profile.png")
|
||||||
|
)
|
||||||
|
|
||||||
|
#hiring_entity_info(
|
||||||
|
entity_info: (
|
||||||
|
target: "Company Recruitement Team",
|
||||||
|
name: "Google, Inc.",
|
||||||
|
street_address: "1600 AMPHITHEATRE PARKWAY",
|
||||||
|
city: "MOUNTAIN VIEW, CA 94043"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
#letter_heading(
|
||||||
|
job_position: "Software Engineer",
|
||||||
|
addressee: "Sir or Madame"
|
||||||
|
)
|
||||||
|
|
||||||
|
= About Me
|
||||||
|
#coverletter_content[
|
||||||
|
#lorem(80)
|
||||||
|
]
|
||||||
|
|
||||||
|
= Why Google?
|
||||||
|
#coverletter_content[
|
||||||
|
#lorem(90)
|
||||||
|
]
|
||||||
|
|
||||||
|
= Why Me?
|
||||||
|
#coverletter_content[
|
||||||
|
#lorem(100)
|
||||||
|
]
|
||||||
BIN
template/profile.png
Normal file
BIN
template/profile.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 809 KiB |
93
template/resume.typ
Normal file
93
template/resume.typ
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
#import "@local/modern-cv:0.1.0": *
|
||||||
|
|
||||||
|
#show: resume.with(
|
||||||
|
author: (
|
||||||
|
firstname: "John",
|
||||||
|
lastname: "Smith",
|
||||||
|
email: "js@example.com",
|
||||||
|
phone: "(+1) 111-111-1111",
|
||||||
|
github: "DeveloperPaul123",
|
||||||
|
linkedin: "Example",
|
||||||
|
address: "111 Example St. Example City, EX 11111",
|
||||||
|
positions: (
|
||||||
|
"Software Engineer",
|
||||||
|
"Software Architect"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
date: datetime.today().display()
|
||||||
|
)
|
||||||
|
|
||||||
|
= 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
|
||||||
|
|
||||||
|
#resume_entry(
|
||||||
|
title: "Example, Inc.",
|
||||||
|
location: "Example City, EX",
|
||||||
|
date: "2019 - Present",
|
||||||
|
description: "Senior Software Engineer"
|
||||||
|
)
|
||||||
|
|
||||||
|
#resume_item[
|
||||||
|
- #lorem(20)
|
||||||
|
- #lorem(15)
|
||||||
|
- #lorem(25)
|
||||||
|
]
|
||||||
|
|
||||||
|
#resume_entry(
|
||||||
|
title: "Previous Company, Inc.",
|
||||||
|
location: "Example City, EX",
|
||||||
|
date: "2011 - 2019",
|
||||||
|
description: "Software Engineer"
|
||||||
|
)
|
||||||
|
|
||||||
|
#resume_item[
|
||||||
|
- #lorem(20)
|
||||||
|
- #lorem(15)
|
||||||
|
- #lorem(25)
|
||||||
|
]
|
||||||
|
|
||||||
|
= Projects
|
||||||
|
|
||||||
|
#resume_entry(
|
||||||
|
title: "Thread Pool C++ Library",
|
||||||
|
location: [#github_link("DeveloperPaul123/thread-pool")],
|
||||||
|
date: "May 2021 - Present",
|
||||||
|
description: "Designer/Developer"
|
||||||
|
)
|
||||||
|
|
||||||
|
#resume_item[
|
||||||
|
- Designed and implemented a thread pool library in C++ using the latest C++20 and C++23 features.
|
||||||
|
- Wrote extensive documentation and unit tests for the library and published it on Github.
|
||||||
|
]
|
||||||
|
|
||||||
|
#resume_entry(
|
||||||
|
title: " Event Bus C++ Library",
|
||||||
|
location: github_link("DeveloperPaul123/eventbus"),
|
||||||
|
date: "Sep. 2019 - Present",
|
||||||
|
description: "Designer/Developer"
|
||||||
|
)
|
||||||
|
|
||||||
|
#resume_item[
|
||||||
|
- Designed and implemented an event bus library using C++17.
|
||||||
|
- Wrote detailed documentation and unit tests for the library and published it on Github.
|
||||||
|
]
|
||||||
|
|
||||||
|
= Skills
|
||||||
|
|
||||||
|
#resume_skill_item("Programming Languages", (strong("C++"), "Python", "Java", "C#", "JavaScript", "TypeScript"))
|
||||||
|
#resume_skill_item("Spoken Languages", (strong("English"), "Spanish"))
|
||||||
|
#resume_skill_item("Programs", (strong("Excel"),"Word"))
|
||||||
17
typst.toml
Normal file
17
typst.toml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
[package]
|
||||||
|
name = "modern-cv"
|
||||||
|
version = "0.1.0"
|
||||||
|
compiler = "0.11.0"
|
||||||
|
entrypoint = "lib.typ"
|
||||||
|
authors = ["Paul Tsouchlos <https://github.com/DeveloperPaul123>"]
|
||||||
|
license = "MIT"
|
||||||
|
description = "A modern resume based on the Awesome-CV Latex template."
|
||||||
|
keywords = ["CV", "Resume", "Minimalistic", "Professional", "Modern"]
|
||||||
|
categories = ["cv"]
|
||||||
|
disciplines = []
|
||||||
|
exclude = ["resume-documentation*", "scripts*"]
|
||||||
|
|
||||||
|
[template]
|
||||||
|
path = "template"
|
||||||
|
entrypoint = "resume.typ"
|
||||||
|
thumbnail = "resume.png"
|
||||||
Reference in New Issue
Block a user