├── .gitignore ├── Fonts-README.md ├── README.md ├── docs ├── H-W-Jones.pdf ├── assets │ ├── css │ │ └── cv.css │ ├── images │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-384x384.png │ │ ├── apple-touch-icon.png │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── mstile-150x150.png │ │ ├── safari-pinned-tab.svg │ │ └── simple-cv.png │ └── js │ │ └── cv.js ├── browserconfig.xml ├── index.html └── site.webmanifest ├── metadata ├── format.yml ├── html-options.yml ├── pdf-options.yml └── personal.yml ├── process.ps1 ├── process.sh ├── sections.txt ├── sections ├── appointments.md ├── education.md ├── fields.md ├── languages.md ├── lectures.md ├── publications.md ├── service.md ├── skills.md └── teaching.md └── templates ├── html.html ├── tex-windows.tex └── tex.tex /.gitignore: -------------------------------------------------------------------------------- 1 | tmp 2 | *.log 3 | *.otf 4 | 5 | -------------------------------------------------------------------------------- /Fonts-README.md: -------------------------------------------------------------------------------- 1 | # Fonts in Simple-CV 2 | 3 | Handling fonts in a LaTeX document like what ends up being the pdf version of 4 | your CV can be complicated. Hopefully, you will just set the name of your font 5 | in the right place in `metadata/pdf-options.yml`, and everything will work 6 | correctly. However, it may be the case that XeLaTeX (what’s actually making 7 | the pdf) cannot find your font. In that case, you have a few options: 8 | 9 | 1. In your shell, use the command `fc-list : family` to get a list of fonts 10 | that LaTeX seems to know about. This list is not authoritative, but it’s a 11 | good start. For example, if you don’t know what your specific version of 12 | Garamond is called, you can run `fc-list : family | grep -i "Garamond"`, 13 | which will print every font that matches “Garamond.” Note that if a font is 14 | listed twice on the same line, separated by a comma, the part before the 15 | comma is what you want. 16 | 2. Download or copy the font you want to use into this repository. For 17 | example: 18 | 1. Go to [dafont](http://www.dafont.com) and download the font [Lemon 19 | Tuesday](https://www.dafont.com/lemon-tuesday.font?l[]=10&l[]=1), which 20 | is 100% free. 21 | 2. Unzip the downloaded file and move the file `Lemon Tuesday.otf` into the 22 | same directory as this file. 23 | 3. Edit line 10 of `metadata/pdf-options.yml` to read: `regular-font: Lemon 24 | Tuesday.otf`. 25 | 4. Execute the shell script with `sh process.sh` 26 | 5. The new pdf of the CV should be nearly unreadable, but it proves that 27 | changing the font worked. 28 | 29 | For the purposes of a CV, I recommend using Georg Duffner’s free [EB 30 | Garamond](https://bitbucket.org/georgd/eb-garamond/downloads/). If you 31 | download and install EB Garamond, you can set line 10 of 32 | `metadata/pdf-options.yml` to read: `regular-font: EB Garamond`. 33 | 34 | If you need help installing fonts, Fontspring has a [tutorial for installing 35 | fonts on Windows or Mac](https://www.fontspring.com/support/installing). 36 | 37 | Once EB Garamond is installed, you can make use [its advanced OpenType 38 | features](https://en.wikipedia.org/wiki/EB_Garamond#OpenType_Features) like 39 | [swash](https://en.wikipedia.org/wiki/Swash_(typography)) features for italic 40 | shapes or various ligature settings, like “historic” and “rare.” To learn more 41 | about these various features and how to enable them in `templates/tex.tex`, 42 | please see section IV of the [Fontspec 43 | documentation](http://mirrors.ctan.org/macros/latex/contrib/fontspec/fontspec.pdf). 44 | Here, for example, is the appropriate section of [my own 45 | cv](http://cv.moacir.com/MPdSP-cv.pdf)’s template: 46 | 47 | ```tex 48 | \setmainfont{$regular-font$}[% 49 | $if(pdf-bold-as-smallcaps)$ 50 | BoldFont = $regular-font$ , 51 | BoldFeatures = {Letters=SmallCaps} , 52 | $endif$ 53 | Ligatures=Historic , 54 | Ligatures=Rare , 55 | ItalicFeatures={Style=Swash} , 56 | Mapping=tex-text 57 | ] 58 | ``` 59 | 60 | Finally, the fonts may not work entirely as advertised in terms of producing 61 | smallcaps or replacing bold with smallcaps. Again, adjusting the options sent 62 | to Fontspec should help get precisely the look you want. 63 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # simple-cv 2 | 3 | ![Simple-cv in action](https://i.imgur.com/BPNaV5B.png) 4 | 5 | This repository lets one write an academic CV using Markdown. With the 6 | discrete Markdown files and a bit of information provided by `YAML` files, it 7 | generates a CV in both `html` and `pdf` forms that have similar content. 8 | Furthermore, it even allows you to host them on GitHub Pages. This project was 9 | inspired by my [own cv](http://cv.moacir.com), which uses the same underlying 10 | logic. 11 | 12 | Demos: 13 | 14 | * [http://plain-plain-text.github.io/simple-cv/ ](http://plain-plain-text.github.io/simple-cv/) 15 | * [http://plain-plain-text.github.io/simple-cv/H_W_Jones.pdf ](http://plain-plain-text.github.io/simple-cv/H_W_Jones.pdf) 16 | 17 | ## Requirements/Assumptions 18 | 19 | 1. You have used the command line before. The creation of the `html` and `pdf` 20 | files is done with a shell script you run from the command line. 21 | 22 | 1. You generally know what Git is and how to stage, commit, and push. 23 | 24 | 1. You know the basics of the [YAML 25 | syntax](https://learnxinyminutes.com/docs/yaml/). The repository as it 26 | exists here has examples of all the features in it, but it’s useful to know 27 | what YAML is, at least. 28 | 29 | 1. [Pandoc](https://pandoc.org/) installed. The Pandoc people have an 30 | [installation 31 | page](https://pandoc.org/installing.html) that explains the process for 32 | various systems. For Macs, you can simply do `brew install pandoc` if you 33 | have [Homebrew](http://brew.sh) installed, which you should. 34 | 35 | 1. A TeX engine of some sort. The folks at Pandoc [have recommendations and 36 | instructions](https://pandoc.org/installing.html) for different operating systems. 37 | 38 | ## Installing 39 | 40 | 1. Fork this repository by clicking on the “Fork” link at the top of this 41 | page. 42 | 43 | 1. In your new, forked repository, enable GitHub pages: 44 | * Click on the “Settings” on your repository’s GitHub page. 45 | * Scroll down to “GitHub Pages” and choose “master branch /docs folder.” 46 | * Click “Save” beside that. 47 | 48 | Now the sample CV should be visible at `http://GITHUBUSERNAME.github.io/simple-cv/`. 49 | 50 | 1. Your forked repository should now be cloned to your computer. GitHub 51 | [provides extensive 52 | instructions](https://help.github.com/articles/fork-a-repo/), but your own 53 | method may vary. If you use Atom as your text editor (which is a good 54 | choice, especially for beginners), you can follow [the instructions I wrote 55 | for my JavaScript students on linking Atom to a GitHub 56 | repository](https://the-javascripting-english-major.org/1-environment#s-link-atom-to-github), 57 | but you should note that the url you want to use is 58 | `https://github.com/GITHUBUSERNAME/simple-cv.git`. 59 | 60 | 1. Once the repository is forked to your GitHub account and cloned to your 61 | computer, you can start editing the YAML files in `metadata/` and the Markdown 62 | files in `sections/` as indicated below. 63 | 64 | ## Editing 65 | 66 | There are three things to edit in this repository. 67 | 68 | 1. The data, which is simple information about yourself and about the CV 69 | you want, which is distributed among the `YAML` files saved in `metadata/`. 70 | 71 | 1. Each section of your CV (education, publications, etc.) is its own Markdown 72 | file in `sections/`. **Note:** The processing script does not know about 73 | these files, so you need to inform the script about them by filling out the 74 | file `sections.txt` with each file’s name on a separate line. This allows 75 | you to determine the order of the sections on the fly. 76 | 77 | 1. The look and feel of both the `html` and `pdf` versions of the document are 78 | managed by the two files in the `templates/` directory. The [Pandoc 79 | templating language](https://pandoc.org/MANUAL.html#templates) is pretty 80 | straightforward, and the templates reveal how the data in `metadata/` is 81 | incorporated into the templates. That said, just because the templating 82 | language is easy doesn’t mean the templates are. The `html` file depends on 83 | the [Bootstrap](http://getbootstrap.com) framework, and the `pdf` file 84 | depends on the rather expansive [`memoir` LaTeX 85 | package](https://ctan.org/pkg/memoir?lang=en). I have tried to make the 86 | defaults acceptable, aesthetically, but I leave fine tuning up to you. 87 | 88 | When you’ve made your changes, you must run the shell script in command line: 89 | 90 | `sh process.sh` 91 | 92 | If you have the [`run-command`](https://atom.io/packages/run-command) package 93 | installed in Atom, you can simply type `ctrl-r` and type in `sh process.rb` in 94 | the little dialog box to process the files without the need of opening the 95 | command line or leaving Atom. 96 | 97 | The shell script produces new versions of the `html` and `pdf` files, so you can 98 | subsequently stage, commit, and push, to make the files available online via 99 | GitHub. 100 | 101 | ## Features 102 | 103 | * Single source for both “paper” and web versions of your cv. 104 | * Customizable sections that can be switched in and out or reordered just by 105 | changing the contents of `sections.txt`. 106 | * Customizable styles for `html` *and* `pdf` (fonts, etc.) via `YAML` configuration files. 107 | * Straightforward templates that allow for massive flexibility with 108 | comparatively little effort. 109 | * Agnostic taxonomy of sections. If you don’t want to include your 110 | publications, say, don’t. 111 | * Responsive `html` page with dynamically generated navbar provided by 112 | [Bootstrap](http://getbootstrap.com). 113 | * URL support for digital projects, etc., in the `pdf`, meaning readers can 114 | click on the `pdf` to open websites. 115 | * Dublin Core, Open Graph, and Twitter card metadata in the web version. 116 | 117 | ## `metadata/` `YAML` files. 118 | 119 | **This section is liable to be out of date!** 120 | 121 | ### `format.yml` 122 | 123 | This document holds all the configuration options shared in common between 124 | `html` and `pdf` versions. 125 | documents as well as the `html` and `pdf` versions on their own. These options 126 | become variables like `$format.title$` in the templates. The templates use 127 | [Pandoc’s templating language](https://pandoc.org/MANUAL.html#templates), 128 | which allows for, crucially, iteration and conditionals. The options are split 129 | up into three groups: 130 | 131 | #### General options 132 | 133 | These are mandatory: 134 | 135 | * `title` this sets the `` tag for the webpage and the metadata title 136 | for the pdf. 137 | * `author`: This can be a collection or a single value of the author’s name. 138 | * `author-lastname-first`: Dublin Core prefers the names to be with the family 139 | name first. Definitely surround this with quotes. 140 | * `mode`: For the time being, this must be set to `markdown`. 141 | * `cv-sections`: This `YAML` collection stands in as the list of sections to 142 | the CV. Every section is its own Markdown page in the `sections/` directory. 143 | The order in which they are listed here is the order in which they appear in 144 | the final documents 145 | * `contact-information`: The first section, “Contact Information,” isn’t 146 | created by a section above. Here is where you can set what the heading is. 147 | * `markers`: Most of the CV is probably unordered lists. Here you can set what 148 | markers make up the first three levels deep on the list. Any sort of 149 | character should work for html, but some characters may break the 150 | pdf-template. I use `»` for top level and `›` for the rest. 151 | * `level-1`: First level marker. Default is `•`. 152 | * `level-2`: Second level marker. Default is `-`. 153 | * `level-3`: Third level marker. Default is `*`. 154 | 155 | #### `pdf` options 156 | 157 | These options alert the `pdf` template to make certain decisions in building 158 | the document 159 | 160 | * `filename`: The name of the resulting `pdf` document (which is linked to 161 | from the `html` page as well). 162 | * `footer`: By default, a footer is added that includes the author(s) name(s) 163 | and the last modified date. One or both of those options can be suppressed. 164 | * `fonts`: This lets you give the name of OpenType fonts for use in the 165 | document, but they must be in the `fonts/` directory. See `fonts/FONTS-README.md` 166 | for more details. 167 | * `headings`: One of two settings for the section headings. The 168 | default is `overlapped`, which creates headings that jut out to the left a 169 | bit in comparison to the body. The only other option is `margin`, which 170 | places the headings in their own boxes in the margin to create a nice 171 | effect. 172 | * `smallcaps-headings`: Whether the headers and name are in small caps or not. 173 | * `bold-as-smallcaps`: Text typed as `**bold**` will appear as small caps 174 | instead. This is useful when your font (EB Garamond, say) does not have a 175 | bold face. 176 | * `papersize`: Letter paper (8.5in x 11in) is the default, but any page size 177 | LaTeX understands works. `a4` is the only other size I can imagine using for a CV… 178 | * `typesize`: How large the default text should be. The headings, etc., are 179 | all scaled in relation to this setting. 180 | * `left-margin`: The left margin. Can be set in inches, centimeters, 181 | whatever. In the absence of a `right-margin`, it stands in for both 182 | horizontal margins. 183 | * `right-margin`: The right margin. Only needed if it’s different from the 184 | left margin. 185 | * `top-margin`: Should be a minimum of about .5in so that there is room at 186 | the bottom for the footer. 187 | * `bottom-margin`: Unneeded unless the margin is different from the top 188 | margin. If this margin is large enough for the footer (.5in or so), then 189 | the top-margin can be made hilariously small. 190 | * `display-style`: I created a default look, called `line` that is based on 191 | the `resume` package. However, any `memoir` chapter style, as demonstrated 192 | in [10.5 of the Memoir 193 | manual](http://texdoc.net/texmf-dist/doc/latex/memoir/memman.pdf) can be 194 | used here. Reasonable values include: `bianchi`, `bringhurst`, `chappell`, 195 | `crosshead`, `demo2`, `dowding`, `lyhne`, and `wilsondob`. Some of these styles will 196 | clobber your font choices. 197 | 198 | #### `html` options 199 | 200 | * `headshot-url`: Some cultures expect a headshot in a CV. Here is where you 201 | tell Pandoc where to find it. Leaving it blank means no headshot. This 202 | feature does not yet work perfectly, so it is left off by default. 203 | * `lang`: The language code for the CV. Default is `en` because American hegemony. 204 | * `fontawesome`: Whether to use the [Font Awesome](http://fontawesome.com) 205 | icons. 206 | * `background-color`: *Enclosed in "*, this is color recognizable by CSS, so, typically, either a hex value (“`#nnnnnn`”), an rgb value (“`rgb(n, n, n)`”), or an 207 | rgba value if you want to change the opacity (“`rgba(n, n, n)`”). See [this 208 | color picker](https://www.w3schools.com/colors/colors_picker.asp) provided 209 | by W3Schools to handcraft your color choice. 210 | * `navbar`: A set of settings regarding the navbar that is added by default. 211 | * `background`: This option, set to `light` by default, corresponds to Bootstrap’s [semantic background 212 | colors](https://getbootstrap.com/docs/4.1/utilities/colors/#background-color) 213 | * `text`: `light` or `dark`, this corresponds to the background, so it’s a 214 | bit counter intuitive. That is, pick `light` if your background is light 215 | (though the text will be dark) and vice versa. 216 | * `position`: By default, the navbar scrolls with the rest of the CV. The 217 | other options, `fixed-top` and `fixed-bottom`, change that behavior. The 218 | most correct one to use is `sticky-top`, but that is not fully supported 219 | in all browsers yet. 220 | * `margin`: If the navbar is fixed, then we need to push the content away 221 | from it to provide some padding. Here you can tell it how many pixels to 222 | push it away. Default is 20. 223 | * `background-color`: This overrides the selection made for the navbar 224 | `background` above. See `background-color` above for information about 225 | picking colors. 226 | * `fonts`: Three separate font families are supported, one for the body text, 227 | one for the headings, and one for the navbar. If you only want one custom 228 | font throughout, set the `body` font and comment our `headings` and 229 | `navbar`. Each of `body`, `headings`, and `navbar` needs three options: 230 | * `type`: `serif`, `sans-serif`, or `monospace`. This is the fallback 231 | should the preferred font not load. 232 | * `url`: The URL for the font, like from 233 | [Google](http://fonts.google.com). 234 | * `name`: The name of the font for the CSS. 235 | * `colors`: These allow adjusting the color values of the text. See 236 | `background-color` above for information about picking colors. Each 237 | color value must be enclosed in quotes. These are *optional*. 238 | * `body`: The color of the main body text. 239 | * `headings`: The color of the headings. 240 | * `display`: The color of the display name. 241 | * `navbar-items`: The color of the items in the navbar. 242 | * `links`: These adjust the colors of links. 243 | * `regular`: The color of the link text under regular circumstances. 244 | * `hover`: The color of the link text when the mouse or finger hovers 245 | over it. 246 | * `smallcaps-headings`: Whether the headers and name are in small caps or not. 247 | * `bold-as-smallcaps`: Text typed as `**bold**` will appear as small caps 248 | instead. This is useful when your font (EB Garamond, say) does not have a 249 | bold face. 250 | * `keywords`: A list of keywords for SEO like this even works. 251 | * `last-modified`: As with the `pdf`, this triggers a “last modified” widget 252 | to appear at the top right corner of the page. 253 | * `meta-title`: The title used in the metadata on Twitter or Facebook. 254 | * `canonical-url`: The canonical URL for the site. 255 | * `date-created`: A date when the CV was _created_, as opposed to last 256 | _modified_. 257 | * `description`: A short description of the CV. 258 | * `og-image`: This gives a few settings to embed an image in the metadata for 259 | sharing on Twitter or Facebook. 260 | * `url`: The URL of the image 261 | * `type`: Its type. Probably `image/jpeg` or `image/png`. 262 | * `height`: Its height. 263 | * `width`: Its width. 264 | 265 | ### personal.yml 266 | 267 | ## Sections 268 | 269 | The sections are all separate Markdown files in the `sections/` directory. 270 | They can be called whatever, but the file names must correspond with the 271 | `cv-sections` collection in `metadata/format.yml`. 272 | 273 | Each section should begin with a `## Header`. Failure to do so will cause 274 | problems in both the `html` and `pdf` versions of the CV. The text of the 275 | header can be whatever. 276 | 277 | The Markdown files can then be written however you want. A list, a narrative, 278 | things with links, whatever is expected in your field and aligned with your 279 | fantasies. 280 | 281 | ## Rationale 282 | 283 | Being able to update both my online and “paper” CV at once has been a goal for 284 | over a decade. Luckily, Pandoc has stepped in to make that process simpler. 285 | This project used to be a complicated and very brittle system using 286 | MultiMarkDown and shell script. This all works, in my opinion, more simply. 287 | 288 | ## Features to Add 289 | 290 | * YAML mode that gets rid of Markdown completely 291 | * BibTeX support 292 | * Europass support 293 | * Sass integration with Bootstrap. 294 | -------------------------------------------------------------------------------- /docs/H-W-Jones.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plain-plain-text/simple-cv/6684cc83d8a55ee2013ee2c5b7f17d88e6fe05c3/docs/H-W-Jones.pdf -------------------------------------------------------------------------------- /docs/assets/css/cv.css: -------------------------------------------------------------------------------- 1 | @media (max-width: 575.98px) { 2 | #widgets { 3 | width: 50%; 4 | } 5 | } 6 | @media (min-width: 576px) { 7 | #widgets { 8 | width: 25%; 9 | } 10 | } 11 | 12 | #cvBody { 13 | max-width: 900px; 14 | } 15 | 16 | body { 17 | font-size: 1.25rem; 18 | } 19 | 20 | .navbar-brand { 21 | font-size: 2rem; 22 | } 23 | -------------------------------------------------------------------------------- /docs/assets/images/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plain-plain-text/simple-cv/6684cc83d8a55ee2013ee2c5b7f17d88e6fe05c3/docs/assets/images/android-chrome-192x192.png -------------------------------------------------------------------------------- /docs/assets/images/android-chrome-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plain-plain-text/simple-cv/6684cc83d8a55ee2013ee2c5b7f17d88e6fe05c3/docs/assets/images/android-chrome-384x384.png -------------------------------------------------------------------------------- /docs/assets/images/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plain-plain-text/simple-cv/6684cc83d8a55ee2013ee2c5b7f17d88e6fe05c3/docs/assets/images/apple-touch-icon.png -------------------------------------------------------------------------------- /docs/assets/images/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plain-plain-text/simple-cv/6684cc83d8a55ee2013ee2c5b7f17d88e6fe05c3/docs/assets/images/favicon-16x16.png -------------------------------------------------------------------------------- /docs/assets/images/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plain-plain-text/simple-cv/6684cc83d8a55ee2013ee2c5b7f17d88e6fe05c3/docs/assets/images/favicon-32x32.png -------------------------------------------------------------------------------- /docs/assets/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plain-plain-text/simple-cv/6684cc83d8a55ee2013ee2c5b7f17d88e6fe05c3/docs/assets/images/favicon.ico -------------------------------------------------------------------------------- /docs/assets/images/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plain-plain-text/simple-cv/6684cc83d8a55ee2013ee2c5b7f17d88e6fe05c3/docs/assets/images/mstile-150x150.png -------------------------------------------------------------------------------- /docs/assets/images/safari-pinned-tab.svg: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" standalone="no"?> 2 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" 3 | "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> 4 | <svg version="1.0" xmlns="http://www.w3.org/2000/svg" 5 | width="384.000000pt" height="384.000000pt" viewBox="0 0 384.000000 384.000000" 6 | preserveAspectRatio="xMidYMid meet"> 7 | <metadata> 8 | Created by potrace 1.11, written by Peter Selinger 2001-2013 9 | </metadata> 10 | <g transform="translate(0.000000,384.000000) scale(0.100000,-0.100000)" 11 | fill="#000000" stroke="none"> 12 | <path d="M375 3561 c-53 -24 -90 -66 -105 -118 -25 -84 11 -157 122 -243 124 13 | -97 160 -154 143 -229 -4 -18 -18 -45 -31 -61 -62 -73 -188 -36 -215 63 -22 14 | 84 -49 85 -49 3 0 -77 15 -112 53 -126 53 -18 139 -23 187 -10 57 15 124 80 15 | 139 135 30 110 -5 185 -133 280 -126 94 -154 137 -136 206 19 68 101 99 170 16 | 64 18 -9 34 -30 45 -59 33 -85 64 -64 49 32 -8 51 -12 56 -44 68 -53 19 -148 17 | 17 -195 -5z"/> 18 | <path d="M2083 3573 c-92 -3 -113 -6 -113 -19 0 -8 13 -17 30 -21 58 -11 60 19 | -20 60 -328 0 -154 -4 -286 -9 -293 -4 -7 -26 -19 -47 -27 -21 -7 -39 -19 -39 20 | -26 0 -19 277 -19 283 -1 2 7 -9 15 -27 18 -18 4 -40 18 -51 32 -19 23 -20 41 21 | -20 317 0 333 -3 321 79 313 108 -11 169 -88 157 -200 -7 -68 -36 -131 -71 22 | -154 -13 -8 -45 -19 -72 -22 -66 -10 -51 -27 23 -26 113 1 197 77 211 191 9 23 | 78 -3 119 -48 168 -64 69 -132 84 -346 78z"/> 24 | <path d="M700 3555 c0 -8 16 -19 40 -25 22 -6 44 -19 50 -30 6 -11 10 -126 10 25 | -292 0 -308 0 -309 -71 -328 -23 -6 -39 -16 -36 -23 5 -17 299 -17 304 0 3 7 26 | -13 16 -36 23 -74 20 -71 8 -71 330 0 289 0 290 23 304 12 8 34 18 50 21 15 4 27 | 27 13 27 21 0 11 -28 14 -145 14 -121 0 -145 -2 -145 -15z"/> 28 | <path d="M1060 3555 c0 -8 16 -19 40 -25 64 -17 74 -42 66 -163 -11 -179 -38 29 | -411 -51 -443 -9 -23 -24 -35 -50 -44 -68 -22 -36 -35 90 -35 125 0 158 13 90 30 | 35 -60 20 -67 46 -55 212 14 195 22 268 29 273 8 4 84 -190 151 -381 25 -72 31 | 50 -132 55 -134 6 -1 64 115 130 259 l120 262 7 -43 c3 -24 7 -129 7 -234 1 32 | -205 1 -205 -52 -218 -16 -4 -27 -12 -24 -19 5 -17 279 -17 284 0 3 7 -13 16 33 | -36 23 -23 6 -47 21 -55 33 -16 25 -36 290 -36 477 l0 111 56 25 c75 33 60 46 34 | -47 42 l-84 -3 -12 -49 c-14 -55 -213 -506 -223 -506 -9 0 -178 462 -186 508 35 | -9 44 -28 52 -128 52 -69 0 -86 -3 -86 -15z"/> 36 | <path d="M2530 3556 c0 -8 14 -17 33 -21 59 -13 57 -3 57 -320 0 -274 -1 -293 37 | -19 -309 -10 -9 -32 -21 -47 -25 -16 -4 -29 -13 -29 -20 0 -17 510 -24 523 -7 38 | 5 6 12 30 16 54 3 23 9 60 12 82 9 55 -7 51 -40 -11 -41 -75 -71 -89 -186 -89 39 | -151 0 -140 -25 -140 321 l0 289 33 15 c17 7 44 16 60 20 15 3 27 12 27 20 0 40 | 13 -24 15 -150 15 -123 0 -150 -3 -150 -14z"/> 41 | <path d="M3110 3555 c0 -8 16 -19 40 -25 22 -6 44 -19 50 -30 6 -11 10 -126 42 | 10 -292 0 -308 0 -309 -71 -328 -88 -24 -35 -32 211 -34 l244 -1 7 28 c13 50 43 | 15 110 2 114 -7 2 -21 -14 -32 -36 -25 -48 -60 -61 -168 -61 -64 0 -74 3 -87 44 | 23 -18 29 -30 259 -13 276 12 12 87 15 125 5 12 -4 29 -19 38 -35 25 -49 34 45 | -34 34 56 0 47 -3 85 -6 85 -3 0 -19 -14 -34 -30 -27 -29 -32 -31 -97 -28 46 | l-68 3 4 130 c2 72 8 136 13 143 13 16 158 16 192 0 15 -6 31 -26 38 -45 17 47 | -46 38 -43 38 6 0 22 -4 51 -10 65 l-10 26 -225 0 c-191 0 -225 -2 -225 -15z"/> 48 | <path d="M1194 2510 c-373 -38 -717 -241 -912 -538 -217 -331 -238 -755 -53 49 | -1118 161 -319 470 -547 805 -593 141 -20 436 -10 586 20 30 6 91 24 135 41 50 | 158 58 151 53 184 132 32 79 81 263 81 308 0 16 -5 38 -11 49 -10 19 -11 19 51 | -49 -2 -29 -16 -52 -44 -92 -112 -133 -225 -325 -337 -578 -337 -121 0 -222 52 | 25 -333 82 -107 55 -259 205 -329 324 -210 359 -245 805 -90 1137 185 396 549 53 | 579 947 477 165 -42 244 -104 314 -245 16 -33 179 -460 361 -950 183 -490 339 54 | -900 347 -913 19 -31 33 -19 66 60 14 35 179 437 367 893 188 457 353 850 367 55 | 875 80 140 190 237 308 272 38 11 80 27 93 34 27 17 29 50 4 63 -20 11 -835 7 56 | -864 -4 -50 -19 -16 -63 68 -90 99 -31 183 -140 192 -249 4 -48 -12 -91 -231 57 | -632 -130 -320 -241 -591 -249 -603 -17 -27 -34 -27 -52 2 -8 12 -110 274 58 | -227 582 l-213 560 0 85 c-1 76 2 90 29 139 34 61 74 91 159 121 68 23 86 36 59 | 86 60 0 36 -55 42 -293 35 -210 -6 -431 3 -587 24 -109 15 -251 19 -336 11z"/> 60 | </g> 61 | </svg> 62 | -------------------------------------------------------------------------------- /docs/assets/images/simple-cv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plain-plain-text/simple-cv/6684cc83d8a55ee2013ee2c5b7f17d88e6fe05c3/docs/assets/images/simple-cv.png -------------------------------------------------------------------------------- /docs/assets/js/cv.js: -------------------------------------------------------------------------------- 1 | // If the navbar is fixed-top, we need to push the container down, etc. 2 | if($(".fixed-top").length){ 3 | $("#cvBody").css("margin-top", $("#navbar").height() + $(".fixed-top").data("margin") + "px"); 4 | } 5 | if($(".fixed-bottom").length){ 6 | $("#cvBody").css("margin-bottom", $("#navbar").height() + $(".fixed-bottom").data("margin") + "px"); 7 | } 8 | 9 | if($(window).width() > 575){ 10 | $("#widgets").removeClass("w-50").addClass("w-25"); 11 | } 12 | 13 | // Build the dropdown. 14 | $("#navList").html(() => { 15 | let list = ""; 16 | $("h2").each(function(){ // can't use => because of setting this. 17 | list = list + "<li class='nav-item'>\n"; 18 | list = list + "<a class='nav-link' onclick='closeDropdown()' href='#" + $( this ).attr("id") + "'>"; 19 | list = list + $( this ).html() + "</a>\n</li>\n"; 20 | }); 21 | return list; 22 | }); 23 | 24 | // always close responsive nav after click 25 | function closeDropdown(){ 26 | $(".navbar-toggler:visible").click(); 27 | } 28 | 29 | // replace \LaTeX 30 | $("body:contains('\LaTeX')").html(function(_, html){ return html.replace("\\LaTeX", "<span class='latex'>L<sup>A</sup>T<sub>E</sub>X</span>"); }); 31 | 32 | 33 | function fetchHeader(url, wch) { 34 | try { 35 | var req=new XMLHttpRequest(); 36 | req.open("HEAD", url, false); 37 | req.send(null); 38 | if(req.status === 200){ 39 | return req.getResponseHeader(wch); 40 | } 41 | else { return "Failed to get 200 status"; } 42 | } catch(er) { 43 | return "Failed to get date." 44 | } 45 | } 46 | 47 | let lastMod = fetchHeader(location.href, "Last-Modified"); 48 | $("#last-modified").html("<small>Last Modified: " + lastMod.replace(/ \S+ \S+$/, "</small>")); 49 | 50 | -------------------------------------------------------------------------------- /docs/browserconfig.xml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <browserconfig> 3 | <msapplication> 4 | <tile> 5 | <square150x150logo src="./assets/images/mstile-150x150.png"/> 6 | <TileColor>#da532c</TileColor> 7 | </tile> 8 | </msapplication> 9 | </browserconfig> 10 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE html> 2 | <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 3 | <head> 4 | <meta charset="utf-8" /> 5 | <meta name="generator" content="pandoc" /> 6 | <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> 7 | <meta name="author" content="Moacir P. de Sá Pereira" /> 8 | <meta name="author" content="Henry Walton Jones, Jr." /> 9 | <meta name="DC.creator" content="Sá Pereira, Moacir P. de" /> 10 | <meta name="DC.creator" content="Jones, Henry Walton" /> 11 | <meta name="DC.contributor" content="Sá Pereira, Moacir P." /> 12 | <meta name="DC.title" content="Simple CV" /> 13 | <meta property="og:title" content="Simple CV" /> 14 | <meta property="og:site_name" content="Simple CV" /> 15 | <meta name="DC.type" content="Text" /> 16 | <meta name="DC.date" content="2019-02-06" /> 17 | <meta property="og:type" content="website" /> 18 | <meta name="DC.created" content="2018-04-18" /> 19 | <link rel="canonical" href="https://muziejus.github.io/simple-cv/" /> 20 | <meta property="og:url" content="https://muziejus.github.io/simple-cv/" /> 21 | <meta name="DC.description" content="A Curriculum Vitæ created using the “simple-cv” package, available at https://github.com/muziejus/simple-cv" /> 22 | <meta property="og:description" content="A Curriculum Vitæ created using the “simple-cv” package, available at https://github.com/muziejus/simple-cv" /> 23 | <meta name="twitter:description" content="A Curriculum Vitæ created using the “simple-cv” package, available at https://github.com/muziejus/simple-cv" /> 24 | <meta name="twitter:creator" content="@IndianaJones" /> 25 | <meta property="og:image" content="https://muziejus.github.io/simple-cv/assets/images/simple-cv.png" /> 26 | <meta property="og:image:type" content="image/png" /> 27 | <meta property="og:image:height" content="384" /> 28 | <meta property="og:image:width" content="384" /> 29 | <meta name="twitter:image" content="https://muziejus.github.io/simple-cv/assets/images/simple-cv.png" /> 30 | <meta name="dcterms.date" content="2019-02-06" /> 31 | <meta name="twitter:card" content="summary" /> 32 | <meta name="keywords" content="Archæology, anti-fascism, colonial exploitation" /> 33 | <link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png"> 34 | <link rel="icon" type="image/png" sizes="32x32" href="./assets/images/favicon-32x32.png"> 35 | <link rel="icon" type="image/png" sizes="16x16" href="./assets/images/favicon-16x16.png"> 36 | <link rel="manifest" href="./site.webmanifest"> 37 | <link rel="mask-icon" href="./assets/images/safari-pinned-tab.svg" color="#5bbad5"> 38 | <meta name="msapplication-TileColor" content="#da532c"> 39 | <meta name="theme-color" content="#ffffff"> 40 | <title>Henry Walton Jones, Jr. CV 41 | 42 | 43 | 44 | 45 | 48 | 49 | 52 | 53 | 56 | 105 | 106 | 109 | 110 | 111 | 121 |
122 |
123 |
124 |
125 |

Contact Information

126 |
127 |
128 | Brody Hall 134
Marshall College
Bedford, CT 0649x 129 |
130 |
131 | 132 | +1 860 555-5555
133 | 134 | hwjones@marshall-ct.edu
135 | 136 | archaeology.marshall-ct.edu/faculty/jones-henry/
137 | 138 | @IndianaJones
139 | 140 | @IndianaJones 141 |
142 |
143 |

Citizenship: 144 | United States of America and Aramathea 145 |

146 | 147 |

Fields of Specialization

148 |

Ancient relics, imperial theft of cultural patrimony, Grail lore, anti-fascism, masculinist archæology, Celtic mythology, Herpetology.

149 |

Education

150 | 157 |

Academic Appointments

158 | 167 |

Selected Publications

168 | 172 |

Invited Lectures

173 | 183 |

Selected Teaching

184 | 196 | 197 | 203 |

Skills

204 | 208 |

Languages

209 | 215 |
216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | -------------------------------------------------------------------------------- /docs/site.webmanifest: -------------------------------------------------------------------------------- 1 | { 2 | "name": "", 3 | "short_name": "", 4 | "icons": [ 5 | { 6 | "src": "./assets/images/android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "./assets/images/android-chrome-384x384.png", 12 | "sizes": "384x384", 13 | "type": "image/png" 14 | } 15 | ], 16 | "theme_color": "#ffffff", 17 | "background_color": "#ffffff", 18 | "display": "standalone" 19 | } 20 | -------------------------------------------------------------------------------- /metadata/format.yml: -------------------------------------------------------------------------------- 1 | ############################ 2 | ## format.yml holds the main options for formatting. 3 | ############################ 4 | # 5 | # 6 | ## General options. These are all required. 7 | title: "Henry Walton Jones, Jr. CV" # This is for the pdf metadata and in html 8 | author: 9 | - Moacir P. de Sá Pereira # This is the *author*, not the person, though it’s likely the same. 10 | - Henry Walton Jones, Jr. 11 | author-lastname-first: # Same as above, but for Dublin Core metadata 12 | - "Sá Pereira, Moacir P. de" 13 | - "Jones, Henry Walton" 14 | mode: markdown # or yaml. Yaml mode, however, is a future feature. 15 | contact-information: Contact Information # The text for the contact information header. 16 | markers: # The glyphs that begin lists 17 | level-1: "•" # First level marker in a list. 18 | level-2: "-" # Second level marker. 19 | level-3: "*" # Third level. 20 | -------------------------------------------------------------------------------- /metadata/html-options.yml: -------------------------------------------------------------------------------- 1 | ############################ 2 | ## html-options.yml holds the HTML options 3 | ############################ 4 | # 5 | # 6 | # headshot-url: "https://i.imgur.com/Iz8zuDY.jpg" # Experimental 7 | lang: en # document language. 8 | fontawesome: true # whether to include fontawesome glyphs on the webpage. 9 | #### For colors, please see: https://www.w3schools.com/colors/colors_picker.asp 10 | #### Hex values ("#nnnnnn") and rgb values ("rgb(n,n,n)") are allowed. 11 | ## 12 | #### If you would like to adjust the opacity, use rgba(), where the fourth term is 13 | #### an opacity, so "rgba(255, 0, 0, 0.75)" is bright red at 75% opacity. 14 | ## 15 | #### The colors provided as examples are a joke. I like Bootstrap’s defaults. 16 | # background-color: "#66ffff" # This must be in quotes. 17 | navbar: # comment out this entire section to disable the navbar 18 | background: light # or dark, primary, secondary, success, danger, warning, or info 19 | text: light # or dark. "light" is dark text for light bkgds & "dark" the inverse. 20 | position: default # or fixed-top, fixed-bottom, or sticky-top 21 | margin: 20 # pixels between navbar and content. 22 | # background-color: "#ff99ff" # This must be in quotes and overrides "background" above. 23 | html-fonts: # comment out this entire section to use default fonts 24 | body: # If you want just one custom font for everything, set only this one. 25 | type: sans-serif 26 | name: Raleway 27 | url: https://fonts.googleapis.com/css?family=Raleway 28 | headings: 29 | type: serif # or sans-serif or monospace 30 | name: Cormorant Garamond 31 | url: https://fonts.googleapis.com/css?family=Cormorant+Garamond 32 | navbar: 33 | type: serif 34 | name: Cormorant Garamond 35 | url: https://fonts.googleapis.com/css?family=Cormorant+Garamond 36 | # colors: 37 | # body: "#cc0000" # This must be in quotes; 38 | # headings: "#00cc00" # This must be in quotes; 39 | # display: "#ffffff" # This must be in quotes; 40 | # navbar-items: "#00cccc" # This must be in quotes; 41 | # links: 42 | # regular: "#cccc00" # This must be in quotes; 43 | # hover: "#cc00cc" # This must be in quotes; 44 | html-smallcaps-headings: true # To make headings smallcaps 45 | html-bold-as-smallcaps: true # To make Markdown text typed **like this** become small caps. 46 | keywords: 47 | - Archæology 48 | - anti-fascism 49 | - colonial exploitation 50 | last-modified: true 51 | meta-title: Simple CV 52 | canonical-url: "https://muziejus.github.io/simple-cv/" # Change this to your url. 53 | date-created: 2018-04-18 54 | description: >- 55 | A Curriculum Vitæ created using the “simple-cv” package, 56 | available at https://github.com/muziejus/simple-cv 57 | og-image: 58 | url: https://muziejus.github.io/simple-cv/assets/images/simple-cv.png 59 | type: image/png 60 | height: 384 61 | width: 384 62 | -------------------------------------------------------------------------------- /metadata/pdf-options.yml: -------------------------------------------------------------------------------- 1 | ############################ 2 | ## pdf-options.yml holds the PDF options 3 | ############################ 4 | # 5 | # 6 | filename: H-W-Jones # no '.pdf' needed. 7 | footer: # comment out this entire section to disable the footer 8 | last-modified: true 9 | display-author: true 10 | regular-font: Times New Roman # please see Fonts-README.md for more information 11 | headings: overlapped # section headings jut out to the left a bit. The other option, “margin,” moves the headings to the left on their own. 12 | pdf-smallcaps-headings: true # To make headings use the smallcaps font. 13 | pdf-bold-as-smallcaps: true # To make Markdown text typed **like this** become small caps. 14 | # papersize: a4 # “letter” is the default. 15 | typesize: 11pt # Default text size. 16 | left-margin: .5in 17 | # right-margin: .5in # Only needed for unequal margins 18 | top-margin: .5in # Minimum of about .25in or 2cm 19 | # bottom-margin: 2in # Only for unequal margins. Useful if footer is too low. 20 | display-style: line # The style for the top of the page. This can be any memoir chapter style as demonstrated in 10.5 of the Memoir manual: http://texdoc.net/texmf-dist/doc/latex/memoir/memman.pdf. Reasonable values include: bianchi, bringhurst, chappell, crosshead, demo2, dowding, lyhne, and wilsondob. Some of these styles will clobber your font choices. “line” is a style I created based on the res.cls line option. 21 | -------------------------------------------------------------------------------- /metadata/personal.yml: -------------------------------------------------------------------------------- 1 | ############################ 2 | # personal.yml holds personal information 3 | ############################ 4 | # 5 | # Required value: 6 | name: Henry Walton Jones, Jr. # full name 7 | # 8 | # Optional values: 9 | # These can be commented out or deleted. 10 | display-name: Henry Walton “Indiana” Jones, Jr. # name to be displayed. 11 | date-of-birth: 1899-07-01 # in YYYY-MM-DD format 12 | citizenships: 13 | - United States of America 14 | - Aramathea 15 | address: 16 | - Brody Hall 134 17 | - Marshall College 18 | - Bedford, CT 0649x 19 | telephone: +1 860 555-5555 20 | email: hwjones@marshall-ct.edu 21 | url: archaeology.marshall-ct.edu/faculty/jones-henry/ 22 | twitter: IndianaJones 23 | github: IndianaJones 24 | -------------------------------------------------------------------------------- /process.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | Based on https://github.com/plain-plain-text/simple-cv/blob/master/process.sh 3 | 4 | This PowerShell script processes the files in this repository to generate 5 | a few temporary files and a final pdf and html file for a CV. 6 | 7 | If you cannot get this script to run on your local computer, as an initial, security-risky 8 | solution, run this command in Powershell: 9 | 10 | Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser 11 | 12 | At the end of your CV-ing, you can set the policy back to the Windows default: 13 | 14 | Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope CurrentUser 15 | 16 | Alternatively, you can run powershell itself with different execution policy. 17 | To do that, open a command prompt and run: 18 | 19 | powershell -ExecutionPolicy Unrestricted 20 | 21 | For the duration of that shell, the policy will be unrestricted. 22 | #> 23 | 24 | # 1. Reset tmp directory 25 | if(!(Test-Path -Path .\tmp)){ 26 | New-Item -ItemType directory -Path .\tmp 27 | } else { 28 | Get-ChildItem -Path .\tmp -Include *.* -File -Recurse | foreach { $_.Delete()} 29 | } 30 | 31 | # 2. collapse metadata/yml files into one and add a --- for the first line. 32 | "---" | Out-File .\tmp\metadata.yml -Encoding utf8 33 | $metadata = Get-Content .\metadata\*.yml -Encoding utf8 34 | Add-Content .\tmp\metadata.yml $metadata 35 | 36 | # 3. Set date. 37 | $datestring = "date: " + (Get-Date -Format "yyyy-MM-dd") 38 | Add-Content .\tmp\metadata.yml $datestring 39 | 40 | <# 41 | # 4. Set templates 42 | This is a future feature that takes the `mode` key and sets 43 | the CV to markdown or yaml depending. 44 | #> 45 | 46 | # 5. Set headings style 47 | if(cat .\tmp\metadata.yml | Select-String -Pattern "^\s*headings: margin"){ 48 | Add-Content .\tmp\metadata.yml "margin-heading: true" 49 | } 50 | 51 | # 6. Close metadata block. 52 | Add-Content .\tmp\metadata.yml "---" 53 | 54 | # 7. Concatenate sections into one large Markdown file. 55 | if(Test-Path -Path sections.txt -PathType Leaf){ 56 | " " | Out-File .\tmp\raw-md.md -Encoding utf8 57 | cat .\sections.txt | 58 | Select-String -Pattern "^[^#]" | 59 | foreach { 60 | $md_file = cat "sections\$($_).md" -Encoding utf8 61 | Add-Content .\tmp\raw-md.md $md_file 62 | Add-Content .\tmp\raw-md.md " " 63 | } 64 | } else { 65 | "Could not find file 'sections.txt'" 66 | exit 67 | } 68 | 69 | # 8. Grab filename. 70 | if(cat .\tmp\metadata.yml | Select-String -Pattern "^\s*filename:"){ 71 | $pdf_filename = (Get-Content .\tmp\metadata.yml | 72 | Select-String -Pattern "^\s*filename:" | 73 | Out-String).Split(" ")[1] 74 | } else { 75 | $pdf_filename = "CV" 76 | } 77 | 78 | # 9. Invoke pandoc 79 | "Generating .tex, .pdf, and .html files." 80 | $pandoc_tex_args = @( 81 | "--standalone", 82 | "--template=templates\tex-windows.tex", 83 | "--metadata-file=tmp\metadata.yml", 84 | "--from=markdown+yaml_metadata_block+raw_tex", 85 | "--output=tmp\out.tex", 86 | ".\tmp\raw-md.md" 87 | ) 88 | $pandoc_html_args = @( 89 | "--standalone", 90 | "--template=templates\html.html", 91 | "--metadata-file=tmp\metadata.yml", 92 | "--from=markdown+yaml_metadata_block+raw_tex", 93 | "--output=docs\index.html", 94 | ".\tmp\raw-md.md" 95 | ) 96 | $pandoc_pdf_args = @( 97 | "--standalone", 98 | "--template=templates\tex-windows.tex", 99 | "--pdf-engine=xelatex", 100 | "--metadata-file=tmp\metadata.yml", 101 | "--from=markdown+yaml_metadata_block+raw_tex", 102 | "--output=docs\$($pdf_filename).pdf", 103 | ".\tmp\raw-md.md" 104 | ) 105 | pandoc $pandoc_tex_args 106 | ".tex saved as .\tmp\out.tex" 107 | pandoc $pandoc_html_args 108 | ".html saved as .\docs\index.html" 109 | pandoc $pandoc_pdf_args 110 | ".pdf saved as .\docs\$($pdf_filename).pdf" 111 | -------------------------------------------------------------------------------- /process.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Based on https://github.com/denten-bin/write-support 3 | 4 | # This shell script processes the files in this repository to generate a few 5 | # temporary files and a final pdf and html file for a CV. 6 | 7 | # 1. reset tmp directory. 8 | if [[ -d tmp ]]; then 9 | # The directory exists, so empty its contents 10 | rm tmp/* 11 | else 12 | mkdir tmp 13 | fi 14 | 15 | # 2. collapse metadata/yml files into one and add a --- for the first line. 16 | cat metadata/*.yml | sed $'1s/^/---\\\n/' > tmp/metadata.yml 17 | 18 | # 3. Set date and close YAML block. 19 | echo date: `date +%F` >> tmp/metadata.yml 20 | 21 | # 4. Set templates 22 | # This is a future feature that takes the `mode` key and sets 23 | # the CV to markdown or yaml depending. 24 | 25 | # 5. Set headings style 26 | if grep -q "^\s*headings: margin" tmp/metadata.yml; then 27 | echo "margin-heading: true" >> tmp/metadata.yml 28 | fi 29 | 30 | # 6. Close metadata block. 31 | echo --- >> tmp/metadata.yml 32 | 33 | # 7. Make sections list 34 | if [[ -f sections.txt ]]; then 35 | sections=`grep "^[^#]" sections.txt | sed -n 's#^\(.*\)$#sections/\1.md#p' | tr '\n' ' '` 36 | else 37 | echo "Could not find file “sections.txt”" 38 | exit 1 39 | fi 40 | 41 | # 8. Grab filename. 42 | if grep -q "^\s*filename:" tmp/metadata.yml; then 43 | pdf_filename=`grep "^\s*filename:" tmp/metadata.yml | awk -F ' ' '{print $2;}'` 44 | else 45 | pdf_filename=CV 46 | fi 47 | 48 | # 9. Invoke pandoc 49 | echo "Generating .tex, .pdf, and .html files." 50 | pandoc -sr markdown+yaml_metadata_block+raw_tex \ 51 | --template=templates/tex.tex \ 52 | --metadata-file=tmp/metadata.yml \ 53 | $sections \ 54 | -o tmp/out.tex 55 | echo .tex saved as tmp/out.tex 56 | pandoc -sr markdown+yaml_metadata_block-raw_tex \ 57 | --template=templates/html.html \ 58 | --metadata-file=tmp/metadata.yml \ 59 | $sections \ 60 | -o docs/index.html 61 | echo .html saved as docs/index.html 62 | pandoc -sr markdown+yaml_metadata_block+raw_tex \ 63 | --pdf-engine=xelatex \ 64 | --template=templates/tex.tex \ 65 | --metadata-file=tmp/metadata.yml \ 66 | $sections \ 67 | -o "docs/$pdf_filename.pdf" 68 | echo .pdf saved as docs/"$pdf_filename".pdf 69 | -------------------------------------------------------------------------------- /sections.txt: -------------------------------------------------------------------------------- 1 | # This file lists the order of the CV sections. Each line 2 | # corresponds to a file in sections/ and are in order. Hence, 3 | # the first one, “fields,” refers to a file called 4 | # “sections/fields.md.” 5 | fields 6 | education 7 | appointments 8 | publications 9 | lectures 10 | teaching 11 | service 12 | skills 13 | languages 14 | -------------------------------------------------------------------------------- /sections/appointments.md: -------------------------------------------------------------------------------- 1 | ## Academic Appointments 2 | 3 | * Marcus Brody Distinguished Service Professor, Archæology, **Marshall College**, 4 | Bedford, CT 1950–present 5 | * Professor, Archæology, **Barnett College**, Fairfield, NY 1937–1950 6 | * Associate Professor, Archæology, **Marshall College**, Bedford, CT 1935–1937 7 | * Assistant Professor, Archæology, **Princeton University**, 1932–1935 8 | * Visiting Assistant Professor, Medieval Literature, **Princeton University**, 1930 9 | * Visiting Scholar, Archæology, **Marshall College**, 1925 10 | * Instructor, Celtic Mythology, **London University**, 1925–1927 11 | -------------------------------------------------------------------------------- /sections/education.md: -------------------------------------------------------------------------------- 1 | ## Education 2 | 3 | * **Sorbonne**, PhD, 1925 4 | * **University of Chicago**, AB, 1922, Archæology 5 | * Adviser: Abner Ravenwood 6 | -------------------------------------------------------------------------------- /sections/fields.md: -------------------------------------------------------------------------------- 1 | ## Fields of Specialization 2 | 3 | Ancient relics, imperial theft of cultural patrimony, Grail lore, 4 | anti-fascism, masculinist archæology, Celtic mythology, Herpetology. 5 | -------------------------------------------------------------------------------- /sections/languages.md: -------------------------------------------------------------------------------- 1 | ## Languages 2 | 3 | * Native fluency: English 4 | * Near-native fluency: French, German, Italian, Spanish, Russian, Swedish, 5 | Greek, Arabic, Turkish, Vietnamese, Swahili, Latin, Nepalese and Chinese. 6 | * Reading and writing: Hindi and Sinhalese. 7 | * Foundations: Mayan and Quechua. 8 | -------------------------------------------------------------------------------- /sections/lectures.md: -------------------------------------------------------------------------------- 1 | ## Invited Lectures 2 | 3 | * “How I Found the Ark.” 4 | * **Princeton University**, 1948 5 | * “How I Lost the Ark.” 6 | * **Princeton University**, 1942 7 | -------------------------------------------------------------------------------- /sections/publications.md: -------------------------------------------------------------------------------- 1 | ## Selected Publications 2 | 3 | * Jones, Henry W. Jr. _How I Got Rich off Colonialism_. Princeton, NJ: 4 | Princeton University Press, 1944. 5 | * Jones, Henry W. Jr. “It Belongs in a Museum.” _Journal of Patrimony 6 | Exploitation_ 10, no. 1 (1944), 793–843. 7 | -------------------------------------------------------------------------------- /sections/service.md: -------------------------------------------------------------------------------- 1 | ## Service & Related Professional Activities 2 | 3 | * Gateway Project 4 | * Boy Scouts of America 5 | * Anti-fascists in Archæology 6 | * University of Chicago Alumni Network 7 | -------------------------------------------------------------------------------- /sections/skills.md: -------------------------------------------------------------------------------- 1 | ## Skills 2 | 3 | * \LaTeX 4 | * Bullwhip 5 | -------------------------------------------------------------------------------- /sections/teaching.md: -------------------------------------------------------------------------------- 1 | ## Selected Teaching 2 | 3 | * **Marshall College** 4 | * Archæology 101 - Discovering the Past 5 | * Archæology 223 6 | * Archæology 225 - Ancient Egypt 7 | * **Barnett College** 8 | * Archæology 101 9 | -------------------------------------------------------------------------------- /templates/html.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE html> 2 | <html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"> 3 | <head> 4 | <meta charset="utf-8" /> 5 | <meta name="generator" content="pandoc" /> 6 | <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> 7 | $for(author)$ 8 | <meta name="author" content="$author$" /> 9 | $endfor$ 10 | $for(author-lastname-first)$ 11 | <meta name="DC.creator" content="$author-lastname-first$" /> 12 | $endfor$ 13 | <meta name="DC.contributor" content="Sá Pereira, Moacir P." /> 14 | <meta name="DC.title" content="$meta-title$" /> 15 | <meta property="og:title" content="$meta-title$" /> 16 | <meta property="og:site_name" content="$meta-title$" /> 17 | <meta name="DC.type" content="Text" /> 18 | <meta name="DC.date" content="$date$" /> 19 | <meta property="og:type" content="website" /> 20 | $if(date-created)$ 21 | <meta name="DC.created" content="$date-created$" /> 22 | $endif$ 23 | $if(canonical-url)$ 24 | <link rel="canonical" href="$canonical-url$" /> 25 | <meta property="og:url" content="$canonical-url$" /> 26 | $endif$ 27 | $if(description)$ 28 | <meta name="DC.description" content="$description$" /> 29 | <meta property="og:description" content="$description$" /> 30 | <meta name="twitter:description" content="$description$" /> 31 | $endif$ 32 | $if(twitter)$ 33 | <meta name="twitter:creator" content="@$twitter$" /> 34 | $endif$ 35 | $if(og-image)$ 36 | <meta property="og:image" content="$og-image.url$" /> 37 | <meta property="og:image:type" content="$og-image.type$" /> 38 | <meta property="og:image:height" content="$og-image.height$" /> 39 | <meta property="og:image:width" content="$og-image.width$" /> 40 | <meta name="twitter:image" content="$og-image.url$" /> 41 | $endif$ 42 | <meta name="dcterms.date" content="$date$" /> 43 | <meta name="twitter:card" content="summary" /> 44 | $if(keywords)$ 45 | <meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" /> 46 | $endif$ 47 | <link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png"> 48 | <link rel="icon" type="image/png" sizes="32x32" href="./assets/images/favicon-32x32.png"> 49 | <link rel="icon" type="image/png" sizes="16x16" href="./assets/images/favicon-16x16.png"> 50 | <link rel="manifest" href="./site.webmanifest"> 51 | <link rel="mask-icon" href="./assets/images/safari-pinned-tab.svg" color="#5bbad5"> 52 | <meta name="msapplication-TileColor" content="#da532c"> 53 | <meta name="theme-color" content="#ffffff"> 54 | <title>$title$ 55 | 56 | $if(fontawesome)$ 57 | 58 | $endif$ 59 | 60 | $if(html-fonts)$ 61 | $if(html-fonts.body)$ 62 | 63 | 66 | $endif$ 67 | $if(html-fonts.headings)$ 68 | 69 | 72 | $endif$ 73 | $if(html-fonts.navbar)$ 74 | 75 | 78 | $endif$ 79 | $endif$ 80 | 182 | 183 | 186 | 187 | 188 | $if(navbar)$ 189 | 199 |
200 | $else$ 201 | 202 |
203 |

$if(display-name)$$display-name$$else$$name$$endif$

204 | $endif$ 205 |
206 | $if(last-modified)$ 207 |
208 | $endif$ 209 | $if(headshot-url)$ 210 | $if(display-name)$$display-name$$else$$name$$endif$ 211 | $endif$ 212 |
213 |

$contact-information$

214 |
215 |
216 | $for(address)$$address$$sep$
$endfor$ 217 |
218 |
219 | $if(telephone)$ 220 | $if(fontawesome)$ 221 | 222 | $else$ 223 | Tel: 224 | $endif$ $telephone$
225 | $endif$ 226 | $if(email)$ 227 | $if(fontawesome)$ 228 | 229 | $else$ 230 | Email: 231 | $endif$ $email$
232 | $endif$ 233 | $if(url)$ 234 | $if(fontawesome)$ 235 | 236 | $else$ 237 | Web: 238 | $endif$ $url$
239 | $endif$ 240 | $if(twitter)$ 241 | $if(fontawesome)$ 242 | 243 | $else$ 244 | Twitter: 245 | $endif$ @$twitter$
246 | $endif$ 247 | $if(github)$ 248 | $if(fontawesome)$ 249 | 250 | $else$ 251 | GitHub: 252 | $endif$ @$github$ 253 | $endif$ 254 |
255 |
256 | $if(citizenships)$ 257 |

Citizenship: 258 | $for(citizenships)$$citizenships$$sep$ and $endfor$ 259 |

260 | $endif$ 261 | 262 | $body$ 263 |
264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | -------------------------------------------------------------------------------- /templates/tex-windows.tex: -------------------------------------------------------------------------------- 1 | 2 | %%% CV template by Moacir P. de Sá Pereira as part of the Simple-CV project: 3 | %%% 4 | %%% http://plain-plain-text.org/projects/simple-cv/ 5 | 6 | \documentclass[% 7 | $if(papersize)$ 8 | $papersize$paper, 9 | $endif$ 10 | $typesize$, 11 | oneside 12 | ]{memoir} 13 | 14 | \usepackage{etoolbox} 15 | \usepackage{enumitem} 16 | %%% Font declarations. 17 | %%% please see Fonts-README.md in this repo for more information. 18 | \usepackage{fontspec} % Choose fonts intelligently 19 | %%% Fontspec looks for the font set in data/pdf-options.yml. 20 | %%% If that font does not exist, it will complain and default to Latin Modern. 21 | %%% 22 | %%% Fonts are fiddly, so the pdf-smallcaps-headings and pdf-bold-as-smallcaps 23 | %%% settings in data/pdf-options.yml may not work as expected. 24 | %%% 25 | %%% Included below are some advanced OpenType features that work well with 26 | %%% EB Garamond. You can download EB Garamond here: 27 | %%% 28 | %%% http://www.georgduffner.at/ebgaramond/download.html 29 | %%% 30 | %%% For more information on the OpenType features available for declaration, 31 | %%% please see part IV of the Fontspec documentation, available here: 32 | %%% 33 | %%% http://mirrors.ctan.org/macros/latex/contrib/fontspec/fontspec.pdf 34 | $if(regular-font)$ 35 | %%% Removed font checking because it would not work with Windows. 36 | \setmainfont{$regular-font$}[% 37 | $if(pdf-bold-as-smallcaps)$ 38 | BoldFont = $regular-font$ , 39 | BoldFeatures = {Letters=SmallCaps} , 40 | $endif$ 41 | %%% These features may not work with all fonts. 42 | % Ligatures=Historic , 43 | % Ligatures=Rare , 44 | % ItalicFeatures={Style=Swash}, 45 | Mapping=tex-text 46 | ] 47 | $endif$ 48 | 49 | %%% PDF generation. 50 | \usepackage[ breaklinks=true, hidelinks ]{hyperref} 51 | \hypersetup{% 52 | pdftitle={$title$}, 53 | pdfauthor={$for(author)$$author$$sep$, $endfor$}, 54 | pdfborder={0 0 0}, 55 | breaklinks=true} 56 | 57 | %%% Layout of the page 58 | $if(left-margin)$ 59 | \setlrmarginsandblock{$left-margin$}$if(right-margin)${$right-margin$}$else${*}$endif${*} 60 | $endif$ 61 | $if(top-margin)$ 62 | \setulmarginsandblock{$top-margin$}$if(bottom-margin)${$bottom-margin$}$else${*}$endif${*} 63 | $endif$ 64 | \setheadfoot{0pt}{\baselineskip} %%% footer is a baseline tall. 65 | \setheaderspaces{*}{0pt}{*} 66 | 67 | %%% Define the (default) chapter style and choose the chapter 68 | \makechapterstyle{line}{% 69 | \setlength{\beforechapskip}{0pt} 70 | \setlength{\afterchapskip}{0pt} 71 | \renewcommand*{\chaptitlefont}{\Large\scshape} 72 | \renewcommand*{\printchaptertitle}[1]{% 73 | \chaptitlefont ##1 \smallskip\hrule\vspace{\baselineskip} 74 | } 75 | } 76 | \chapterstyle{$display-style$} 77 | 78 | %%% Section styling. We assume two, margin and overlapping. 79 | \setsecnumdepth{subsubsection} %%% Keep the section counters running (see below). 80 | %%% This gets complicated, because we need the numbers to roll over so that the 81 | %%% subsections have an appropriate beforeskip. 82 | $if(margin-heading)$ 83 | %%% margin-heading is set in the shell script. 84 | \newcommand{\marginbox}[1]{%%% Build the small margin header box. 85 | %%% Fonts are fiddly, so the pdf-smallcaps-headings and pdf-bold-as-smallcaps 86 | %%% settings in data/pdf-options.yml may not work as expected. 87 | $if(pdf-smallcaps-headings)$ 88 | \parbox[t][0pt]{9em}{\parbox[t][0pt]{7em}{\scshape\normalsize \raggedright{} #1}} 89 | $else$ 90 | \parbox[t][0pt]{9em}{\parbox[t][0pt]{7em}{\raggedright{} #1}} 91 | $endif$ 92 | } 93 | \newcommand{\marginhead}[1]{%%% Pull the margin header into the margin. 94 | {\hspace{-9em}{\marginbox{#1}}} 95 | } 96 | \setsecindent{0em} %%% no indent in the margin 97 | \setaftersecskip{0em} %%% no space after the heading 98 | \setsecheadstyle{\marginhead} 99 | \setlength{\parindent}{0em} %%% no indent for paragraphs 100 | $else$ 101 | %%% using regular headings mode 102 | $if(pdf-smallcaps-headings)$ 103 | \setsecheadstyle{\large\scshape} 104 | $else$ 105 | \setsecheadstyle{\large} 106 | $endif$ 107 | \setaftersecskip{\baselineskip} %%% add a blank line after the heading 108 | \setlength{\parindent}{3em} %%% indent paragraphs 109 | $endif$ 110 | %%% Blank out all printed counters and their teeny spaces. Vital both for 111 | %%% sections and subsections. 112 | \makeatletter %%% enter into macro mode 113 | \renewcommand{\@seccntformat}[1]{} 114 | \makeatother %%% exit macro mode. 115 | 116 | %%% Subsection styling. 117 | %%% Should someone (me) include subsections in their CV, things get complex. 118 | 119 | \setsubsecheadstyle{\normalsize} %%% Subheads shouldn’t be big. 120 | \setaftersubsecskip{0em} %%% Subheads should have no space after them 121 | %%% New problem: \subsection should have no top margin, so it’s in line w/ the 122 | %%% section header. But if that’s the case, when a subsection appears later in 123 | %%% the section, it looks just like a regular line. We need subsection to have 124 | %%% conditional beforeskips, based on whether it’s the first subsection or not. 125 | \let\oldsubsection\subsection %%% to avoid recursion 126 | \renewcommand{\subsection}[1]{% 127 | \ifnumequal{\value{subsection}}{0} %%% If this is the first subsection 128 | {\setbeforesubsecskip{0em} \oldsubsection{#1}} %%% make beforeskip 0 129 | {\setbeforesubsecskip{\medskipamount} \oldsubsection{#1}} %%% else add a skip 130 | } 131 | $if(margin-heading)$ 132 | \setsubsecindent{0em} %%% In margin, subsection headings shouldn’t be indented 133 | $else$ 134 | \setsubsecindent{3em} %%% In overlapped, yes. 135 | $endif$ 136 | 137 | 138 | %%% List styling. 139 | %%% They behave differently based on margin or regular headings. 140 | \setlist[itemize]{nosep} %%% No gaps between list items. 141 | $if(margin-heading)$ 142 | \setlist[itemize,1]{leftmargin=!,labelwidth=1em,labelindent=0em} %%% Pull list all the way to the left. 143 | $else$ 144 | \setlist[itemize,1]{leftmargin=!,labelwidth=1em,labelindent=3em} %%% Push list in. 145 | $endif$ 146 | %%% And now the markers. 147 | $if(markers)$ 148 | \renewcommand{\labelitemi}{$markers.level-1$} 149 | \renewcommand{\labelitemii}{$markers.level-2$} 150 | \renewcommand{\labelitemiii}{$markers.level-3$} 151 | $endif$ 152 | 153 | \checkandfixthelayout 154 | 155 | %%% Format footer 156 | \copypagestyle{chapter}{plain} 157 | $if(footer)$ 158 | \makeoddhead{chapter}{}{}{} 159 | \makeoddfoot{chapter}{}{}{% 160 | $if(footer.display-author)$$for(author)$$author$$sep$, $endfor$,$endif$ $if(footer.last-modified)$\today,$endif$ \thepage} 161 | $else$ 162 | \makeoddhead{chapter}{}{}{} 163 | \makeoddfoot{chapter}{}{}{\thepage} 164 | $endif$ 165 | \pagestyle{chapter} 166 | 167 | %%% Redefine \section to tighten vertical space 168 | \let\oldsection\section 169 | \renewcommand{\section}[1]{% 170 | \oldsection{#1} 171 | \leavevmode 172 | \par 173 | \vspace{\dimexpr-\baselineskip-\parskip} 174 | } 175 | 176 | 177 | \begin{document} 178 | 179 | $if(display-name)$ 180 | \chapter*{$display-name$} 181 | $else$ 182 | \chapter*{$name$} 183 | $endif$ 184 | 185 | $if(margin-heading)$ 186 | \begin{adjustwidth*}{9em}{0em} 187 | \mbox{} 188 | $endif$ 189 | 190 | \hypertarget{contact-information}{% 191 | \section{$contact-information$}\label{contact-information}} 192 | \begin{minipage}[t]{0.3\textwidth} 193 | $for(address)$$address$$sep$\\ $endfor$ 194 | \end{minipage} 195 | \begin{minipage}[t]{0.7\textwidth} 196 | $if(telephone)$ 197 | {\textit{Tel:}} $telephone$ \\ 198 | $endif$ 199 | $if(email)$ 200 | {\textit{E-mail:}} $email$ \\ 201 | $endif$ 202 | $if(url)$ 203 | {\textit{Web:}} http://$url$ \\ 204 | $endif$ 205 | $if(twitter)$ 206 | {\textit{Twitter:}} \href{http://twitter.com/$twitter$}{@$twitter$} \\ 207 | $endif$ 208 | $if(github)$ 209 | {\textit{GitHub:}} \href{http://github.com/$github$}{@$github$} 210 | $endif$ 211 | \end{minipage} 212 | $if(citizenships)$ 213 | % \vspace{\baselineskip} 214 | \medskip%amount 215 | \par Citizenship: 216 | $for(citizenships)$$citizenships$$sep$ and $endfor$ 217 | $endif$ 218 | $body$ 219 | 220 | $if(margin-heading)$ 221 | \end{adjustwidth*} 222 | $endif$ 223 | \end{document} 224 | -------------------------------------------------------------------------------- /templates/tex.tex: -------------------------------------------------------------------------------- 1 | 2 | %%% CV template by Moacir P. de Sá Pereira as part of the Simple-CV project: 3 | %%% 4 | %%% http://plain-plain-text.org/projects/simple-cv/ 5 | 6 | \documentclass[% 7 | $if(papersize)$ 8 | $papersize$paper, 9 | $endif$ 10 | $typesize$, 11 | oneside 12 | ]{memoir} 13 | 14 | \usepackage{etoolbox} 15 | \usepackage{enumitem} 16 | %%% Font declarations. 17 | %%% please see Fonts-README.md in this repo for more information. 18 | \usepackage{fontspec} % Choose fonts intelligently 19 | %%% Fontspec looks for the font set in data/pdf-options.yml. 20 | %%% If that font does not exist, it will complain and default to Latin Modern. 21 | %%% 22 | %%% Fonts are fiddly, so the pdf-smallcaps-headings and pdf-bold-as-smallcaps 23 | %%% settings in data/pdf-options.yml may not work as expected. 24 | %%% 25 | %%% Included below are some advanced OpenType features that work well with 26 | %%% EB Garamond. You can download EB Garamond here: 27 | %%% 28 | %%% http://www.georgduffner.at/ebgaramond/download.html 29 | %%% 30 | %%% For more information on the OpenType features available for declaration, 31 | %%% please see part IV of the Fontspec documentation, available here: 32 | %%% 33 | %%% http://mirrors.ctan.org/macros/latex/contrib/fontspec/fontspec.pdf 34 | $if(regular-font)$ 35 | \IfFontExistsTF{$regular-font$}{% 36 | \setmainfont{$regular-font$}[% 37 | $if(pdf-bold-as-smallcaps)$ 38 | BoldFont = $regular-font$ , 39 | BoldFeatures = {Letters=SmallCaps} , 40 | $endif$ 41 | %%% These features may not work with all fonts. 42 | % Ligatures=Historic , 43 | % Ligatures=Rare , 44 | % ItalicFeatures={Style=Swash}, 45 | Mapping=tex-text 46 | ] 47 | }{} 48 | $endif$ 49 | 50 | %%% PDF generation. 51 | \usepackage[ breaklinks=true, hidelinks ]{hyperref} 52 | \hypersetup{% 53 | pdftitle={$title$}, 54 | pdfauthor={$for(author)$$author$$sep$, $endfor$}, 55 | pdfborder={0 0 0}, 56 | breaklinks=true} 57 | 58 | %%% Layout of the page 59 | $if(left-margin)$ 60 | \setlrmarginsandblock{$left-margin$}$if(right-margin)${$right-margin$}$else${*}$endif${*} 61 | $endif$ 62 | $if(top-margin)$ 63 | \setulmarginsandblock{$top-margin$}$if(bottom-margin)${$bottom-margin$}$else${*}$endif${*} 64 | $endif$ 65 | \setheadfoot{0pt}{\baselineskip} %%% footer is a baseline tall. 66 | \setheaderspaces{*}{0pt}{*} 67 | 68 | %%% Define the (default) chapter style and choose the chapter 69 | \makechapterstyle{line}{% 70 | \setlength{\beforechapskip}{0pt} 71 | \setlength{\afterchapskip}{0pt} 72 | \renewcommand*{\chaptitlefont}{\Large\scshape} 73 | \renewcommand*{\printchaptertitle}[1]{% 74 | \chaptitlefont ##1 \smallskip\hrule\vspace{\baselineskip} 75 | } 76 | } 77 | \chapterstyle{$display-style$} 78 | 79 | %%% Section styling. We assume two, margin and overlapping. 80 | \setsecnumdepth{subsubsection} %%% Keep the section counters running (see below). 81 | %%% This gets complicated, because we need the numbers to roll over so that the 82 | %%% subsections have an appropriate beforeskip. 83 | $if(margin-heading)$ 84 | %%% margin-heading is set in the shell script. 85 | \newcommand{\marginbox}[1]{%%% Build the small margin header box. 86 | %%% Fonts are fiddly, so the pdf-smallcaps-headings and pdf-bold-as-smallcaps 87 | %%% settings in data/pdf-options.yml may not work as expected. 88 | $if(pdf-smallcaps-headings)$ 89 | \parbox[t][0pt]{9em}{\parbox[t][0pt]{7em}{\scshape\normalsize \raggedright{} #1}} 90 | $else$ 91 | \parbox[t][0pt]{9em}{\parbox[t][0pt]{7em}{\raggedright{} #1}} 92 | $endif$ 93 | } 94 | \newcommand{\marginhead}[1]{%%% Pull the margin header into the margin. 95 | {\hspace{-9em}{\marginbox{#1}}} 96 | } 97 | \setsecindent{0em} %%% no indent in the margin 98 | \setaftersecskip{0em} %%% no space after the heading 99 | \setsecheadstyle{\marginhead} 100 | \setlength{\parindent}{0em} %%% no indent for paragraphs 101 | $else$ 102 | %%% using regular headings mode 103 | $if(pdf-smallcaps-headings)$ 104 | \setsecheadstyle{\large\scshape} 105 | $else$ 106 | \setsecheadstyle{\large} 107 | $endif$ 108 | \setaftersecskip{\baselineskip} %%% add a blank line after the heading 109 | \setlength{\parindent}{3em} %%% indent paragraphs 110 | $endif$ 111 | %%% Blank out all printed counters and their teeny spaces. Vital both for 112 | %%% sections and subsections. 113 | \makeatletter %%% enter into macro mode 114 | \renewcommand{\@seccntformat}[1]{} 115 | \makeatother %%% exit macro mode. 116 | 117 | %%% Subsection styling. 118 | %%% Should someone (me) include subsections in their CV, things get complex. 119 | 120 | \setsubsecheadstyle{\normalsize} %%% Subheads shouldn’t be big. 121 | \setaftersubsecskip{0em} %%% Subheads should have no space after them 122 | %%% New problem: \subsection should have no top margin, so it’s in line w/ the 123 | %%% section header. But if that’s the case, when a subsection appears later in 124 | %%% the section, it looks just like a regular line. We need subsection to have 125 | %%% conditional beforeskips, based on whether it’s the first subsection or not. 126 | \let\oldsubsection\subsection %%% to avoid recursion 127 | \renewcommand{\subsection}[1]{% 128 | \ifnumequal{\value{subsection}}{0} %%% If this is the first subsection 129 | {\setbeforesubsecskip{0em} \oldsubsection{#1}} %%% make beforeskip 0 130 | {\setbeforesubsecskip{\medskipamount} \oldsubsection{#1}} %%% else add a skip 131 | } 132 | $if(margin-heading)$ 133 | \setsubsecindent{0em} %%% In margin, subsection headings shouldn’t be indented 134 | $else$ 135 | \setsubsecindent{3em} %%% In overlapped, yes. 136 | $endif$ 137 | 138 | 139 | %%% List styling. 140 | %%% They behave differently based on margin or regular headings. 141 | \setlist[itemize]{nosep} %%% No gaps between list items. 142 | $if(margin-heading)$ 143 | \setlist[itemize,1]{leftmargin=!,labelwidth=1em,labelindent=0em} %%% Pull list all the way to the left. 144 | $else$ 145 | \setlist[itemize,1]{leftmargin=!,labelwidth=1em,labelindent=3em} %%% Push list in. 146 | $endif$ 147 | %%% And now the markers. 148 | $if(markers)$ 149 | \renewcommand{\labelitemi}{$markers.level-1$} 150 | \renewcommand{\labelitemii}{$markers.level-2$} 151 | \renewcommand{\labelitemiii}{$markers.level-3$} 152 | $endif$ 153 | 154 | \checkandfixthelayout 155 | 156 | %%% Format footer 157 | \copypagestyle{chapter}{plain} 158 | $if(footer)$ 159 | \makeoddhead{chapter}{}{}{} 160 | \makeoddfoot{chapter}{}{}{% 161 | $if(footer.display-author)$$for(author)$$author$$sep$, $endfor$,$endif$ $if(footer.last-modified)$\today,$endif$ \thepage} 162 | $else$ 163 | \makeoddhead{chapter}{}{}{} 164 | \makeoddfoot{chapter}{}{}{\thepage} 165 | $endif$ 166 | \pagestyle{chapter} 167 | 168 | %%% Redefine \section to tighten vertical space 169 | \let\oldsection\section 170 | \renewcommand{\section}[1]{% 171 | \oldsection{#1} 172 | \leavevmode 173 | \par 174 | \vspace{\dimexpr-\baselineskip-\parskip} 175 | } 176 | 177 | 178 | \begin{document} 179 | 180 | $if(display-name)$ 181 | \chapter*{$display-name$} 182 | $else$ 183 | \chapter*{$name$} 184 | $endif$ 185 | 186 | $if(margin-heading)$ 187 | \begin{adjustwidth*}{9em}{0em} 188 | \mbox{} 189 | $endif$ 190 | 191 | \hypertarget{contact-information}{% 192 | \section{$contact-information$}\label{contact-information}} 193 | \begin{minipage}[t]{0.3\textwidth} 194 | $for(address)$$address$$sep$\\ $endfor$ 195 | \end{minipage} 196 | \begin{minipage}[t]{0.7\textwidth} 197 | $if(telephone)$ 198 | {\textit{Tel:}} $telephone$ \\ 199 | $endif$ 200 | $if(email)$ 201 | {\textit{E-mail:}} $email$ \\ 202 | $endif$ 203 | $if(url)$ 204 | {\textit{Web:}} http://$url$ \\ 205 | $endif$ 206 | $if(twitter)$ 207 | {\textit{Twitter:}} \href{http://twitter.com/$twitter$}{@$twitter$} \\ 208 | $endif$ 209 | $if(github)$ 210 | {\textit{GitHub:}} \href{http://github.com/$github$}{@$github$} 211 | $endif$ 212 | \end{minipage} 213 | $if(citizenships)$ 214 | % \vspace{\baselineskip} 215 | \medskip%amount 216 | \par Citizenship: 217 | $for(citizenships)$$citizenships$$sep$ and $endfor$ 218 | $endif$ 219 | $body$ 220 | 221 | $if(margin-heading)$ 222 | \end{adjustwidth*} 223 | $endif$ 224 | \end{document} 225 | --------------------------------------------------------------------------------