2024-10-18 11:49:26 +02:00
|
|
|
var Metalsmith = require("metalsmith");
|
|
|
|
|
var htmlMinifier = require("metalsmith-html-minifier");
|
|
|
|
|
var layouts = require("metalsmith-layouts");
|
|
|
|
|
var markdown = require("metalsmith-markdown-remarkable");
|
|
|
|
|
var permalinks = require("@metalsmith/permalinks");
|
|
|
|
|
var static = require("metalsmith-static");
|
2024-10-18 12:41:28 +02:00
|
|
|
var puppeteer = require("puppeteer");
|
|
|
|
|
|
|
|
|
|
var srcHTML = "file:" + __dirname + "/pub/index.html";
|
|
|
|
|
var destPDF = "./pub/cv-anders-englof-ytterstrom.pdf";
|
|
|
|
|
|
|
|
|
|
async function generatePDF() {
|
|
|
|
|
const browser = await puppeteer.launch();
|
|
|
|
|
const page = await browser.newPage();
|
|
|
|
|
await page.goto(srcHTML, {
|
|
|
|
|
waitUntil: "networkidle2",
|
|
|
|
|
});
|
|
|
|
|
await page.pdf({
|
|
|
|
|
path: destPDF,
|
|
|
|
|
});
|
|
|
|
|
await browser.close();
|
|
|
|
|
}
|
2024-10-18 11:49:26 +02:00
|
|
|
|
|
|
|
|
Metalsmith(__dirname)
|
|
|
|
|
.source("./src")
|
|
|
|
|
.destination("./pub")
|
|
|
|
|
.use(
|
|
|
|
|
markdown({
|
|
|
|
|
html: true,
|
|
|
|
|
typographer: false,
|
|
|
|
|
}),
|
|
|
|
|
)
|
|
|
|
|
.use(permalinks())
|
|
|
|
|
.use(
|
|
|
|
|
layouts({
|
|
|
|
|
engine: "handlebars",
|
|
|
|
|
}),
|
|
|
|
|
)
|
|
|
|
|
.use(htmlMinifier())
|
|
|
|
|
.use(
|
|
|
|
|
static({
|
|
|
|
|
src: "./assets",
|
|
|
|
|
dest: "./",
|
|
|
|
|
}),
|
|
|
|
|
)
|
|
|
|
|
.build(function (err, _files) {
|
|
|
|
|
if (err) {
|
|
|
|
|
throw err;
|
|
|
|
|
}
|
2024-10-18 12:41:28 +02:00
|
|
|
generatePDF();
|
2024-10-18 11:49:26 +02:00
|
|
|
});
|