3 minutes
🛠️ Dr Strangebuild Part 1
Dr. Strangebuild
How I learned to stop worrying and love automation.
Introduction
Few things induce a Shrek-esque incredulity quite like having to deal with proprietary file formats. This is especially frustrating when I am trying to quantify my achievements in a resume. Markdown is Good Enough™ for many purposes and I was absolutely certain that it would serve me well here as well.
Workflow
Create Your Resume
For application hints of this consult Examples/Resume.
Element Equivalent | Resume Element |
---|---|
Heading Level 1 | Name at the top |
Heading Level 3 | Section headers |
Heading Level 4 | Communication links |
Heading Level 5 | Job header |
Paragraph | Introduction, job description |
Unordered List | Job accomplishments |
Convert to Desired Formats
For hints on the automated build process, consult Examples/Build
Our build process uses Pandoc and wkhtmltopdf to convert from Markdown to HTML (via pandoc) and HTML (via wkhtmltopdf). You can optionally convert to a Microsoft Word document via pandoc although that is beyond the scope of this post. Please consult with the reference repo for more information.
Assuming you have named your resume resume.md
and the stylesheet as
resume-styling.css
you can do the conversions via the GNU/Linux command-line
via the following. This assumes that both Pandoc and wkhtmltopdf are installed.
⚠️ Note that the HTML document is required to convert to PDF, although you could likely use pipes and input redirection to not require an intermediate file.
⚠️ The resume-styling.css
needs to be in the same directory as the generated
resume.html
for conversion to PDF to work properly.
Convert to HTML
pandoc --css=resume-styling.css -s -f markdown+smart -o resume.html resume.md
Convert to PDF
wkhtmltopdf --enable-local-file-access resume.html resume.pdf
Examples
Resume
For example purposes this is named readme.md
.
# Sanguine Strangebuild, PhD
#### **[me@strangebuild.de](mailto:me@strangebuild.de)** – **[+49 30-23125000](tel:+493023125000)**
Leveraging GitOps and automated build workflows to prevent armageddon.
### PROFESSIONAL EXPERIENCE
##### Automation Wizard – Cyberspace – Internet Land – 2024 to Present
Found ways to free frustrated contributors from the rigor of manual process.
- Automated workflows to process a Markdown resume into open and proprietary formats.
- Consumed a prodigious amount of Obstler Schnapps.
### ADDITIONAL EXPERIENCE
##### Automation Padawan – Galactic Empire – Imperial City, Coruscant – 2000 to 2024
Build
⚠️ Note that I use Drone CI as my CI tool.
---
kind: pipeline
type: kubernetes
name: default
steps:
- name: build
image: ghcr.io/surnet/alpine-wkhtmltopdf:3.19.0-0.12.6-full
commands:
- apk add --no-cache pandoc
- mkdir target
- pandoc --css=resume-styling.css -s -f markdown+smart -o target/resume.html resume.md
- cp resume-testing.css target/
- wkhtmltopdf --enable-local-file-access target/resume.html target/resume.pdf
- name: publish
image: plugins/gitea-release
environment:
DRONE_REPO_OWNER: itsmejwp
settings:
api_key:
from_secret: GITEA_API_KEY
base_url: https://my.local.git.host.example
files: target/*
draft: true
title: ${DRONE_COMMIT_SHA:0:8}
when:
event:
- tag
depends_on:
- build
Stylesheet
For example purposes this is named resume-styling.css
.
/* name at the top */
h1 {
font-family: Arial, Helvetica, sans-serif;
font-size: 3em;
border-bottom: 1px solid #444;
text-align: center;
}
/* section headers */
h3 {
font-family: Arial, Helvetica, sans-serif;
font-size: 1.5em;
border-bottom: 1px dashed #444;
text-align: center;
}
/* communication links */
h4 {
font-family: "Times New Roman", Times, serif;
text-align: center;
margin-top: -1em;
}
/* job header */
h5 {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
font-size: 1.1em;
margin-top: 0.5em;
margin-bottom: 0.5em;
}