Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
quarto-dev
GitHub Repository: quarto-dev/quarto-cli
Path: blob/main/src/command/render/render-info.ts
3583 views
1
/*
2
* render-info.ts
3
*
4
* Copyright (C) 2022 Posit Software, PBC
5
*
6
*/
7
8
import {
9
kEmbedResources,
10
kOutputExt,
11
kSelfContained,
12
} from "../../config/constants.ts";
13
import { Format } from "../../config/types.ts";
14
import { RenderFlags } from "./types.ts";
15
16
import { extname } from "../../deno_ral/path.ts";
17
import { logProgress } from "../../core/log.ts";
18
19
export function isSelfContained(flags: RenderFlags, format: Format) {
20
return !!(flags[kSelfContained] || format.pandoc[kSelfContained] ||
21
flags[kEmbedResources] || format.pandoc[kEmbedResources]);
22
}
23
24
// some extensions are 'known' to be standalone/self-contained
25
// see https://pandoc.org/MANUAL.html#option--standalone
26
const kStandaloneExtensionNames = [
27
"pdf",
28
"epub",
29
"fb2",
30
"docx",
31
"rtf",
32
"pptx",
33
"odt",
34
"ipynb",
35
];
36
37
const kStandaloneExtensions = kStandaloneExtensionNames.map((name) =>
38
`.${name}`
39
);
40
41
export function isSelfContainedOutput(
42
flags: RenderFlags,
43
format: Format,
44
finalOutput: string,
45
) {
46
return isSelfContained(flags, format) ||
47
kStandaloneExtensions.includes(extname(finalOutput));
48
}
49
50
export function isStandaloneFormat(format: Format) {
51
return kStandaloneExtensionNames.includes(format.render[kOutputExt] || "");
52
}
53
54
export function renderProgress(message: string) {
55
logProgress(message);
56
}
57
58