Move to weasyprint
Some checks failed
Build and Publish / build_html (push) Failing after 6s
Build and Publish / convert_to_pdf (push) Failing after 44s
Build and Publish / upload_as_release (push) Successful in 2s

This commit is contained in:
2025-12-08 22:22:04 -06:00
parent 82205954cc
commit fddb3f5c3e
6 changed files with 20 additions and 1133 deletions

View File

@@ -1,9 +1,9 @@
name: Build
name: Build and Publish
run-name: Building latest version of my resume 🚀
on: [push]
jobs:
Build_And_Publish:
build_html:
runs-on: ubuntu-latest
container: node:latest
steps:
@@ -16,12 +16,23 @@ jobs:
- name: List files in the repository
run: |
ls ${{ gitea.workspace }}
convert_to_pdf:
runs-on: ubuntu-latest
steps:
- name: Install weasyprint
run: |
sudo apt update && sudo apt install weasyprint -y
- name: Convert to pdf
run: |
npx puppeteer-cli print generated_resume.html resume.pdf
weasyprint generated_resume.html resume.pdf
- name: List files in the repository
run: |
ls ${{ gitea.workspace }}
upload_as_release:
runs-on: ubuntu-latest
steps:
- name: Create Release
uses: akkuman/gitea-release-action@v1
with:

View File

@@ -1,7 +1,7 @@
[
{
"label": "Build",
"command": "npm run build",
"command": "npm run build && weasyprint generated_resume.html resume.pdf",
"use_new_terminal": false,
"allow_concurrent_runs": false,
"reveal": "always",

View File

@@ -1,7 +1,6 @@
const ejs = require("ejs");
const fs = require("fs");
const path = require("path");
const puppeteer = require("puppeteer");
// File paths
const dataPath = path.join(__dirname, "content.json");
@@ -18,20 +17,4 @@ const html = ejs.render(template, jsonData);
// Write the output
fs.writeFileSync(outputPath, html, "utf-8");
console.log(`Successfully generated resume at ${outputPath}`);
async function generatePdf(htmlPath) {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(`file://${htmlPath}`, {
waitUntil: "networkidle2",
});
// Saves the PDF to hn.pdf.
await page.pdf({
path: "resume.pdf",
});
await browser.close();
}
generatePdf(outputPath).then(() => console.log("Generated PDF version"));
console.log(`Successfully generated html resume at ${outputPath}`);

View File

@@ -21,7 +21,7 @@
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
nodejs
chromium
python313Packages.weasyprint
jq
curl

1108
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -4,10 +4,9 @@
"description": "Builds an HTML resume from JSON data",
"main": "build.js",
"scripts": {
"build": "node build.js"
"build": "node build.js && weasyprint generated_resume.html resume.pdf"
},
"dependencies": {
"ejs": "^3.1.8",
"puppeteer": "^24.32.1"
"ejs": "^3.1.8"
}
}