From c405556e9cc2171c3078d0c0173ab2114cbe6922 Mon Sep 17 00:00:00 2001 From: Jarno Rankinen Date: Sat, 10 Feb 2024 22:57:07 +0200 Subject: [PATCH] Readme up to date Squashed commit of the following: commit d57376d7b1eb8ac3f3bf50ef539281c6fcace963 Author: Jarno Rankinen <50285623+0ranki@users.noreply.github.com> Date: Sat Feb 10 22:55:29 2024 +0200 Update CONFIGURATION.md commit f20c6538f71706e4447658c8efabec5e0562c1b4 Author: Jarno Rankinen <50285623+0ranki@users.noreply.github.com> Date: Sat Feb 10 22:48:35 2024 +0200 Update README.md, WIP commit 64ce61218bcbb4a28a6b15b457205fe98bb1d5e8 Author: Jarno Rankinen <50285623+0ranki@users.noreply.github.com> Date: Sat Feb 10 22:45:51 2024 +0200 Create CONFIGURATION.md, WIP commit 516084b985fe50be1aeed83a7b06435645e1b153 Author: Jarno Rankinen <50285623+0ranki@users.noreply.github.com> Date: Sat Feb 10 22:15:01 2024 +0200 WIP Update README.md commit b387cbbfb87e621c100664efce8e183c269eaea4 Author: Jarno Rankinen <50285623+0ranki@users.noreply.github.com> Date: Sat Feb 10 22:13:09 2024 +0200 WIP Update README.md commit 6166b18c19cdedfd5f21bbf33d92b466c3a10af7 Author: Jarno Rankinen <50285623+0ranki@users.noreply.github.com> Date: Sat Feb 10 22:01:07 2024 +0200 WIP Update README.md commit 01d0e798c9c659204e0a4c33e1929eb0b681ddb0 Author: Jarno Rankinen Date: Sat Feb 10 21:32:00 2024 +0200 Intermediate commit, update README.md --- CONFIGURATION.md | 151 +++++++++++++++++++++++++++++++++++++++++++++++ README.md | 75 +++++++++++++++++++++-- 2 files changed, 221 insertions(+), 5 deletions(-) create mode 100644 CONFIGURATION.md diff --git a/CONFIGURATION.md b/CONFIGURATION.md new file mode 100644 index 0000000..b358a96 --- /dev/null +++ b/CONFIGURATION.md @@ -0,0 +1,151 @@ +## YAML Configuration + +The configuration file is read for each request, there's no need to stop the server +to make edits. + +### `basepath` +Defaults to empty, set if you want to serve under a subpath +```YAML +basepath: "/cv" +``` + +### `theme` +Sets the default theme that is loaded when people visit your CV +```YAML +theme: "dark" +``` + +### `meta` section +These values correspond to tags in the ` section. +- `meta.title` sets the `` meta tag content +- `meta.github-corner` enables/disables the GitHub link to this repo in the top-right corner +- `meta.favicon` is still WIP, will point to a local or remote favicon assett +- `meta.language` sets the language for the headings in the document (e.g. SUMMARY), also the `<meta name="language">` tag +- Others correspond to `<meta name="tag name">` +```YAML +meta: + robots: "index, follow" + language: "en-EN" + author: "Mickey Mouse" + theme-color: "#bd93f9" + title: "" + description: "" + favicon: "" + github-corner: false +``` + +## `profile` (the main content definitions) +### Main info fields +Other info fields are quite self-explanatory, except +- `profile.photo` + - Can be a local file. In this case the path is relative + to the photo to use, meaning `./data/photo/`, `data/photo/` + and `/data/photo/` all mean a folder under the directory the + binary is in. **NOT AN ABSOLUTE OS PATH** + - Can be a URL to a remote asset +- `profile.summary` Can be written on multiple lines by using the + standard YAML `>`, `|` etc selectors, and can additionally + contain HTML. For example multiple paragraphs using `<p></p>` +```YAML +profile: + name: "Mickey Mouse" + title: "Professional job applicant" + city: "City, Country" + phone: "+358 xx xxx xxxx" + email: "your@email.com" + photo: "./data/photo/Mickey_Mouse_Steamboat_Willie.jpg" + summary: >- + Insert summary here. Multiple + lines can be used, but line breaks are determined + by the renderer +``` + +### `profile.experience` +A YAML List of previous jobs. Noteworthy is the description, +which is also a list of items, corresponding to e.g. different +tasks or responsibilities +```YAML +profile: + experience: + - company: Company 1 + location: City, country + title: Professional employee + period: "03/2023 - " + description: + - Each item in this list + - Will be a new item + - In the CV + - company: Company 2 + location: City, country + title: Professional employee + period: "03/2022 - 03/2023" + description: + - Each item in this list + - Will be a new item + - In the CV + - company: Company 3 + location: City, country + title: Professional employee + period: "03/2021 - 03/2022" + description: + - Each item in this list + - Will be a new item + - In the CV +``` + +### `profile.education` +A YAML list of prior education history items. These may not fit +every imaginable education, but the fields are not named in the +resulting CV, so they can be used a bit creatively. +- `profile.education.degree` is the main title +- `profile.education.name` is the subtitle +```YAML +profile: + education: + - degree: B.S. in Job interviews + name: Job interviewee + faculty: School for Job applicants + city: City, Country + period: 1/1996 - 12/1996 + - degree: Undergraduate of CV Authoring + name: Technical writer + faculty: School for Job applicants + city: City, Country + period: 1/1995 - 12/1995 +``` + +### `profile.skills`, `profile.languages` +- name and the amount of starts to give each (1-5) +```YAML +profile: + skills: + - name: Skill 1 + level: 1 + - name: Skill 2 + level: 2 + - name: Skill 3 + level: 3 + - name: Skill 4 + level: 4 + - name: Skill 5 + level: 5 + languages: + - name: Language 1 + level: 5 + - name: Language 2 + level: 4 + - name: Language 1 + level: 3 + - name: Language 2 + level: 2 +``` + +### `profile.certificates` +Other mentionable courses, etc that don't quite fit the others, for example +driver's license, any certificate like CKAD +```YAML +profile: + certificates: + - name: Certified Kubernetes Application Developer + - name: Driver's License (commercial) +``` diff --git a/README.md b/README.md index 35b20dc..24f0b9f 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,73 @@ -# Go-resume +# Go-resume ![Static Badge](https://img.shields.io/badge/WIP-yellow) -## Work in progress - -A dynamic resume site using [Bulma CSS](https://github.com/jgthms/bulma) written in Go. +A dynamic resume site server using [Bulma CSS](https://github.com/jgthms/bulma) written in Go. Get up and running easily by defining the content in a single YAML file. -Shamelessly copied from [mazipan's](https://github.com/mazipan) [bulma-resume-template](https://github.com/mazipan/bulma-resume-template). \ No newline at end of file +If you have a public server, can serve the website on port 3000 (HTTP). Or run locally only to +generate a PDF. + +### Live example: [https://oranki.net/cv](https://oranki.net/cv) + +### Screenshots: +#### Desktop +![kuva](https://github.com/0ranki/go-resume/assets/50285623/4d918f31-a922-45d7-b2e6-67d4a44ebedb) + +#### Mobile: +![kuva](https://github.com/0ranki/go-resume/assets/50285623/3d0252c2-2450-47b2-b2c4-bcf448db9f75) + + +### PDF +The resume can be exported fairly well to PDF by using your browser's built-in printing function. +Just configure your resume.yaml, run the server locally, open the page in your browser and press +"Print to PDF". Feedback is welcome, the result is not perfect, but subjectively as good as most +of the free Word templates I've come across. + +**Note:** Printing the dark version doesn't quite work yet + +## Usage (see [CONFIGURATION.md](CONFIGURATION.md)) +- Download one of the pre-built binaries from releases or build yourself +- Update YAML (see separate document for details) +- Start the server +- The content is updated live, so you can make edits while the server is + running + +### Reverse proxy +Running behind a reverse proxy is simple, e.g. for NGINX: +``` +server { + listen 80; + listen [::]:80; + server_name my-cv.example.com; + location / { + return 301 https://$host$request_uri; + } +} +server { + listen 443 ssl http2; + listen [::]:443 ssl http2; + server_name my-cv.example.com; + ssl_certificate "/path/to/cert"; + ssl_certificate_key "/path/to/key"; + location / { + proxy_set_header X-Forwarded-For $real_ip; # Not really necessary + proxy_pass http://localhost:3000; + } +} +``` +If you want to run under a subpath, set `basepath` in the config YAML and change the +location block to the same, e.g. `basepath: "/cv"` in YAML, and +``` + ... + location /cv { + proxy_pass http://localhost:3000; + } + ... +``` + +### Planned, but still missing features: +- Socials list +- Contact / contact info so it won't cause a spam wave + + +## Special thanks +Shamelessly adapted to Go from [mazipan's](https://github.com/mazipan) [bulma-resume-template](https://github.com/mazipan/bulma-resume-template).