From 0a4583dce03075f9f27736605437fff0b5eefc80 Mon Sep 17 00:00:00 2001 From: Sina Atalay Date: Thu, 15 Feb 2024 18:13:04 +0100 Subject: [PATCH] add sb2nov theme --- rendercv/themes/sb2nov/EducationEntry.j2.tex | 0 rendercv/themes/sb2nov/ExperienceEntry.j2.tex | 0 rendercv/themes/sb2nov/Header.j2.tex | 0 rendercv/themes/sb2nov/LICENSE | 22 +++++ rendercv/themes/sb2nov/NormalEntry.j2.tex | 0 rendercv/themes/sb2nov/OneLineEntry.j2.tex | 0 rendercv/themes/sb2nov/Preamble.j2.tex | 86 +++++++++++++++++++ .../themes/sb2nov/PublicationEntry.j2.tex | 0 .../themes/sb2nov/SectionBeginning.j2.tex | 0 rendercv/themes/sb2nov/SectionEnding.j2.tex | 0 rendercv/themes/sb2nov/TextEntry.j2.tex | 0 rendercv/themes/sb2nov/__init__.py | 86 +++++++++++++++++++ 12 files changed, 194 insertions(+) create mode 100644 rendercv/themes/sb2nov/EducationEntry.j2.tex create mode 100644 rendercv/themes/sb2nov/ExperienceEntry.j2.tex create mode 100644 rendercv/themes/sb2nov/Header.j2.tex create mode 100644 rendercv/themes/sb2nov/LICENSE create mode 100644 rendercv/themes/sb2nov/NormalEntry.j2.tex create mode 100644 rendercv/themes/sb2nov/OneLineEntry.j2.tex create mode 100644 rendercv/themes/sb2nov/Preamble.j2.tex create mode 100644 rendercv/themes/sb2nov/PublicationEntry.j2.tex create mode 100644 rendercv/themes/sb2nov/SectionBeginning.j2.tex create mode 100644 rendercv/themes/sb2nov/SectionEnding.j2.tex create mode 100644 rendercv/themes/sb2nov/TextEntry.j2.tex create mode 100644 rendercv/themes/sb2nov/__init__.py diff --git a/rendercv/themes/sb2nov/EducationEntry.j2.tex b/rendercv/themes/sb2nov/EducationEntry.j2.tex new file mode 100644 index 0000000..e69de29 diff --git a/rendercv/themes/sb2nov/ExperienceEntry.j2.tex b/rendercv/themes/sb2nov/ExperienceEntry.j2.tex new file mode 100644 index 0000000..e69de29 diff --git a/rendercv/themes/sb2nov/Header.j2.tex b/rendercv/themes/sb2nov/Header.j2.tex new file mode 100644 index 0000000..e69de29 diff --git a/rendercv/themes/sb2nov/LICENSE b/rendercv/themes/sb2nov/LICENSE new file mode 100644 index 0000000..4d4f656 --- /dev/null +++ b/rendercv/themes/sb2nov/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Sourabh Bajaj + +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. + diff --git a/rendercv/themes/sb2nov/NormalEntry.j2.tex b/rendercv/themes/sb2nov/NormalEntry.j2.tex new file mode 100644 index 0000000..e69de29 diff --git a/rendercv/themes/sb2nov/OneLineEntry.j2.tex b/rendercv/themes/sb2nov/OneLineEntry.j2.tex new file mode 100644 index 0000000..e69de29 diff --git a/rendercv/themes/sb2nov/Preamble.j2.tex b/rendercv/themes/sb2nov/Preamble.j2.tex new file mode 100644 index 0000000..d0ae6cf --- /dev/null +++ b/rendercv/themes/sb2nov/Preamble.j2.tex @@ -0,0 +1,86 @@ +%------------------------- +% Resume in Latex +% Author : Sourabh Bajaj +% License : MIT +%------------------------ + +\documentclass[letterpaper,11pt]{article} + +\usepackage{latexsym} +\usepackage[empty]{fullpage} +\usepackage{titlesec} +\usepackage{marvosym} +\usepackage[usenames,dvipsnames]{color} +\usepackage{verbatim} +\usepackage{enumitem} +\usepackage[hidelinks]{hyperref} +\usepackage{fancyhdr} +\usepackage[english]{babel} +\usepackage{tabularx} +\input{glyphtounicode} + +\pagestyle{fancy} +\fancyhf{} % clear all header and footer fields +\fancyfoot{} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} + +% Adjust margins +\addtolength{\oddsidemargin}{-0.5in} +\addtolength{\evensidemargin}{-0.5in} +\addtolength{\textwidth}{1in} +\addtolength{\topmargin}{-.5in} +\addtolength{\textheight}{1.0in} + +\urlstyle{same} + +\raggedbottom +\raggedright +\setlength{\tabcolsep}{0in} + +% Sections formatting +\titleformat{\section}{ + \vspace{-4pt}\scshape\raggedright\large +}{}{0em}{}[\color{black}\titlerule \vspace{-5pt}] + +% Ensure that generate pdf is machine readable/ATS parsable +\pdfgentounicode=1 + +%------------------------- +% Custom commands +\newcommand{\resumeItem}[2]{ + \item\small{ + \textbf{#1}{: #2 \vspace{-2pt}} + } +} + +% Just in case someone needs a heading that does not need to be in a list +\newcommand{\resumeHeading}[4]{ + \begin{tabular*}{0.99\textwidth}[t]{l@{\extracolsep{\fill}}r} + \textbf{#1} & #2 \\ + \textit{\small#3} & \textit{\small #4} \\ + \end{tabular*}\vspace{-5pt} +} + +\newcommand{\resumeSubheading}[4]{ + \vspace{-1pt}\item + \begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r} + \textbf{#1} & #2 \\ + \textit{\small#3} & \textit{\small #4} \\ + \end{tabular*}\vspace{-5pt} +} + +\newcommand{\resumeSubSubheading}[2]{ + \begin{tabular*}{0.97\textwidth}{l@{\extracolsep{\fill}}r} + \textit{\small#1} & \textit{\small #2} \\ + \end{tabular*}\vspace{-5pt} +} + +\newcommand{\resumeSubItem}[2]{\resumeItem{#1}{#2}\vspace{-4pt}} + +\renewcommand{\labelitemii}{$\circ$} + +\newcommand{\resumeSubHeadingListStart}{\begin{itemize}[leftmargin=*]} +\newcommand{\resumeSubHeadingListEnd}{\end{itemize}} +\newcommand{\resumeItemListStart}{\begin{itemize}} +\newcommand{\resumeItemListEnd}{\end{itemize}\vspace{-5pt}} \ No newline at end of file diff --git a/rendercv/themes/sb2nov/PublicationEntry.j2.tex b/rendercv/themes/sb2nov/PublicationEntry.j2.tex new file mode 100644 index 0000000..e69de29 diff --git a/rendercv/themes/sb2nov/SectionBeginning.j2.tex b/rendercv/themes/sb2nov/SectionBeginning.j2.tex new file mode 100644 index 0000000..e69de29 diff --git a/rendercv/themes/sb2nov/SectionEnding.j2.tex b/rendercv/themes/sb2nov/SectionEnding.j2.tex new file mode 100644 index 0000000..e69de29 diff --git a/rendercv/themes/sb2nov/TextEntry.j2.tex b/rendercv/themes/sb2nov/TextEntry.j2.tex new file mode 100644 index 0000000..e69de29 diff --git a/rendercv/themes/sb2nov/__init__.py b/rendercv/themes/sb2nov/__init__.py new file mode 100644 index 0000000..1dc8dd9 --- /dev/null +++ b/rendercv/themes/sb2nov/__init__.py @@ -0,0 +1,86 @@ +from typing import Literal, Annotated + +import pydantic + + +LaTeXDimension = Annotated[ + str, + pydantic.Field( + pattern=r"\d+\.?\d* *(cm|in|pt|mm|ex|em)", + ), +] + + +class Sb2novThemeOptions(pydantic.BaseModel): + """ """ + + model_config = pydantic.ConfigDict(extra="forbid") + + theme: Literal["sb2nov"] + font_size: Literal["10pt", "11pt", "12pt"] = pydantic.Field( + default="10pt", + title="Font Size", + description='The font size of the CV. The default value is "10pt".', + examples=["10pt", "11pt", "12pt"], + ) + page_size: Literal["a4paper", "letterpaper"] = pydantic.Field( + default="a4paper", + title="Page Size", + description='The page size of the CV. The default value is "a4paper".', + examples=["a4paper", "letterpaper"], + ) + color: ( + Literal["blue"] + | Literal["black"] + | Literal["burgundy"] + | Literal["green"] + | Literal["grey"] + | Literal["orange"] + | Literal["purple"] + | Literal["red"] + ) = pydantic.Field( + default="blue", + validate_default=True, + title="Primary Color", + description='The primary color of the CV. The default value is "blue".', + examples=[ + "blue", + "black", + "burgundy", + "green", + "grey", + "orange", + "purple", + "red", + ], + ) + date_width: LaTeXDimension = pydantic.Field( + default="3.8 cm", + validate_default=True, + title="Date and Location Column Width", + description='The width of the date column. The default value is "3.8 cm".', + ) + content_scale: float = pydantic.Field( + default=0.75, + title="Content Scale", + description=( + "The scale of the content with respect to the page size. The default value" + ' is "0.75".' + ), + ) + show_only_years: bool = pydantic.Field( + default=False, + title="Show Only Years", + description=( + 'If "True", only the years will be shown in the date column. The default' + ' value is "False".' + ), + ) + disable_page_numbers: bool = pydantic.Field( + default=False, + title="Disable Page Numbers", + description=( + 'If "True", the page numbers will be disabled. The default value is' + ' "False".' + ), + )