aboutsummaryrefslogtreecommitdiff
path: root/dhall/latex
diff options
context:
space:
mode:
authorXe Iaso <me@christine.website>2022-11-25 19:01:10 -0500
committerGitHub <noreply@github.com>2022-11-25 19:01:10 -0500
commitcc933b31fd23bb06e95bf41f848a1c99353d44ae (patch)
treeaf8288dbd4db2ad886d6b326bffb1c9d5b568de3 /dhall/latex
parent551e0384c923ff3ee98cfddf7e3eb42c6dbb2941 (diff)
downloadxesite-cc933b31fd23bb06e95bf41f848a1c99353d44ae.tar.xz
xesite-cc933b31fd23bb06e95bf41f848a1c99353d44ae.zip
Start version 3 (#573)
* Start version 3 * Change version to 3.0.0 in Cargo.toml * Add metadata for series * Change types for signal boosts * Add start of LaTeX resume generation at Nix time * Add start of proper author tagging for posts in JSONFeed and ldjson * Convert templates to use Maud * Add start of dynamic resume generation from dhall * Make patrons page embed thumbnails TODO: * [ ] Remove the rest of the old templates * [ ] Bring in Xeact for the share on mastodon button * [ ] Site update post Signed-off-by: Xe <me@christine.website> * fix nix builds Signed-off-by: Xe Iaso <me@christine.website> * fix dhall build Signed-off-by: Xe Iaso <me@christine.website> * fix non-flakes build Signed-off-by: Xe Iaso <me@christine.website> * make new mastodon share button Signed-off-by: Xe Iaso <me@christine.website> * remove the rest of the ructe templates that I can remove Signed-off-by: Xe Iaso <me@christine.website> * refactor blogposts to its own file Signed-off-by: Xe Iaso <me@christine.website> * move resume to be generated by nix Signed-off-by: Xe Iaso <me@christine.website> * write article Signed-off-by: Xe Iaso <me@christine.website> * blog/site-update-v3: hero image Signed-off-by: Xe Iaso <me@christine.website> * add site update series tag to site updates Signed-off-by: Xe Iaso <me@christine.website> Signed-off-by: Xe <me@christine.website> Signed-off-by: Xe Iaso <me@christine.website>
Diffstat (limited to 'dhall/latex')
-rw-r--r--dhall/latex/.gitignore5
-rw-r--r--dhall/latex/resume.cls131
-rw-r--r--dhall/latex/resume.dhall110
3 files changed, 246 insertions, 0 deletions
diff --git a/dhall/latex/.gitignore b/dhall/latex/.gitignore
new file mode 100644
index 0000000..19b9311
--- /dev/null
+++ b/dhall/latex/.gitignore
@@ -0,0 +1,5 @@
+resume.tex
+resume.pdf
+resume.aux
+resume.out
+resume.log
diff --git a/dhall/latex/resume.cls b/dhall/latex/resume.cls
new file mode 100644
index 0000000..e7c4dcd
--- /dev/null
+++ b/dhall/latex/resume.cls
@@ -0,0 +1,131 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Medium Length Professional CV - RESUME CLASS FILE
+%
+% This template has been downloaded from:
+% http://www.LaTeXTemplates.com
+%
+% This class file defines the structure and design of the template.
+%
+% Original header:
+% Copyright (C) 2010 by Trey Hunner
+%
+% Copying and distribution of this file, with or without modification,
+% are permitted in any medium without royalty provided the copyright
+% notice and this notice are preserved. This file is offered as-is,
+% without any warranty.
+%
+% Created by Trey Hunner and modified by www.LaTeXTemplates.com
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ProvidesClass{resume}[2010/07/10 v0.9 Resume class]
+
+\LoadClass[11pt,letterpaper]{article} % Font size and paper type
+
+\usepackage[parfill]{parskip} % Remove paragraph indentation
+\usepackage{array} % Required for boldface (\bf and \bfseries) tabular columns
+\usepackage{ifthen} % Required for ifthenelse statements
+
+\pagestyle{empty} % Suppress page numbers
+
+%----------------------------------------------------------------------------------------
+% HEADINGS COMMANDS: Commands for printing name and address
+%----------------------------------------------------------------------------------------
+
+\def \name#1{\def\@name{#1}} % Defines the \name command to set name
+\def \@name {} % Sets \@name to empty by default
+
+\def \addressSep {$\diamond$} % Set default address separator to a diamond
+
+% One, two or three address lines can be specified
+\let \@addressone \relax
+\let \@addresstwo \relax
+\let \@addressthree \relax
+
+% \address command can be used to set the first, second, and third address (last 2 optional)
+\def \address #1{
+ \@ifundefined{@addresstwo}{
+ \def \@addresstwo {#1}
+ }{
+ \@ifundefined{@addressthree}{
+ \def \@addressthree {#1}
+ }{
+ \def \@addressone {#1}
+ }}
+}
+
+% \printaddress is used to style an address line (given as input)
+\def \printaddress #1{
+ \begingroup
+ \def \\ {\addressSep\ }
+ \centerline{#1}
+ \endgroup
+ \par
+ \addressskip
+}
+
+% \printname is used to print the name as a page header
+\def \printname {
+ \begingroup
+ \hfil{\MakeUppercase{\namesize\bf \@name}}\hfil
+ \nameskip\break
+ \endgroup
+}
+
+%----------------------------------------------------------------------------------------
+% PRINT THE HEADING LINES
+%----------------------------------------------------------------------------------------
+
+\let\ori@document=\document
+\renewcommand{\document}{
+ \ori@document % Begin document
+ \printname % Print the name specified with \name
+ \@ifundefined{@addressone}{}{ % Print the first address if specified
+ \printaddress{\@addressone}}
+ \@ifundefined{@addresstwo}{}{ % Print the second address if specified
+ \printaddress{\@addresstwo}}
+ \@ifundefined{@addressthree}{}{ % Print the third address if specified
+ \printaddress{\@addressthree}}
+}
+
+%----------------------------------------------------------------------------------------
+% SECTION FORMATTING
+%----------------------------------------------------------------------------------------
+
+% Defines the rSection environment for the large sections within the CV
+\newenvironment{rSection}[1]{ % 1 input argument - section name
+ \sectionskip
+ \MakeUppercase{\bf #1} % Section title
+ \sectionlineskip
+ \hrule % Horizontal line
+ \begin{list}{}{ % List for each individual item in the section
+ \setlength{\leftmargin}{1.5em} % Margin within the section
+ }
+ \item[]
+}{
+ \end{list}
+}
+
+%----------------------------------------------------------------------------------------
+% WORK EXPERIENCE FORMATTING
+%----------------------------------------------------------------------------------------
+
+\newenvironment{rSubsection}[4]{ % 4 input arguments - company name, year(s) employed, job title and location
+ {\bf #1} \hfill {#2} % Bold company name and date on the right
+ \ifthenelse{\equal{#3}{}}{}{ % If the third argument is not specified, don't print the job title and location line
+ \\
+ {\em #3} \hfill {\em #4} % Italic job title and location
+ }\smallskip
+ \begin{list}{$\cdot$}{\leftmargin=0em} % \cdot used for bullets, no indentation
+ \itemsep -0.5em \vspace{-0.5em} % Compress items in list together for aesthetics
+ }{
+ \end{list}
+ \vspace{0.5em} % Some space after the list of bullet points
+}
+
+% The below commands define the whitespace after certain things in the document - they can be \smallskip, \medskip or \bigskip
+\def\namesize{\huge} % Size of the name at the top of the document
+\def\addressskip{\smallskip} % The space between the two address (or phone/email) lines
+\def\sectionlineskip{\medskip} % The space above the horizontal line for each section
+\def\nameskip{\bigskip} % The space after your name at the top
+\def\sectionskip{\medskip} % The space after the heading section
diff --git a/dhall/latex/resume.dhall b/dhall/latex/resume.dhall
new file mode 100644
index 0000000..e9318f6
--- /dev/null
+++ b/dhall/latex/resume.dhall
@@ -0,0 +1,110 @@
+let xesite = ../types/package.dhall
+
+let Link = xesite.Link
+
+let Location = xesite.Location
+
+let Job = xesite.Job
+
+let Prelude = ../Prelude.dhall
+
+let xe = ../authors/xe.dhall
+
+let resume = ../resume.dhall
+
+let buzzwords =
+ let doer = \(item : Text) -> item
+
+ in Prelude.Text.concatMapSep ", " Text doer resume.buzzwords
+
+let jobHistory =
+ let showDate =
+ \(job : Job.Type) ->
+ let endDate =
+ merge
+ { Some = \(t : Text) -> t, None = "current" }
+ job.endDate
+
+ in "${job.startDate} - ${endDate}"
+
+ let showLoc =
+ \(l : Location.Type) ->
+ "${l.city}, ${l.stateOrProvince}, ${l.country}"
+
+ let workedLocs =
+ \(j : Job.Type) ->
+ let doer =
+ \(l : Location.Type) -> "\\item Work location: ${showLoc l}"
+
+ in Prelude.Text.concatMapSep "\n" Location.Type doer j.locations
+
+ let highlights =
+ \(j : Job.Type) ->
+ let doer = \(t : Text) -> "\\item ${t}"
+
+ in Prelude.Text.concatMapSep "\n" Text doer j.highlights
+
+ let doer =
+ \(job : Job.Type) ->
+ ''
+ \begin{rSubsection}{${job.company.name}}{${showDate
+ job}}{${job.title}}{${showLoc
+ job.company.location}}
+
+ ${workedLocs job}
+ ${highlights job}
+
+ \end{rSubsection}
+ ''
+
+ in Prelude.Text.concatMapSep "\n" Job.Type doer resume.jobs
+
+let publications =
+ let doer =
+ \(link : Link.Type) ->
+ ''
+ \begin{rSubsection}{\href{${link.url}}{${link.title}}}{}{}{}
+
+ \item ${link.description}
+
+ \end{rSubsection}
+ ''
+
+ in Prelude.Text.concatMapSep
+ "\n"
+ Link.Type
+ doer
+ resume.notablePublications
+
+in ''
+ \documentclass{resume}
+
+ \usepackage[left=0.75in,top=0.6in,right=0.75in,bottom=0.6in]{geometry} % Document margins
+ \usepackage{hyperref}
+ \newcommand{\tab}[1]{\hspace{.2667\textwidth}\rlap{#1}}
+ \newcommand{\itab}[1]{\hspace{0em}\rlap{#1}}
+ \name{${xe.name}}
+ \address{https://xeiaso.net \\ me@xeiaso.net}
+
+ \begin{document}
+
+ \begin{rSection}{Technical Strengths}
+
+ ${buzzwords}
+
+ \end{rSection}
+
+ \begin{rSection}{Experience}
+
+ ${jobHistory}
+
+ \end{rSection}
+
+ \begin{rSection}{Notable Publications}
+
+ ${publications}
+
+ \end{rSection}
+
+ \end{document}
+ ''