My resume generated from *.tex file to request a job. LaTeX template for my personal resume forked from jakegut / resume
This repository is currently in a transition period:
src/*.texis still the main source for the production PDF workflowcontent/*.jsonnow exists as a new structured content layersingle-page-cv/is no longer only a PDF wrapper, it can now render resume content as a web pagedocs/now records the current workflow, target workflow, content model, learning guides, and local development instructions
Recent changes:
- added structured content files:
content/resume.en.jsoncontent/resume.zh.json
- added jq-based content validation:
bash scripts/validate_content_json.sh
- added Node.js-based content validation inside
single-page-cv/:cd single-page-cv && npm run validate:content
- updated
single-page-cv/to render JSON content instead of only embedding PDF - added simple
EN / ZHquery-string switching insingle-page-cv/ - improved
single-page-cv/structure by splitting the resume page into smaller components and moving content helpers intosrc/lib/ - fixed
single-page-cvlint so bothnpm run lintandnpm run buildnow work - added React-based PDF generation for
single-page-cv/with@react-pdf/renderercd single-page-cv && npm run pdf:generatebash scripts/generate_single-page-cv_pdf.sh
- added local Linux VM helper scripts for
single-page-cv/ - expanded
docs/so the repository architecture and workflow are documented inside the repo
src/- LaTeX resume sources and generated PDFs
content/- structured resume data for web and future renderer refactors
single-page-cv/- Next.js app for the web version of the resume
scripts/- helper scripts for PDF build, web app local workflow, validation, and deployment
docs/- workflow, architecture, content model, learning notes, and local development guides
output/- generated web artifacts currently used by deployment flow
bash scripts/validate_content_json.shbash scripts/install_single-page-cv_deps.sh
bash scripts/dev_single-page-cv.shThen open:
http://localhost:3000
If port 3000 is already in use, Next.js may automatically switch to another port such as 3001.
cd single-page-cv
npm run validate:contentcd single-page-cv
npm run lint
npm run buildcd single-page-cv
npm run pdf:generateor:
bash scripts/generate_single-page-cv_pdf.shThis generates:
single-page-cv/public/yh_resume.pdfsingle-page-cv/public/yh_resume_cht.pdf
bash scripts/build_single-page-cv_local.sh
bash scripts/start_single-page-cv.shStart with:
Recommended reading order:
docs/current-workflow.mddocs/future-workflow.mddocs/git-workflow-cheatsheet.mddocs/single-page-cv-tech-stack.mddocs/react-nextjs-learning-guide.mddocs/single-page-cv-linux-vm-workflow.mddocs/web-pdf-generation-options.mddocs/rearchitecture-plan.mddocs/content-model.md
Use the docs like this:
- if you want to understand why branch conflicts keep happening:
- read
docs/current-workflow.md - then read
docs/future-workflow.md
- read
- if you want to understand the target refactor direction:
- if you want to understand the structured content format:
- if you want to work on the Next.js app:
- if you want to understand how the web renderer now generates PDF:
- if you want to start learning React / Next.js using this repo itself:
This section keeps older LaTeX / PDF / html conversion notes for reference.
Use this section when you are working on:
- the legacy LaTeX-first workflow
- pdf2htmlEX conversion
- older deployment or container-based flows
make all
make cleanor:
bash scripts/make_pdf.sh- tug.org/texlive
- TeX Live - Quick install for Unix
- install via package manager
# Debian / Ubuntu
sudo apt install make texlive-full
# Arch / Manjaro
sudo pacman -Syy
sudo pacman -S make texlive-most texlive-bin
# macOS
brew install mactex
sudo tlmgr update --self- github.com/pdf2htmlEX/pdf2htmlEX
- Building#building-yourself
- Download-Debian-Archive
- Download-Docker-Image
- github.com/pdf2htmlEX/pdf2htmlEX/wiki/Quick-Start
git clone https://github.com/blackdesert575/resume.git
cd resume
docker compose up -d
docker exec -it latex-tools-box bash
cd /resume
./scripts/pipelines_ci.sh- CI is triggered by Git push unless explicitly skipped
- related GitHub Actions references:
- Cloudflare Pages Git integration:
#git comment
#update docs and test github action ci
#skip ci
[skip ci] update **/*.tex
[skip ci] update README
[skip ci] update ci.yml
[skip actions] update docs# clone repo to your work dir
git clone git@github.com:blackdesert575/resume.git
cd resume
# edit *.tex
vim src/yh_resume.tex
# output and package output/** to docker image and run a docker container at localhost
bash scripts/pipelines.sh
# test robots
uv run test_robots.py
# or
python3 test_robots.py- Install the CLI prerequisites on your localhost
- Git clone this repo on your localhost
- manually edit
src/*.tex - generate
*.pdffrom*.tex - move PDF output to
single-page-cv/publicin the older workflow - run the Next.js app under
single-page-cv/
- Add multiple languages(English/Chinese) support
* Migrate to Cloudflare Worker & Pages - Compare Nginx + pdf2htmlex bundled page output(html/css/javascript all in one) VS node.js + react.js single-page-cv app with pdf output
* integration with CI/CD pipelines with GitHub Actions/Jenkins/ArgoCD...etc* pdf2htmlEX (generate *.html from *.pdf)* refactoring output from pdf2htmlEX with React+Next.js Web framework
- LaTex «Lah-tech» or «Lay-tech»
- LaTex project/About
- pdf2htmlEX/wiki/Quick-Start
- pdf2htmlEX/wiki/Command-Line-Options
- kmpg: a book could be generated from soruce with TeXLive toolchain
uv add pypdf# check latexmk installed or not
which latexmk
latexmk --version
cd src/
# latexmk yh_resume.tex
latexmk -xelatex -interaction=nonstopmode yh_resume_cht.tex
# clean build unneeded files and keep *.pdf
latexmk -chtlatex file.tex "xhtml,html5,mathml,charset=utf-8" " -cunihtf -utf8"# build pdf from tex source codes
make all
# remove extra files when building tex project
make clean- LaTeX Workshop
# with docker
docker run -ti --rm -v ./src:/pdf -w /pdf pdf2htmlex/pdf2htmlex:0.18.8.rc2-master-20200820-alpine-3.12.0-x86_64 --zoom 1.3 yh_resume.pdf
# with podman
podman run -ti --rm -v ./src:/pdf -w /pdf docker.io/pdf2htmlex/pdf2htmlex:0.18.8.rc2-master-20200820-alpine-3.12.0-x86_64 --zoom 1.3 yh_resume.pdf
# Internal Error: Your version of iconv does not support the "Mac Roman" encoding.
# If this causes problems, reconfigure --without-iconv.
# Preprocessing: 2/2
# Working: 2/2
# add this for My github pages icon
<link rel="icon" type="image/x-icon" href="./favicon.ico">
<link rel="icon" type="image/x-icon" href="../images/ico/favicon.ico">
# edit *.tex with vscode and extension: LaTeX Workshop
vscode yh_resume.tex
vscode yh_resume.pdf
# build with bash shell scripts
bash ./scripts/build.sh
# run with bash shell scripts
bash ./scripts/start.sh