Compare commits
9 Commits
resume-7
...
e214c40d4d
| Author | SHA1 | Date | |
|---|---|---|---|
| e214c40d4d | |||
| 213aa63aa1 | |||
| e38ed451df | |||
| e6c33a2eab | |||
| 41befd6626 | |||
| f3ae240c68 | |||
| 1614e9aed0 | |||
| 6078e15cab | |||
| bc69a21635 |
@@ -1,19 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
set -e
|
|
||||||
if [[ ! -d "/home/alice/.gitprojects/resumes" ]]; then
|
|
||||||
echo "Cannot find source directory; Did you move it?"
|
|
||||||
echo "(Looking for "/home/alice/.gitprojects/resumes")"
|
|
||||||
echo 'Cannot force reload with this script - use "direnv reload" manually and then try again'
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# rebuild the cache forcefully
|
|
||||||
_nix_direnv_force_reload=1 direnv exec "/home/alice/.gitprojects/resumes" true
|
|
||||||
|
|
||||||
# Update the mtime for .envrc.
|
|
||||||
# This will cause direnv to reload again - but without re-building.
|
|
||||||
touch "/home/alice/.gitprojects/resumes/.envrc"
|
|
||||||
|
|
||||||
# Also update the timestamp of whatever profile_rc we have.
|
|
||||||
# This makes sure that we know we are up to date.
|
|
||||||
touch -r "/home/alice/.gitprojects/resumes/.envrc" "/home/alice/.gitprojects/resumes/.direnv"/*.rc
|
|
||||||
14
.github/copilot-instructions.md
vendored
14
.github/copilot-instructions.md
vendored
@@ -1,28 +1,30 @@
|
|||||||
# Project Guidelines
|
# Project Guidelines
|
||||||
|
|
||||||
## Code Style
|
## Code Style
|
||||||
- Primary source is `main.tex`; keep edits focused there unless build config changes are required.
|
- Primary source is `resume.tex`; keep edits focused there unless build config changes are required.
|
||||||
- Follow existing LaTeX macro style: reusable `\newcommand` helpers for resume blocks (e.g., `\resumeSubheading`, `\resumeEducation`, `\resumeItem`).
|
- Follow existing LaTeX macro style: reusable `\newcommand` helpers for resume blocks (e.g., `\resumeSubheading`, `\resumeEducation`, `\resumeItem`).
|
||||||
- Preserve compact spacing/layout conventions (`\vspace`, custom `\titleformat`, `tabular*` alignment) unless asked to redesign formatting.
|
- Preserve compact spacing/layout conventions (`\vspace`, custom `\titleformat`, `tabular*` alignment) unless asked to redesign formatting.
|
||||||
- Keep package usage consistent with current preamble and avoid adding new packages unless required for a user request.
|
- Keep package usage consistent with current preamble and avoid adding new packages unless required for a user request.
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
- This workspace is a single-document resume project.
|
- This workspace is a single-document resume project.
|
||||||
- `main.tex` contains both template macros and resume content.
|
- `resume.tex` contains both template macros and resume content.
|
||||||
- Files like `main.aux`, `main.fdb_latexmk`, and `main.fls` are generated build artifacts, not source-of-truth.
|
- Files like `resume.aux`, `resume.fdb_latexmk`, and `resume.fls` are generated build artifacts, not source-of-truth.
|
||||||
- `glyphtounicode` is included for text extractability/ATS friendliness via `\pdfgentounicode=1`.
|
- `glyphtounicode` is included for text extractability/ATS friendliness via `\pdfgentounicode=1`.
|
||||||
|
|
||||||
## Build and Test
|
## Build and Test
|
||||||
- Build PDF (preferred): `latexmk -pdf main.tex`
|
- Preferred reproducible build: `nix build .#default` (outputs `result/Alice_Huston_Resume_Software_Engineer.pdf`)
|
||||||
- Alternative build: `pdflatex main.tex` (run multiple times if references/layout need settling)
|
- Local TeX build: `latexmk -pdf resume.tex`
|
||||||
|
- Alternative build: `pdflatex resume.tex` (run multiple times if references/layout need settling)
|
||||||
- Clean artifacts: `latexmk -c`
|
- Clean artifacts: `latexmk -c`
|
||||||
- Validate by checking successful compile and reviewing resulting `main.pdf` for layout overflow/line wrapping regressions.
|
- Validate by checking successful compile and reviewing resulting `resume.pdf` for layout overflow/line wrapping regressions.
|
||||||
|
|
||||||
## Project Conventions
|
## Project Conventions
|
||||||
- Use existing macros instead of ad-hoc formatting in section bodies.
|
- Use existing macros instead of ad-hoc formatting in section bodies.
|
||||||
- Keep section/list structure aligned with current pattern: `\resumeSubHeadingListStart` / `\resumeSubHeadingListEnd` and `\resumeItemListStart` / `\resumeItemListEnd`.
|
- Keep section/list structure aligned with current pattern: `\resumeSubHeadingListStart` / `\resumeSubHeadingListEnd` and `\resumeItemListStart` / `\resumeItemListEnd`.
|
||||||
- Keep content concise and achievement-oriented; avoid large prose blocks that break one-page layout assumptions.
|
- Keep content concise and achievement-oriented; avoid large prose blocks that break one-page layout assumptions.
|
||||||
- Do not manually edit generated files (`*.aux`, `*.fdb_latexmk`, `*.fls`, etc.); `.gitignore` already treats these as build outputs.
|
- Do not manually edit generated files (`*.aux`, `*.fdb_latexmk`, `*.fls`, etc.); `.gitignore` already treats these as build outputs.
|
||||||
|
- Prefer linking to existing guidance instead of duplicating it: see `.github/prompts/resume-review.prompt.md` for the structured review workflow.
|
||||||
|
|
||||||
## Integration Points
|
## Integration Points
|
||||||
- External links are rendered with `hyperref` (`hidelinks`) and should stay valid/HTTPS.
|
- External links are rendered with `hyperref` (`hidelinks`) and should stay valid/HTTPS.
|
||||||
|
|||||||
10
.github/prompts/resume-review.prompt.md
vendored
10
.github/prompts/resume-review.prompt.md
vendored
@@ -12,14 +12,14 @@ Review the candidate's resume by following the steps below in order.
|
|||||||
|
|
||||||
### Step 1 — Read the LaTeX source
|
### Step 1 — Read the LaTeX source
|
||||||
|
|
||||||
Read [main.tex](../main.tex) to understand the full content and structure of the resume: sections, roles, dates, technologies, bullet text, projects, certifications, and any formatting macros.
|
Read [resume.tex](../../resume.tex) to understand the full content and structure of the resume: sections, roles, dates, technologies, bullet text, projects, certifications, and any formatting macros.
|
||||||
|
|
||||||
### Step 2 — Build the PDF
|
### Step 2 — Build the PDF
|
||||||
|
|
||||||
Run the following command in the terminal to compile the resume:
|
Run the following command in the terminal to compile the resume:
|
||||||
|
|
||||||
```
|
```
|
||||||
latexmk -pdf main.tex
|
latexmk -pdf resume.tex
|
||||||
```
|
```
|
||||||
|
|
||||||
If the build produces errors, include them as a finding under **Formatting & Layout** (e.g., "Compile error on line X — fix before submission"). Continue the review using the LaTeX source regardless.
|
If the build produces errors, include them as a finding under **Formatting & Layout** (e.g., "Compile error on line X — fix before submission"). Continue the review using the LaTeX source regardless.
|
||||||
@@ -29,11 +29,11 @@ If the build produces errors, include them as a finding under **Formatting & Lay
|
|||||||
Clean up any stale preview files, then convert the first page of the built PDF to a PNG and view it:
|
Clean up any stale preview files, then convert the first page of the built PDF to a PNG and view it:
|
||||||
|
|
||||||
```
|
```
|
||||||
rm -f main-preview*.png
|
rm -f resume-preview*.png
|
||||||
pdftoppm -r 150 -png main.pdf main-preview
|
pdftoppm -r 150 -png resume.pdf resume-preview
|
||||||
```
|
```
|
||||||
|
|
||||||
Then use #tool:view_image to view `main-preview-1.png`.
|
Then use #tool:view_image to view `resume-preview-1.png`.
|
||||||
|
|
||||||
If this step fails for any reason (conversion error, tool unavailable, file not found), note it briefly — e.g., *"PDF preview unavailable — layout assessment based on LaTeX source only"* — and proceed. Do not retry or block on this step.
|
If this step fails for any reason (conversion error, tool unavailable, file not found), note it briefly — e.g., *"PDF preview unavailable — layout assessment based on LaTeX source only"* — and proceed. Do not retry or block on this step.
|
||||||
|
|
||||||
|
|||||||
20
.github/workflows/build-resume.yaml
vendored
20
.github/workflows/build-resume.yaml
vendored
@@ -5,12 +5,26 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
paths:
|
paths:
|
||||||
- 'main.tex'
|
- 'resume.tex'
|
||||||
- '.github/workflows/build-resume.yaml'
|
- '.github/workflows/build-resume.yaml'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
date-fetch:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
current-date: ${{ steps.get-date.outputs.current-date }}
|
||||||
|
commit-sha: ${{ steps.get-sha.outputs.commit-sha }}
|
||||||
|
steps:
|
||||||
|
- name: Get current date
|
||||||
|
id: get-date
|
||||||
|
run: echo "current-date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
|
||||||
|
- name: Get first 7 characters of commit SHA
|
||||||
|
id: get-sha
|
||||||
|
run: echo "commit-sha=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
build:
|
build:
|
||||||
|
needs: date-fetch
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
@@ -35,7 +49,7 @@ jobs:
|
|||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v1
|
||||||
with:
|
with:
|
||||||
files: result/Alice_Huston_Resume_Software_Engineer.pdf
|
files: result/Alice_Huston_Resume_Software_Engineer.pdf
|
||||||
tag_name: resume-${{ github.run_number }}
|
tag_name: alice-huston-resume-${{ needs.date-fetch.outputs.current-date }}-${{ needs.date-fetch.outputs.commit-sha }}
|
||||||
body: "Resume PDF built from commit ${{ github.sha }}"
|
body: "Resume PDF built from commit ${{ github.sha }} on ${{ needs.date-fetch.outputs.current-date }}."
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -12,3 +12,7 @@
|
|||||||
*.fls
|
*.fls
|
||||||
*.synctex.gz
|
*.synctex.gz
|
||||||
*.png
|
*.png
|
||||||
|
*.pdf # all PDFs are generated, so ignore them all
|
||||||
|
|
||||||
|
result
|
||||||
|
.direnv
|
||||||
14
flake.nix
14
flake.nix
@@ -16,16 +16,16 @@
|
|||||||
tex = (
|
tex = (
|
||||||
pkgs.texlive.combine {
|
pkgs.texlive.combine {
|
||||||
inherit (pkgs.texlive)
|
inherit (pkgs.texlive)
|
||||||
scheme-medium
|
scheme-basic
|
||||||
preprint
|
preprint
|
||||||
titlesec
|
titlesec
|
||||||
enumitem
|
enumitem
|
||||||
sourcesanspro
|
sourcesanspro
|
||||||
xifthen
|
|
||||||
ifmtarg
|
|
||||||
framed
|
|
||||||
paralist
|
|
||||||
fontawesome7
|
fontawesome7
|
||||||
|
latexmk
|
||||||
|
marvosym
|
||||||
|
ly1
|
||||||
|
xkeyval
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@@ -46,8 +46,8 @@
|
|||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
runHook preBuild
|
runHook preBuild
|
||||||
latexmk -pdf -interaction=nonstopmode -halt-on-error main.tex
|
latexmk -pdf -interaction=nonstopmode -halt-on-error resume.tex
|
||||||
mv main.pdf ${resume_final_pdf}
|
mv resume.pdf ${resume_final_pdf}
|
||||||
runHook postBuild
|
runHook postBuild
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user