Skip to content

Commit 1eaf92a

Browse files
authored
feat: add scale arg for image export (#1263) (#1274)
1 parent d3e5cf8 commit 1eaf92a

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

packages/slidev/node/cli.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,10 @@ function exportOptions<T>(args: Argv<T>) {
534534
type: 'boolean',
535535
describe: 'slide slides slide by slide. Works better with global components, but will break cross slide links and TOC in PDF',
536536
})
537+
.option('scale', {
538+
type: 'number',
539+
describe: 'scale factor for image export',
540+
})
537541
}
538542

539543
function printInfo(

packages/slidev/node/export.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ export interface ExportOptions {
3333
* @default false
3434
*/
3535
perSlide?: boolean
36+
scale?: number
3637
}
3738

3839
function addToTree(tree: TocItem[], info: SlideInfo, slideIndexes: Record<number, number>, level = 1) {
@@ -161,6 +162,7 @@ export async function exportSlides({
161162
executablePath = undefined,
162163
withToc = false,
163164
perSlide = false,
165+
scale = 1,
164166
}: ExportOptions) {
165167
const pages: number[] = parseRangeString(total, range)
166168

@@ -174,7 +176,7 @@ export async function exportSlides({
174176
// Calculate height for every slides to be in the viewport to trigger the rendering of iframes (twitter, youtube...)
175177
height: perSlide ? height : height * pages.length,
176178
},
177-
deviceScaleFactor: 1,
179+
deviceScaleFactor: scale,
178180
})
179181
const page = await context.newPage()
180182
const progress = createSlidevProgress(!perSlide)
@@ -449,6 +451,7 @@ export function getExportOptions(args: ExportArgs, options: ResolvedSlidevOption
449451
executablePath,
450452
withToc,
451453
perSlide,
454+
scale,
452455
} = config
453456
outFilename = output || options.data.config.exportFilename || outFilename || `${path.basename(entry, '.md')}-export`
454457
if (outDir)
@@ -468,6 +471,7 @@ export function getExportOptions(args: ExportArgs, options: ResolvedSlidevOption
468471
executablePath,
469472
withToc: withToc || false,
470473
perSlide: perSlide || false,
474+
scale: scale || 1,
471475
}
472476
}
473477

packages/types/src/cli.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export interface ExportArgs extends CommonArgs {
1313
'executable-path'?: string
1414
'with-toc'?: boolean
1515
'per-slide'?: boolean
16+
scale?: number
1617
}
1718

1819
export interface BuildArgs extends ExportArgs {

0 commit comments

Comments
 (0)