| Website | PDF Version |
|---|---|
| eralpkaraduman.github.io/cv | latest release |
If you want to have your own, just fork this repo and modify the index.md.
This is a fairly modified version of
elipapa's markdown-cv project.
Which is using jekyll to host the cv as static site on github.
My version simply uses sindresorhus's github-markdown-css, the close replica of github's markdown style. And it is able to auto-generate a PDF version release through travis-ci (if set up)
- Maintain your cv using Markdown
- Free website for your CV (hosted on github-pages)
- Automaticaly updated PDF version (hosted on github releases)
- Always have one link to your latest CV online for free
- Update it easily on the web (using github's web editor)
The GitHub Action in .github/workflows/ruby.yml builds the PDF (inside the
Docker image) and publishes it as a GitHub release on every push to gh-pages.
You can always link to the latest release by adding the suffix
/releases/latest to the repo url. For example;
github.com/your-username-here/cv/releases/latest
No setup is required: the workflow uses the built-in GITHUB_TOKEN (granted
contents: write in the workflow file) to create the release — there's no
personal access token or repository secret to configure. Just make sure the
repo's Settings → Actions → General → Workflow permissions is set to
"Read and write permissions".
- Latest release is conveniently always at
/releases/latest
I added a feature which automatically adds the latest PDF version download link to the website.
This only works when automatic PDF version generation was set up (mentioned above).
This is done by javascript running on the page, it tries to fetch github's API to get the last release.
This link won't be generated in the PDF itself for several reasons;
- Lack of necessity, since you have the pdf there's no need to download it again.
- I didn't want to figure out the issues with executing javascript in pdf generation context
Travis CI blocks the request to github API i guess?We don't use travis anymore, automation is moved to github actions- I disabled javascript on wkhtmltopdf, see reasons above.
(You don't need to run it locally to update this, do it on github's web ui)
Since after your every change a new cv will be generated, this may cause excessive number of generations. To avoid this you may choose to make several commits on your local environment. Then push them all at once. To be able to preview the CV you should run Jekyll locally.
You should look at jekyll's own documentation but, this is how you'd get started;
bundle install
bundle exec jekyll serve --host=0.0.0.0
If you'd rather not install Ruby/Jekyll/wkhtmltopdf on your machine, there's a
Dockerfile that pins the same versions used in CI (Ruby 2.5 / Bundler 1.16.5 /
Jekyll 3.7.4) and bundles wkhtmltopdf for PDF generation. The image targets
linux/amd64; on Apple Silicon it runs under emulation.
Build the image once:
docker build --platform linux/amd64 -t cv-jekyll .Preview the site with live reload at http://localhost:4000 (the repo is
bind-mounted, so edits to index.md rebuild automatically). The PDF-download
button is injected here, same as the live site:
docker run -d --platform linux/amd64 --name cv-jekyll -p 4000:4000 -v "$PWD":/cv cv-jekyllStop / restart it with:
docker rm -f cv-jekyllGenerate the PDF (writes _pdfbuild/Eralp-Karaduman-CV.pdf on the host, in a
separate dir so it doesn't clobber a running preview; JS injection disabled to
match CI):
docker run --rm --platform linux/amd64 -v "$PWD":/cv cv-jekyll build-pdfNotes:
- The download button links to the latest GitHub release PDF, not the local
_pdfbuild/Eralp-Karaduman-CV.pdf— so locally it points at whatever CI last published. - The base image is Debian buster (EOL), so the
Dockerfilerepointsaptatarchive.debian.org;wkhtmltopdfuses the patched-Qt build and runs headless (noxvfbneeded, unlike CI).