Skip to content

Commit de14555

Browse files
committed
update to pandoc 2.19
1 parent 33d62e1 commit de14555

File tree

14 files changed

+130
-22
lines changed

14 files changed

+130
-22
lines changed

configuration

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
# Binary dependencies
1111
export DENO=v1.22.0
1212
export DENO_DOM=v0.1.17-alpha
13-
export PANDOC=2.18
13+
export PANDOC=2.19
1414
export DARTSASS=1.32.8
1515
export ESBUILD=0.14.39
1616

news/changelog-1.1.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88

99
- Correct handling of `knitr::include_graphics()` within inline expressions.
1010

11+
## Pandoc
12+
13+
- Update to Pandoc 2.19
14+
- Support for `embed-resources` document option
15+
1116
## References
1217

1318
- Support for `nocite` within \_project.yml for book projects (#1660)

src/command/render/defaults.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { FormatPandoc, QuartoFilter } from "../../config/types.ts";
1212
import { isLatexOutput } from "../../config/format.ts";
1313

1414
import {
15+
kEmbedResources,
1516
kFilters,
1617
kFrom,
1718
kIncludeAfterBody,
@@ -106,6 +107,7 @@ export function pandocDefaultsMessage(
106107
kOutputFile,
107108
kTemplate,
108109
kStandalone,
110+
kEmbedResources,
109111
kSelfContained,
110112
];
111113
const defaults: FormatPandoc = {};

src/command/render/flags.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@ import { readYaml, readYamlFromString } from "../../core/yaml.ts";
1111
import { mergeConfigs } from "../../core/config.ts";
1212

1313
import {
14+
kEmbedResources,
1415
kListings,
1516
kNumberOffset,
1617
kNumberSections,
1718
kReferenceLocation,
1819
kSelfContained,
1920
kShiftHeadingLevelBy,
21+
kStandalone,
2022
kTableOfContents,
2123
kToc,
2224
kTopLevelDivision,
@@ -63,11 +65,21 @@ export async function parseRenderFlags(args: string[]) {
6365
flags.siteUrl = arg;
6466
break;
6567

68+
case "--standalone":
69+
flags[kStandalone] = true;
70+
arg = argsStack.shift();
71+
break;
72+
6673
case "--self-contained":
6774
flags[kSelfContained] = true;
6875
arg = argsStack.shift();
6976
break;
7077

78+
case "--embed-resources":
79+
flags[kEmbedResources] = true;
80+
arg = argsStack.shift();
81+
break;
82+
7183
case "--pdf-engine":
7284
arg = argsStack.shift();
7385
flags.pdfEngine = arg;

src/command/render/pandoc.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ import {
8686
kDate,
8787
kDateFormat,
8888
kDocumentClass,
89+
kEmbedResources,
8990
kFigResponsive,
9091
kFilterParams,
9192
kFormatResources,
@@ -736,11 +737,14 @@ export async function runPandoc(
736737
// during post processing, we need to implement self-contained ourselves
737738
// so don't allow pandoc to see this flag (but still print it)
738739
if (isHtmlFileOutput(options.format.pandoc)) {
739-
// Hide self-contained argument
740-
pandocArgs = pandocArgs.filter((arg) => arg !== "--self-contained");
740+
// Hide self-contained arguments
741+
pandocArgs = pandocArgs.filter((
742+
arg,
743+
) => (arg !== "--self-contained" && arg !== "--embed-resources"));
741744

742745
// Remove from defaults
743746
delete allDefaults[kSelfContained];
747+
delete allDefaults[kEmbedResources];
744748
}
745749

746750
// write the defaults file

src/command/render/render-info.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,19 @@ import { info } from "log/mod.ts";
88

99
import * as colors from "fmt/colors.ts";
1010

11-
import { kOutputExt, kSelfContained } from "../../config/constants.ts";
11+
import {
12+
kEmbedResources,
13+
kOutputExt,
14+
kSelfContained,
15+
} from "../../config/constants.ts";
1216
import { Format } from "../../config/types.ts";
1317
import { RenderFlags } from "./types.ts";
1418

1519
import { extname } from "path/mod.ts";
1620

1721
export function isSelfContained(flags: RenderFlags, format: Format) {
18-
return !!(flags[kSelfContained] || format.pandoc[kSelfContained]);
22+
return !!(flags[kSelfContained] || format.pandoc[kSelfContained] ||
23+
flags[kEmbedResources] || format.pandoc[kEmbedResources]);
1924
}
2025

2126
// some extensions are 'known' to be standalone/self-contained

src/command/render/template.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
*/
77
import { basename, join } from "path/mod.ts";
88
import {
9+
kEmbedResources,
910
kHtmlMathMethod,
1011
kSelfContained,
1112
kSelfContainedMath,
@@ -113,7 +114,8 @@ function applyTemplatePatches(
113114
// make math evade self-contained for HTML and Reveal
114115
if (isHtmlDocOutput(format.pandoc) || isRevealjsOutput(format.pandoc)) {
115116
if (
116-
((flags && flags[kSelfContained]) || format.pandoc[kSelfContained]) &&
117+
((flags && flags[kSelfContained]) || format.pandoc[kSelfContained] ||
118+
(flags && flags[kEmbedResources]) || format.pandoc[kEmbedResources]) &&
117119
!format.render[kSelfContainedMath]
118120
) {
119121
const math = mathConfig(format, flags);

src/config/constants.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,9 +353,10 @@ export const kInputFiles = "input-files";
353353
export const kAtxHeaders = "atx-headers";
354354
export const kMarkdownHeadings = "markdown-headings";
355355
export const kTemplate = "template";
356-
export const kStandalone = "standalone";
357356
export const kWrap = "wrap";
357+
export const kStandalone = "standalone";
358358
export const kSelfContained = "self-contained";
359+
export const kEmbedResources = "embed-resources";
359360
export const kIncludeBeforeBody = "include-before-body";
360361
export const kIncludeAfterBody = "include-after-body";
361362
export const kIncludeInHeader = "include-in-header";
@@ -476,6 +477,7 @@ export const kPandocDefaultsKeys = [
476477
kTemplate,
477478
kStandalone,
478479
kSelfContained,
480+
kEmbedResources,
479481
kVariables,
480482
"metadata",
481483
kMetadataFiles,

src/config/types.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import {
4949
kCss,
5050
kDfPrint,
5151
kEcho,
52+
kEmbedResources,
5253
kEngine,
5354
kEnvironmentProofTitle,
5455
kEnvironmentRemarkTitle,
@@ -159,6 +160,7 @@ import {
159160
kShiftHeadingLevelBy,
160161
kShortcodes,
161162
kSlideLevel,
163+
kStandalone,
162164
kSyntaxDefinitions,
163165
kTableOfContents,
164166
kTblColwidths,
@@ -398,6 +400,7 @@ export interface FormatPandoc {
398400
[kOutputFile]?: string;
399401
standalone?: boolean;
400402
[kSelfContained]?: boolean;
403+
[kEmbedResources]?: boolean;
401404
[kVariables]?: { [key: string]: unknown };
402405
[kAtxHeaders]?: boolean;
403406
[kMarkdownHeadings]?: boolean;
@@ -432,7 +435,9 @@ export interface FormatPandoc {
432435
export interface PandocFlags {
433436
to?: string;
434437
output?: string;
438+
[kStandalone]?: boolean;
435439
[kSelfContained]?: boolean;
440+
[kEmbedResources]?: boolean;
436441
pdfEngine?: string;
437442
pdfEngineOpts?: string[];
438443
makeIndexOpts?: string[];

src/execute/ojs/compile.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { parseModule } from "observablehq/parser";
1414
import { Format, kDependencies } from "../../config/types.ts";
1515
import { MappedExecuteResult, PandocIncludes } from "../../execute/types.ts";
1616
import {
17+
kEmbedResources,
1718
kIncludeAfterBody,
1819
kIncludeInHeader,
1920
kSelfContained,
@@ -128,7 +129,8 @@ export async function ojsCompile(
128129
}
129130

130131
const projDir = project?.dir;
131-
const selfContained = options.format.pandoc?.[kSelfContained] ?? false;
132+
const selfContained = options.format.pandoc?.[kSelfContained] ??
133+
options.format.pandoc?.[kEmbedResources] ?? false;
132134
const isHtmlMarkdown = isMarkdownOutput(options.format.pandoc, [
133135
"gfm",
134136
"commonmark",

0 commit comments

Comments
 (0)