Path: blob/main/src/command/render/render-info.ts
3583 views
/*1* render-info.ts2*3* Copyright (C) 2022 Posit Software, PBC4*5*/67import {8kEmbedResources,9kOutputExt,10kSelfContained,11} from "../../config/constants.ts";12import { Format } from "../../config/types.ts";13import { RenderFlags } from "./types.ts";1415import { extname } from "../../deno_ral/path.ts";16import { logProgress } from "../../core/log.ts";1718export function isSelfContained(flags: RenderFlags, format: Format) {19return !!(flags[kSelfContained] || format.pandoc[kSelfContained] ||20flags[kEmbedResources] || format.pandoc[kEmbedResources]);21}2223// some extensions are 'known' to be standalone/self-contained24// see https://pandoc.org/MANUAL.html#option--standalone25const kStandaloneExtensionNames = [26"pdf",27"epub",28"fb2",29"docx",30"rtf",31"pptx",32"odt",33"ipynb",34];3536const kStandaloneExtensions = kStandaloneExtensionNames.map((name) =>37`.${name}`38);3940export function isSelfContainedOutput(41flags: RenderFlags,42format: Format,43finalOutput: string,44) {45return isSelfContained(flags, format) ||46kStandaloneExtensions.includes(extname(finalOutput));47}4849export function isStandaloneFormat(format: Format) {50return kStandaloneExtensionNames.includes(format.render[kOutputExt] || "");51}5253export function renderProgress(message: string) {54logProgress(message);55}565758