Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to using two pages #2

Open
wants to merge 200 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
200 commits
Select commit Hold shift + click to select a range
b629046
Fix typo in profile.json
ccjmne Aug 21, 2024
e18d1ce
Update to my most recent personal .eslintrc.js
ccjmne Aug 21, 2024
4619c06
WIP: Update all dependencies
ccjmne Aug 21, 2024
c1d22ab
Switch to using Yarn
ccjmne Aug 21, 2024
ef2947e
Import typed-scss-modules
ccjmne Aug 21, 2024
14af5ec
WIP: Fix up SCSS exports to TypeScript procedure
ccjmne Aug 21, 2024
b11732c
Fix s?css rule in Webpack config
ccjmne Aug 21, 2024
30fba9b
Fix missing scss import in main.scss
ccjmne Aug 21, 2024
c2aba64
Fix author name (put email last)
ccjmne Aug 21, 2024
8be860b
Adapt 'headless' param to newer Puppeteer version
ccjmne Aug 21, 2024
44d88d5
Embrace the acute accent in my first name
ccjmne Aug 21, 2024
4a91ab2
Catch up with the package version (2.0.0)
ccjmne Aug 21, 2024
458b619
Fix typo in package description
ccjmne Aug 21, 2024
e31bf9e
Set up multi-page resume
ccjmne Aug 21, 2024
fbeb978
Minor code style polish
ccjmne Aug 21, 2024
4bc0e94
Horizontally align entries in profile.json
ccjmne Aug 21, 2024
3f04f62
Use proper diacritic for reference's name
ccjmne Aug 21, 2024
00b8a83
Tidy up self-deprecated code in svg-elements
ccjmne Aug 21, 2024
5e4c762
Crisper rendering of decorative svg elements
ccjmne Aug 21, 2024
a5b32f3
Slice and dice aside text to polish spacing
ccjmne Aug 21, 2024
6d5089b
Favour -block-(start|end) over -(top|bottom)
ccjmne Aug 21, 2024
e261327
Add two more "top skills"
ccjmne Aug 21, 2024
cc8d990
Tweak background gradient
ccjmne Aug 21, 2024
6ed95d2
Fix typo in employment duration at Propellerhead
ccjmne Aug 23, 2024
ec082c9
Fix wonky mishap in a URL in profile.json
ccjmne Aug 23, 2024
d30b37c
Adjust empty lines in easy-htmlelement
ccjmne Aug 23, 2024
85cd250
Introduce EasyHTMLElement#append
ccjmne Aug 24, 2024
3088be5
Add DOM.Iterable to the "lib" entry in tsconfig
ccjmne Aug 25, 2024
88e6dc0
Create seamless background for the <main> content
ccjmne Aug 25, 2024
8add2c6
Have the <header> belong under <main>
ccjmne Aug 26, 2024
488d908
Split apart each page's specific styles
ccjmne Aug 26, 2024
e87efab
Minor code style tweak for pdf-printer-plugin
ccjmne Aug 27, 2024
a2c7b4e
WIP: Add highlights to profile.json
ccjmne Aug 28, 2024
8794047
Tweak wording of Innov'Action highlight
ccjmne Aug 28, 2024
7982793
WIP: Explore highlights presentation
ccjmne Aug 29, 2024
a70927d
Relocate page 1-specific h2 style overrides
ccjmne Aug 29, 2024
692d8fd
Use Wayback Machine for dead Twitter link
ccjmne Aug 30, 2024
99f5886
Make career highlights wording simpler and briefer
ccjmne Aug 30, 2024
989f4f3
Add Auckland Museum engine as career highlight
ccjmne Aug 30, 2024
5b05709
Add placeholder for jOOQ-powered rewrite
ccjmne Aug 30, 2024
3353d6c
Stow highlight that may not make the final cut
ccjmne Aug 31, 2024
203c91b
Prepare "milestones" in addition to highlights
ccjmne Aug 31, 2024
8cd8186
WIP: Add years to milestones
ccjmne Aug 31, 2024
9ac2221
Update all dependencies
ccjmne Sep 1, 2024
812d601
Update yarn.lock
ccjmne Sep 1, 2024
e37e6b6
WIP: After much tribulations, realise my vision
ccjmne Sep 6, 2024
fd8d6b5
WIP: Add colour variety to "branches"
ccjmne Sep 5, 2024
de2e8fa
WIP: Make "milestones" font smaller
ccjmne Sep 5, 2024
83babd1
WIP: Make milestones wording terser
ccjmne Sep 5, 2024
154f24f
WIP: Trim milestones content
ccjmne Sep 5, 2024
2ca6c30
WIP: Squish git graph a bit more
ccjmne Sep 5, 2024
ae868a1
WIP: Tweak style of "commits"
ccjmne Sep 5, 2024
df4a044
WIP: Draw branches in reverse order
ccjmne Sep 5, 2024
e9f6d49
WIP: Align content in colours.scss
ccjmne Sep 6, 2024
deaac17
WIP: Start cleaning up of 2.ts
ccjmne Sep 6, 2024
5e3df64
WIP: Touch up 2.scss
ccjmne Sep 6, 2024
6022efa
WIP: Remove decommissioned svg-elements methods
ccjmne Sep 6, 2024
68cbb61
WIP: Get milestones from profile.json
ccjmne Sep 6, 2024
3400c94
WIP: Format 2.ts
ccjmne Sep 6, 2024
0b0c1fa
WIP: Extract milestones graph drawing methods
ccjmne Sep 6, 2024
0db1be0
Name pipes sigils
ccjmne Sep 6, 2024
7244409
WIP: Remove unsightly semicolons
ccjmne Sep 6, 2024
4d58a46
WIP: Tweak custom RegExp definitions
ccjmne Sep 6, 2024
7ebb852
WIP: Tidy up milestones-graph#compute
ccjmne Sep 6, 2024
8a8d397
WIP: Polish milestones-graph.ts
ccjmne Sep 6, 2024
43cc740
Reverse order of milestones in profile.json
ccjmne Sep 6, 2024
ff71ecc
WIP: Streamline function computing branches
ccjmne Sep 7, 2024
7af02db
End mentorship branch when merging PHL
ccjmne Sep 7, 2024
f42e719
WIP: Better align milestones labels
ccjmne Sep 7, 2024
ce8b20b
WIP: Better organise milestones-graph.ts
ccjmne Sep 7, 2024
d223439
Rename unitX to UNIT_X
ccjmne Sep 7, 2024
5790f93
Rename 'milestones' to 'timeline'
ccjmne Sep 7, 2024
9e86144
WIP: Fix off-by-one error in ce8b20b
ccjmne Sep 7, 2024
fa78d68
WIP: Use SVG mask to polish timeline graph
ccjmne Sep 8, 2024
023b8ed
Refine the entry files matching system
ccjmne Sep 8, 2024
e1958ed
Disable watch mode for scss types in production
ccjmne Sep 8, 2024
dcad99a
Import qrcode (w/ DefinitelyTyped types)
ccjmne Sep 10, 2024
ea14ee8
WIP: Play with QR Code in second page footer
ccjmne Sep 10, 2024
9b40f4a
Update all deps again, udpate yarn.lokc
ccjmne Sep 10, 2024
59c117c
Move timeline SVG responsibility to timeline.ts
ccjmne Sep 10, 2024
f430726
WIP: Rewrite timeline scale computing sensibly
ccjmne Sep 11, 2024
6ffe342
WIP: Fit the entire graph in the viewBox for now
ccjmne Sep 11, 2024
80dc096
WIP: Prune defunct attribute
ccjmne Sep 11, 2024
a27b11c
WIP: Remove unsightly tail of the main trunk
ccjmne Sep 11, 2024
9144067
WIP: Proof of concept for crossing branches
ccjmne Sep 11, 2024
5a67bd3
WIP: Clean up deep branch-out/merge addition
ccjmne Sep 11, 2024
39f86a6
WIP: Rethink how the timeline graph is drawn
ccjmne Sep 12, 2024
be3a0ef
WIP: Prepare proof of concept for highlight pins
ccjmne Sep 12, 2024
bd01673
Align highlights to their headlines
ccjmne Sep 12, 2024
873c486
Slightly tweak second page layout
ccjmne Sep 12, 2024
7937967
WIP: Clean up second page SCSS
ccjmne Sep 12, 2024
375a74e
Minor code style polish to pdf-printer-plugin
ccjmne Sep 22, 2024
f9c117a
Match A4 Portrait dimensions in Puppeteer viewport
ccjmne Sep 22, 2024
40e7dd9
Polish 2.ts
ccjmne Sep 22, 2024
c91cab6
Add rhombuses between stats in career highlights
ccjmne Sep 22, 2024
8ad2ebb
Pull in Outfit font
ccjmne Sep 22, 2024
9533037
Address rendering issue w/ background-clip: text
ccjmne Sep 22, 2024
91bb494
WIP: Tweak second page's styling
ccjmne Sep 22, 2024
f71aa95
Add/reword milestones
ccjmne Sep 22, 2024
21e86dd
Add career highlight about EVO + Brexit
ccjmne Sep 22, 2024
aa35abd
Add back "Career Highlights" title to second page
ccjmne Sep 22, 2024
55f26df
Fix race condition in layout reflow + measurements
ccjmne Sep 22, 2024
fe6c895
Use rhombuses for milestones and highlights
ccjmne Sep 22, 2024
72942cb
Make SVG graph computation more maintainable
ccjmne Sep 22, 2024
cfeeb12
Move branch styling to SCSS
ccjmne Sep 22, 2024
948e2c6
Minor code clean-up
ccjmne Sep 22, 2024
ef2cd7d
Support right-align in h2 background generator
ccjmne Sep 22, 2024
c4a4076
Add right-aligned SVG background to 2nd page title
ccjmne Sep 22, 2024
12bcea3
Invert 2nd page light–dark axis for sea background
ccjmne Sep 22, 2024
ffab302
Prepare the terrain for HTML milestone labels
ccjmne Sep 22, 2024
a9610bd
Use HTML for milestone labels
ccjmne Sep 22, 2024
4dc13da
Use dotall milestone parser to allow \n in labels
ccjmne Sep 22, 2024
a7fde54
Allow full bleed of timeline labels to the left
ccjmne Sep 22, 2024
02d7248
Make full use of the new labels capability
ccjmne Sep 22, 2024
d37dd92
Nudge third rhombus of hr ever so slightly closer
ccjmne Sep 26, 2024
4493fe1
Add 'short' tail option to hr
ccjmne Sep 26, 2024
c382791
Add 'tail' to stats in career highlights
ccjmne Sep 26, 2024
73e5eeb
Polish code base somewhat, add TODO notes
ccjmne Sep 26, 2024
91f8ccf
Refine timeline branch ends somewhat
ccjmne Sep 27, 2024
4ec2b6e
Allow specifying helicity in rhombusPath
ccjmne Sep 27, 2024
82266a9
Finalise milestones and highlights appearance
ccjmne Sep 27, 2024
003b8df
Better align external-link w/ plain text
ccjmne Sep 27, 2024
efa7101
Ever so slightly push down career highlights stats
ccjmne Sep 27, 2024
3fd561e
Minor code polish
ccjmne Sep 28, 2024
74c1d61
Programmatically compute experiences' durations
ccjmne Sep 28, 2024
a08887b
Polish milestones, forgo years
ccjmne Sep 28, 2024
b6dbf43
Reword career highlights
ccjmne Sep 28, 2024
2f0ba82
Delete discarded highlights and milestones
ccjmne Sep 28, 2024
20f2e3f
Name highlights gradient more accurately
ccjmne Sep 28, 2024
db18f1d
Tweak page 1 font sizes, weights, spacing, colours
ccjmne Sep 28, 2024
3655397
Centralise font-weight shenanigans
ccjmne Sep 28, 2024
b601bd5
Further clean up weight-related SCSS code
ccjmne Sep 28, 2024
d03348e
Only use the Outfit font for the *numeric* values
ccjmne Sep 29, 2024
0ffdcaa
Further tweak fonts, explicitly use faux bold
ccjmne Sep 29, 2024
ced7287
Embed fonts, unify ombré patterns
ccjmne Sep 29, 2024
f663838
Extend timeline graph over entire vertical span
ccjmne Oct 2, 2024
145d06d
Clean up and simplify drawing of the 'spawn' event
ccjmne Oct 5, 2024
69eaba0
Polished career highlights
ccjmne Oct 5, 2024
d6fc6cc
Avoid nudging the highlights' stats down
ccjmne Oct 5, 2024
ee2e999
Polish experiences' tags
ccjmne Oct 5, 2024
7368f4d
Reword Site Alpha experience overview
ccjmne Oct 5, 2024
f973de8
Unify tenses in career highlights' statistics
ccjmne Oct 5, 2024
9794680
Fix 'lighter' colour in 'inverse' mode
ccjmne Oct 5, 2024
7e66f7d
Use LinkedIn's experience duration calculation
ccjmne Oct 8, 2024
bf60097
Tweak seed for background of first h2 title
ccjmne Oct 13, 2024
0342873
Move fonts to assets/fonts
ccjmne Oct 13, 2024
f126060
Pull in Aleo font for small-caps section titles
ccjmne Oct 13, 2024
9c1e927
Prepare tech. stack data in profile.json
ccjmne Oct 14, 2024
9735282
Add tech. stack section in footer of second page
ccjmne Oct 14, 2024
0d85b9a
Use the semantic time attribute when possible
ccjmne Oct 14, 2024
9f984a4
Also use the `time` HTML element for experiences
ccjmne Oct 14, 2024
55d5cfb
Slightly adjust code style in a few places
ccjmne Oct 14, 2024
d760a77
Toggle hyphenation w/ HYPHENATE environment var
ccjmne Oct 14, 2024
7c08ca6
Support printing to PNG rather than PDF
ccjmne Oct 16, 2024
b4cc3b2
Aye, just keep it simple
ccjmne Oct 16, 2024
931e08c
Automatically hyphenate when using yarn start
ccjmne Oct 17, 2024
4a2bd0a
Meant PNG rather than SVG
ccjmne Oct 17, 2024
782d49a
Don't interpret &shy;, require hard hyphens
ccjmne Oct 17, 2024
d851043
Fix image merging procedure in PDFPrinter
ccjmne Oct 17, 2024
57ab435
Fix source file URIs with absolute paths
ccjmne Oct 17, 2024
ea0a982
Update runtime and modules in GitHub Actions CI/CD
ccjmne Oct 14, 2024
b43dc07
Verify adequacy of manual hyphenation in CI/CD
ccjmne Oct 18, 2024
2a63f11
Polish Webpack config, suppress stats in prod
ccjmne Oct 18, 2024
db39433
Drop Aleo font for vertical labels
ccjmne Oct 18, 2024
d4224aa
Update deps and yarn.lock
ccjmne Oct 18, 2024
3a09c6b
Migrate to more modern SCSS stack
ccjmne Oct 19, 2024
6548ec7
Fix missing whitespace between dates and duration
ccjmne Oct 21, 2024
93f862f
Polish milestones
ccjmne Oct 21, 2024
7846076
Switch to using subtle gradients for the background
ccjmne Oct 23, 2024
2acfb4b
Update 'about me' section, experiences overviews
ccjmne Oct 23, 2024
158e087
Remove experiences' tags
ccjmne Oct 23, 2024
598e04a
Polish highlights some more
ccjmne Oct 23, 2024
4fd9bff
Better vertically align the tech-stack article
ccjmne Oct 23, 2024
79ece70
Don't use 'sea-like' textured text
ccjmne Oct 23, 2024
066453c
Update project information in package.json
ccjmne Oct 23, 2024
3f32048
Bump dependencies
ccjmne Oct 23, 2024
52d32c6
Organise imports in 1.ts, 2.ts
ccjmne Oct 25, 2024
b1f67de
Better inline qrcode generation
ccjmne Oct 25, 2024
4f8a3a7
Leverage string#split with capture-group
ccjmne Oct 25, 2024
d7071f4
Switch to TypeScript instead of JSON for profile
ccjmne Oct 25, 2024
3ca5725
Export each profile section individually
ccjmne Oct 25, 2024
0d5415a
Beautify profile.ts
ccjmne Oct 25, 2024
ec0badd
Order profile.ts sections semantically
ccjmne Oct 25, 2024
3d51355
Fix typo in 'endorsement'.
ccjmne Oct 27, 2024
d87d840
Better unify quote styles in profile.ts
ccjmne Oct 30, 2024
c95f4af
Reword introduction
ccjmne Oct 30, 2024
290e0db
Clean up .gitignore
ccjmne Oct 30, 2024
6696d0f
Drop clean-webpack-plugin, superseded by built-in
ccjmne Oct 30, 2024
4efc9d8
Avoid reusing "empowering" in experiences
ccjmne Oct 31, 2024
dafda5a
Slightly desaturate second page gradient
ccjmne Nov 2, 2024
118a053
Update README.md
ccjmne Nov 2, 2024
ac5be99
Allow trailing whitespaces in markdown
ccjmne Nov 2, 2024
e8f981c
Update all dependencies, switch to yarn 4.5.1
ccjmne Nov 3, 2024
5ea25e9
Leverage String#split w/ capture-group'd RegExp
ccjmne Nov 11, 2024
595c76a
Use 'begin' rather than 'start' in timeline
ccjmne Nov 11, 2024
1fbdeb5
Move Java proficiency milestone to main branch
ccjmne Nov 17, 2024
cbe5d41
Embrace promotion at Unite
ccjmne Nov 22, 2024
06eab82
Drop Node.js in favour of Svelte in Web tools
ccjmne Nov 30, 2024
248d39f
Link 'elegance' to Keep It Short and Simple
ccjmne Jan 26, 2025
18921d2
Favour 'advocate of' over 'advocate for'
ccjmne Jan 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false
8 changes: 6 additions & 2 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ npm install --save-dev \
eslint \
eslint-config-airbnb-base \
eslint-config-airbnb-typescript \
eslint-plugin-import \
@typescript-eslint/eslint-plugin \
@typescript-eslint/parser
*/
Expand Down Expand Up @@ -57,6 +56,9 @@ module.exports = {
{ blankLine: 'always', prev: 'break', next: '*' },
{ blankLine: 'always', prev: 'directive', next: '*' },
{ blankLine: 'any', prev: 'directive', next: 'directive' },
{ blankLine: 'always', prev: '*', next: 'function' },
{ blankLine: 'always', prev: 'function', next: '*' },
{ blankLine: 'always', prev: 'multiline-expression', next: '*' },
],
'padded-blocks': ['warn', { blocks: 'never', switches: 'never', classes: 'always' }],
'object-curly-newline': ['warn', {
Expand Down Expand Up @@ -109,7 +111,8 @@ module.exports = {
'quote-props': ['warn', 'consistent-as-needed'],
'semi': 'off',
'@typescript-eslint/semi': ['warn', 'never'],
'@typescript-eslint/strict-boolean-expressions': ['warn'],
'@typescript-eslint/strict-boolean-expressions': ['warn', { allowString: false }],
'yoda': 'off',
},
...{
// code smells
Expand All @@ -122,6 +125,7 @@ module.exports = {
'@typescript-eslint/no-empty-function': ['error'],
'@typescript-eslint/no-floating-promises': ['error', { ignoreVoid: true, ignoreIIFE: true }],
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/no-unnecessary-condition': ['error'],
'no-unused-private-class-members': ['error'],
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': ['error', { vars: 'all', args: 'all', argsIgnorePattern: '^_' }],
Expand Down
33 changes: 20 additions & 13 deletions .github/workflows/build-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,37 @@ on:
types: published

env:
resume-file: ccjmne-resume.pdf
artifact-id: ccjmne-resume
resume-file: resume.pdf
artifact-id: resume

jobs:
build:
runs-on: ubuntu-latest
env:
node-version: 16.x
node-version: 22

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ env.node-version }}
cache: npm
cache-dependency-path: package-lock.json
cache: yarn

- name: Webpack build
- name: Verify manual hyphenation
run: |
npm install
npx webpack --mode production
yarn install
npx webpack --mode production --env HYPHENATE=yes --env OUTPUT=l.png && mv dist/l.png .
npx webpack --mode production --env HYPHENATE=no --env OUTPUT=r.png && mv dist/r.png .
diff --brief l.png r.png

- name: Compile PDF
run: |
yarn install
npx webpack --mode production --env HYPHENATE=no --env OUTPUT=${{ env.resume-file }}

- name: Upload resume artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ${{ env.artifact-id }}
path: dist/${{ env.resume-file }}
Expand All @@ -40,7 +46,7 @@ jobs:

steps:
- name: Download resume artifact
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: ${{ env.artifact-id }}

Expand All @@ -53,7 +59,8 @@ jobs:
- name: Compute short SHA
run: echo SHORT_SHA=`echo ${GITHUB_SHA::7}` >> $GITHUB_ENV

- name: Deploy
- name: Deploy to GitHub Pages
# TODO: Consider using the official `deploy-pages` and `upload-pages-artifact` GitHub Actions
uses: peaceiris/actions-gh-pages@v3
with:
publish_dir: .
Expand Down
104 changes: 1 addition & 103 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,104 +1,2 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test

# parcel-bundler cache (https://parceljs.org/)
.cache

# Next.js build output
.next

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and *not* Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port
node_modules
60 changes: 45 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@

[![Compile and Publish Resume](https://github.com/ccjmne/ccjmne-resume/actions/workflows/build-deploy.yml/badge.svg)](https://github.com/ccjmne/ccjmne-resume/actions/workflows/build-deploy.yml)

This project lets me build my current static one-page resume.

This project lets me build my current static resume.
Take a look at it [here](https://ccjmne.github.io/ccjmne-resume).

## Inside the Box

This generates a simple HTML page, printed out to PDF with [Puppeteer](https://github.com/GoogleChrome/puppeteer).
This generates some HTML pages, printed out to PDF with [Puppeteer](https://github.com/GoogleChrome/puppeteer).

Technologies used:

Expand All @@ -21,39 +20,70 @@ Technologies used:

## How-To

Development merely uses the standard [NodeJS](https://nodejs.org/en/) process (using `npm`);<br />
Development merely uses the standard [NodeJS](https://nodejs.org/en/) process (using `yarn`);
Publication is automated through [Continuous Deployment](https://www.atlassian.com/continuous-delivery/continuous-deployment), leverating [GitHub Actions](https://docs.github.com/en/actions).

### Set up

Install with `npm install`.
Install with `yarn install`.

### Build

Continuously watch-rebuild with `npm start` (or `webpack serve --mode development`) during development;<br />
Perform a one-off compilation with `npm run build` (or `webpack --mode production`).
Continuously watch-rebuild with `yarn start` (or `npx webpack serve --mode
development`) during development;
Perform a one-off compilation with `yarn build` (or `npx webpack --mode
production`).

The output (and the pre-compiled HTML-CSS-JS assets in `development` mode) will
be generated under `dist/`.

#### Build Options

The PDF output (and the pre-compiled HTML-CSS-JS assets in dev. mode) will be generated under `dist/`.
1. `HYPHENATE`
- whether to automatically insert
[soft-hyphens](https://en.wikipedia.org/wiki/Soft_hyphen) wherever
applicable
- enabled with any value starting with `y`; defaults to `no`
- disabled by default with `production` builds, for having `&shy;` littered
throughout each and every word isn't quite SEO-friendly, and might even
throw off [ATS](https://en.wikipedia.org/wiki/Applicant_tracking_system)es

2. `OUTPUT`
- the name of the output file, defaults to `ccjmne-resume.pdf`
- generate screenshot if output ends in `.png`; otherwise coerce extension to
`.pdf`

### Deploy

There is nothing to do, this process is automated.

With each newly published release on GitHub,
1. a [GitHub Action](https://docs.github.com/en/actions) will use [Webpack](https://webpack.js.org/) to:

1. a [GitHub Action](https://docs.github.com/en/actions) will use
[Webpack](https://webpack.js.org/) to:
- compile and generate the static HTML webpage,
- print it out to PDF through my own [PDF-Printer Webpack Plugin](./tooling/pdf-printer-plugin.ts) (using [Puppeteer](https://github.com/GoogleChrome/puppeteer)),
- create and upload the generated resume as as [GitHub Artifact](https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts)
- print it out to PDF through my own [PDF-Printer Webpack
Plugin](./tooling/pdf-printer-plugin.ts),
- ensure accurate manual hyphenation by comparing w/ automatically hyphenated version,
- create and upload the generated resume as as [GitHub
Artifact](https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts)
2. a subsequent job will:
- retrieve the compiled artifact,
- generate a stripped-down `index.html` that merely sets up an [HTML Meta Refresh](https://en.wikipedia.org/wiki/Meta_refresh) to the PDF resume,
- push a new commit to the `gh-pages` branch, referencing the original commit to `master` that triggered the rebuild-redeploy
3. this commit to `gh-pages` triggers another GitHub Action that publishes my resume [here](https://ccjmne.github.io/ccjmne-resume), with [GitHub Pages](https://pages.github.com/)
- generate a stripped-down `index.html` that merely sets up an [HTML Meta
Refresh](https://en.wikipedia.org/wiki/Meta_refresh) to the PDF resume,
- push a new commit to the `gh-pages` branch, referencing the original commit
to `master` that triggered the rebuild-redeploy
3. this commit to `gh-pages` triggers another GitHub Action that publishes
my resume [here](https://ccjmne.github.io/ccjmne-resume), with [GitHub
Pages](https://pages.github.com/)

## Licensing

**GPL-3.0**

You may copy, distribute and modify the software as long as you track changes/dates in source files. Any modifications to or software including (via compiler) GPL-licensed code must also be made available under the GPL along with build & install instructions.
You may copy, distribute and modify the software as long as you track
changes/dates in source files. Any modifications to or software including (via
compiler) GPL-licensed code must also be made available under the GPL along with
build & install instructions.

Refer to the [LICENSE](./LICENSE) file for more details.
Loading