Move to weasyprint
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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",
|
||||
|
||||
19
build.js
19
build.js
@@ -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}`);
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
devShells.default = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
nodejs
|
||||
chromium
|
||||
python313Packages.weasyprint
|
||||
|
||||
jq
|
||||
curl
|
||||
|
||||
1108
package-lock.json
generated
1108
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user