From 7e1abac18ff9e60918b402be172978a51dc9d204 Mon Sep 17 00:00:00 2001 From: Josua Meier Date: Wed, 8 Jul 2020 09:20:09 +0200 Subject: [PATCH] feat: Add option to exclude pages --- README.md | 1 + src/extendCli.js | 2 ++ src/generatePdf.js | 7 ++++++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 83da3a5..018c50d 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ Vuepress plugin for exporting site as PDF - `outputFileName` - name of output file (default `site.pdf`) - `puppeteerLaunchOptions` - [Puppeteer launch options object](https://github.com/puppeteer/puppeteer/blob/v2.1.1/docs/api.md#puppeteerlaunchoptions) (default `{}`) - `pageOptions` - [Puppeteer page formatting options object](https://github.com/puppeteer/puppeteer/blob/v2.1.1/docs/api.md#pagepdfoptions) (default `{format: 'A4'}`) +- `excludedPages` - array of urls to exclude from output file ### Usage diff --git a/src/extendCli.js b/src/extendCli.js index bd09f70..43796e9 100644 --- a/src/extendCli.js +++ b/src/extendCli.js @@ -11,6 +11,7 @@ module.exports = options => { const outputFileName = options.outputFileName || 'site.pdf' const puppeteerLaunchOptions = options.puppeteerLaunchOptions || {} const pageOptions = options.pageOptions || {} + const excludedPages = options.excludedPages || [] return cli => { cli @@ -33,6 +34,7 @@ module.exports = options => { port: nCtx.devProcess.port, host: nCtx.devProcess.host, sorter, + excludedPages, outputFileName, puppeteerLaunchOptions, pageOptions diff --git a/src/generatePdf.js b/src/generatePdf.js index 1c0514a..4fde75a 100644 --- a/src/generatePdf.js +++ b/src/generatePdf.js @@ -10,7 +10,8 @@ module.exports = async (ctx, { sorter, outputFileName, puppeteerLaunchOptions, - pageOptions + pageOptions, + excludedPages }) => { const { pages, tempPath } = ctx const tempDir = join(tempPath, 'pdf') @@ -31,6 +32,10 @@ module.exports = async (ctx, { } }) + if (Array.isArray(excludedPages)) { + exportPages = exportPages.filter(page => !excludedPages.includes(page.url)) + } + const browser = await puppeteer.launch(puppeteerLaunchOptions) const browserPage = await browser.newPage()