Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
quarto-dev
GitHub Repository: quarto-dev/quarto-cli
Path: blob/main/src/config/types.ts
12924 views
1
/*
2
* types.ts
3
*
4
* Copyright (C) 2020-2022 Posit Software, PBC
5
*/
6
import { Document } from "../core/deno-dom.ts";
7
8
import {
9
kAppendixAttributionBibTex,
10
kAppendixAttributionCiteAs,
11
kAppendixViewLicense,
12
kArticleNotebookLabel,
13
kBackToTop,
14
kBaseFormat,
15
kBodyClasses,
16
kBrand,
17
kCache,
18
kCalloutCautionCaption,
19
kCalloutImportantCaption,
20
kCalloutNoteCaption,
21
kCalloutTipCaption,
22
kCalloutWarningCaption,
23
kCanonicalUrl,
24
kCiteMethod,
25
kCiteproc,
26
kClearCellOptions,
27
kCodeFold,
28
kCodeLine,
29
kCodeLineNumbers,
30
kCodeLines,
31
kCodeLink,
32
kCodeLinksTitle,
33
kCodeOverflow,
34
kCodeSummary,
35
kCodeTools,
36
kCodeToolsHideAllCode,
37
kCodeToolsMenuCaption,
38
kCodeToolsShowAllCode,
39
kCodeToolsSourceCode,
40
kCodeToolsViewSource,
41
kColumns,
42
kCopyButtonTooltip,
43
kCopyButtonTooltipSuccess,
44
kCrossrefApxPrefix,
45
kCrossrefChPrefix,
46
kCrossrefCnjTitle,
47
kCrossrefCorTitle,
48
kCrossrefDefTitle,
49
kCrossrefEqPrefix,
50
kCrossrefExmTitle,
51
kCrossrefExrTitle,
52
kCrossrefFigTitle,
53
kCrossrefLemTitle,
54
kCrossrefLstTitle,
55
kCrossrefPrfTitle,
56
kCrossrefSecPrefix,
57
kCrossrefTblTitle,
58
kCrossrefThmTitle,
59
kCss,
60
kCssPropertyProcessing,
61
kDark,
62
kDfPrint,
63
kDisplayName,
64
kDownloadUrl,
65
kDraftLabel,
66
kEcho,
67
kEmbedResources,
68
kEngine,
69
kEnvironmentProofTitle,
70
kEnvironmentRemarkTitle,
71
kEnvironmentSolutionTitle,
72
kEPubCoverImage,
73
kError,
74
kEval,
75
kExecuteDaemon,
76
kExecuteDaemonRestart,
77
kExecuteDebug,
78
kExecuteEnabled,
79
kExecuteIpynb,
80
kExtensionName,
81
kFigAlign,
82
kFigAsp,
83
kFigDpi,
84
kFigEnv,
85
kFigFormat,
86
kFigHeight,
87
kFigPos,
88
kFigWidth,
89
kFilterParams,
90
kFilters,
91
kFormatLinks,
92
kFormatResources,
93
kFreeze,
94
kGladtex,
95
kHighlightStyle,
96
kSyntaxHighlighting,
97
kHtmlMathMethod,
98
kHtmlPreTagProcessing,
99
kHtmlTableProcessing,
100
kInclude,
101
kIncludeAfterBody,
102
kIncludeBeforeBody,
103
kIncludeInHeader,
104
kInlineIncludes,
105
kIpynbFilters,
106
kIpynbProduceSourceNotebook,
107
kIpynbShellInteractivity,
108
kKatex,
109
kKeepHidden,
110
kKeepIpynb,
111
kKeepMd,
112
kKeepSource,
113
kKeepTex,
114
kKeepTyp,
115
kLatexAutoInstall,
116
kLatexAutoMk,
117
kLatexClean,
118
kLatexInputPaths,
119
kLatexMakeIndex,
120
kLatexMakeIndexOpts,
121
kLatexMaxRuns,
122
kLatexMinRuns,
123
kLatexOutputDir,
124
kLatexTinyTex,
125
kLatexTlmgrOpts,
126
kLaunchBinderTitle,
127
kLaunchDevContainerTitle,
128
kLight,
129
kLinkExternalFilter,
130
kLinkExternalIcon,
131
kLinkExternalNewwindow,
132
kListingPageCategoryAll,
133
kListingPageFieldAuthor,
134
kListingPageFieldCategories,
135
kListingPageFieldDate,
136
kListingPageFieldDescription,
137
kListingPageFieldFileModified,
138
kListingPageFieldFileName,
139
kListingPageFieldReadingTime,
140
kListingPageFieldSubtitle,
141
kListingPageFieldTitle,
142
kListingPageFieldWordCount,
143
kListingPageFilter,
144
kListingPageMinutesCompact,
145
kListingPageNoMatches,
146
kListingPageOrderBy,
147
kListingPageOrderByDateAsc,
148
kListingPageOrderByDateDesc,
149
kListingPageOrderByDefault,
150
kListingPageOrderByNumberAsc,
151
kListingPageOrderByNumberDesc,
152
kListingPageWords,
153
kListings,
154
kManuscriptMecaBundle,
155
kMarkdownHeadings,
156
kMathjax,
157
kMathml,
158
kMergeIncludes,
159
kMermaidFormat,
160
kNotebookLinks,
161
kNotebookPreserveCells,
162
kNotebookPreviewBack,
163
kNotebookPreviewDownload,
164
kNotebookPreviewDownloadSrc,
165
kNotebooks,
166
kNotebookSubarticles,
167
kNotebookView,
168
kNotebookViewStyle,
169
kNumberOffset,
170
kNumberSections,
171
kOtherLinksTitle,
172
kOutput,
173
kOutputDivs,
174
kOutputExt,
175
kOutputFile,
176
kPageWidth,
177
kPdfEngine,
178
kPdfEngineOpt,
179
kPdfEngineOpts,
180
kPdfStandard,
181
kPlotlyConnected,
182
kPreferHtml,
183
kPreserveYaml,
184
kQuartoFilters,
185
kReferenceLocation,
186
kRelatedFormatsTitle,
187
kRelatedNotebooksTitle,
188
kRepoActionLinksEdit,
189
kRepoActionLinksIssue,
190
kRepoActionLinksSource,
191
kResourcePath,
192
kSearchClearButtonTitle,
193
kSearchCopyLinkTitle,
194
kSearchDetatchedCancelButtonTitle,
195
kSearchHideMatchesText,
196
kSearchLabel,
197
kSearchMatchingDocumentsText,
198
kSearchMoreMatchText,
199
kSearchNoResultsText,
200
kSearchSubmitButtonTitle,
201
kSearchTextPlaceholder,
202
kSectionDivs,
203
kSectionTitleAbstract,
204
kSectionTitleAppendices,
205
kSectionTitleCitation,
206
kSectionTitleCopyright,
207
kSectionTitleFootnotes,
208
kSectionTitleReferences,
209
kSectionTitleReuse,
210
kSelfContained,
211
kSelfContainedMath,
212
kShiftHeadingLevelBy,
213
kShortcodes,
214
kSlideLevel,
215
kSourceNotebookPrefix,
216
kStandalone,
217
kSyntaxDefinitions,
218
kTableOfContents,
219
kTargetFormat,
220
kTblColwidths,
221
kTemplate,
222
kTitleBlockAffiliationPlural,
223
kTitleBlockAffiliationSingle,
224
kTitleBlockAuthorPlural,
225
kTitleBlockAuthorSingle,
226
kTitleBlockKeywords,
227
kTitleBlockModified,
228
kTitleBlockPublished,
229
kTitlePrefix,
230
kToc,
231
kTocDepth,
232
kTocTitleDocument,
233
kTocTitleWebsite,
234
kToggleDarkMode,
235
kToggleNavigation,
236
kToggleReaderMode,
237
kToggleSection,
238
kToggleSidebar,
239
kToolsDownload,
240
kToolsShare,
241
kTopLevelDivision,
242
kUseRsvgConvert,
243
kValidateYaml,
244
kVariables,
245
kVariant,
246
kWarning,
247
kWebtex,
248
kWrap,
249
} from "./constants.ts";
250
251
import { HtmlPostProcessor, RenderServices } from "../command/render/types.ts";
252
import { QuartoFilterSpec } from "../command/render/types.ts";
253
import { ProjectContext } from "../project/types.ts";
254
import { Brand } from "../core/brand/brand.ts";
255
256
export const kDependencies = "dependencies";
257
export const kSassBundles = "sass-bundles";
258
export const kHtmlPostprocessors = "html-postprocessors";
259
export const kHtmlFinalizers = "html-finalizers";
260
export const kBodyEnvelope = "body-envelope";
261
export const kTextHighlightingMode = "text-highlighting-mode";
262
export const kQuartoCssVariables = "css-variables";
263
export const kMarkdownAfterBody = "render-after-body";
264
265
export type Metadata = {
266
[key: string]: unknown;
267
};
268
269
export interface FormatDependency {
270
name: string;
271
version?: string;
272
external?: boolean;
273
meta?: Record<string, string>;
274
links?: { rel: string; href: string; type?: string }[];
275
scripts?: DependencyHtmlFile[];
276
stylesheets?: DependencyHtmlFile[];
277
serviceworkers?: DependencyServiceWorker[];
278
head?: string;
279
resources?: DependencyFile[];
280
}
281
282
export interface DependencyFile {
283
name: string;
284
path: string;
285
}
286
287
export interface DependencyServiceWorker {
288
source: string;
289
destination?: string;
290
}
291
292
export interface DependencyHtmlFile extends DependencyFile {
293
attribs?: Record<string, string>;
294
afterBody?: boolean;
295
}
296
297
export interface BodyEnvelope {
298
header?: string;
299
before?: string;
300
afterPreamble?: string;
301
afterPostamble?: string;
302
}
303
304
export interface SassLayer {
305
uses: string;
306
defaults: string;
307
functions: string;
308
mixins: string;
309
rules: string;
310
}
311
312
export interface SassBundleLayersWithBrand {
313
key: string;
314
user?: (SassLayer | "brand")[];
315
quarto?: SassLayer;
316
framework?: SassLayer;
317
loadPaths?: string[];
318
}
319
320
export interface SassBundleWithBrand extends SassBundleLayersWithBrand {
321
dependency: string;
322
dark?: {
323
user?: (SassLayer | "brand")[];
324
quarto?: SassLayer;
325
framework?: SassLayer;
326
default?: boolean;
327
};
328
attribs?: Record<string, string>;
329
}
330
331
export interface SassBundleLayers {
332
key: string;
333
user?: SassLayer[];
334
quarto?: SassLayer;
335
framework?: SassLayer;
336
loadPaths?: string[];
337
}
338
339
export interface SassBundle extends SassBundleLayers {
340
dependency: string;
341
dark?: {
342
user?: SassLayer[];
343
quarto?: SassLayer;
344
framework?: SassLayer;
345
default?: boolean;
346
};
347
attribs?: Record<string, string>;
348
}
349
350
export type PandocFilter = {
351
type: "json" | "lua";
352
path: string;
353
};
354
355
export type QuartoFilterEntryPoint = PandocFilter & { "at": string };
356
357
export type QuartoFilter = string | PandocFilter | QuartoFilterEntryPoint;
358
359
export function isPandocFilter(filter: QuartoFilter): filter is PandocFilter {
360
return (<PandocFilter> filter).path !== undefined;
361
}
362
363
export function isFilterEntryPoint(
364
filter: QuartoFilter,
365
): filter is QuartoFilterEntryPoint {
366
if (typeof filter === "string") {
367
return false;
368
}
369
return (<QuartoFilterEntryPoint> filter).at !== undefined;
370
}
371
372
export interface NotebookPreviewDescriptor {
373
notebook: string;
374
url?: string;
375
title?: string;
376
[kDownloadUrl]?: string;
377
order?: number;
378
}
379
380
export interface FormatExtras {
381
args?: string[];
382
pandoc?: FormatPandoc;
383
metadata?: Metadata;
384
metadataOverride?: Metadata;
385
[kIncludeInHeader]?: string[];
386
[kIncludeBeforeBody]?: string[];
387
[kIncludeAfterBody]?: string[];
388
[kFilters]?: {
389
pre?: QuartoFilter[];
390
post?: QuartoFilter[];
391
};
392
[kFilterParams]?: Record<string, unknown>;
393
[kNotebooks]?: NotebookPreviewDescriptor[];
394
postprocessors?: Array<
395
(
396
output: string,
397
) => Promise<{ supporting?: string[]; resources?: string[] } | void>
398
>;
399
templateContext?: FormatTemplateContext;
400
html?: {
401
[kDependencies]?: FormatDependency[];
402
[kSassBundles]?: SassBundleWithBrand[];
403
[kBodyEnvelope]?: BodyEnvelope;
404
[kHtmlPostprocessors]?: Array<HtmlPostProcessor>;
405
[kHtmlFinalizers]?: Array<
406
(doc: Document) => Promise<void>
407
>;
408
[kTextHighlightingMode]?: "light" | "dark" | "none" | undefined;
409
[kQuartoCssVariables]?: string[];
410
[kMarkdownAfterBody]?: string[];
411
};
412
}
413
414
export interface FormatIdentifier {
415
[kBaseFormat]?: string;
416
[kTargetFormat]?: string;
417
[kDisplayName]?: string;
418
[kExtensionName]?: string;
419
}
420
421
// pandoc output format
422
export interface Format {
423
identifier: FormatIdentifier;
424
render: FormatRender;
425
execute: FormatExecute;
426
pandoc: FormatPandoc;
427
language: FormatLanguage;
428
metadata: Metadata;
429
430
/**
431
* mergeAdditionalFormats is populated by render-contexts, and
432
* are used to create a Format object with additional formats that
433
* have "less priority" than format information from user YAML.
434
*
435
* Use mergeAdditionalFormats to, e.g., set up custom defaults
436
* that are not driven by the output format.
437
*/
438
//deno-lint-ignore no-explicit-any
439
mergeAdditionalFormats?: (...configs: any[]) => Format;
440
441
resolveFormat?: (format: Format) => void;
442
formatExtras?: (
443
input: string,
444
markdown: string,
445
flags: PandocFlags,
446
format: Format,
447
libDir: string,
448
services: RenderServices,
449
offset?: string,
450
project?: ProjectContext,
451
quiet?: boolean,
452
) => Promise<FormatExtras>;
453
formatPreviewFile?: (
454
file: string,
455
format: Format,
456
) => string;
457
extensions?: Record<string, unknown>;
458
}
459
460
export interface LightDarkBrand {
461
[kLight]?: Brand;
462
[kDark]?: Brand;
463
}
464
465
export interface FormatRender {
466
[kKeepTex]?: boolean;
467
[kKeepTyp]?: boolean;
468
[kKeepSource]?: boolean;
469
[kKeepHidden]?: boolean;
470
[kPreferHtml]?: boolean;
471
[kOutputDivs]?: boolean;
472
[kVariant]?: string;
473
[kOutputExt]?: string;
474
[kPageWidth]?: number;
475
[kFigAlign]?: "left" | "right" | "center" | "default";
476
[kFigPos]?: string | null;
477
[kFigEnv]?: string | null;
478
[kCodeFold]?: "none" | "show" | "hide" | boolean;
479
[kCodeOverflow]?: "wrap" | "scroll";
480
[kCodeLink]?: boolean;
481
[kCodeLineNumbers]?: boolean;
482
[kCodeTools]?: boolean | {
483
source?: boolean;
484
toggle?: boolean;
485
caption?: string;
486
};
487
[kTblColwidths]?: "auto" | boolean | number[];
488
[kShortcodes]?: string[];
489
[kMergeIncludes]?: boolean;
490
[kInlineIncludes]?: boolean;
491
[kPreserveYaml]?: boolean;
492
[kLatexAutoMk]?: boolean;
493
[kLatexAutoInstall]?: boolean;
494
[kLatexMinRuns]?: number;
495
[kLatexMaxRuns]?: number;
496
[kLatexClean]?: boolean;
497
[kPdfStandard]?: string | string[];
498
[kLatexInputPaths]?: string[];
499
[kLatexMakeIndex]?: string;
500
[kLatexMakeIndexOpts]?: string[];
501
[kLatexTlmgrOpts]?: string[];
502
[kLatexOutputDir]?: string | null;
503
[kLatexTinyTex]?: boolean;
504
[kLinkExternalIcon]?: string | boolean;
505
[kLinkExternalNewwindow]?: boolean;
506
[kLinkExternalFilter]?: string;
507
[kSelfContainedMath]?: boolean;
508
[kFormatResources]?: string[];
509
[kFormatLinks]?: boolean | Array<FormatLink | string>;
510
[kNotebookLinks]?: boolean | "inline" | "global";
511
[kNotebookSubarticles]?: boolean;
512
[kNotebookViewStyle]?: "document" | "notebook";
513
[kNotebookView]?:
514
| boolean
515
| NotebookPreviewDescriptor
516
| NotebookPreviewDescriptor[];
517
[kNotebookPreserveCells]?: boolean;
518
[kClearCellOptions]?: boolean;
519
[kIpynbProduceSourceNotebook]?: boolean;
520
[kHtmlTableProcessing]?: "none";
521
[kHtmlPreTagProcessing]?: "none";
522
[kCssPropertyProcessing]?: "none" | "translate";
523
[kUseRsvgConvert]?: boolean;
524
[kValidateYaml]?: boolean;
525
[kCanonicalUrl]?: boolean | string;
526
[kBodyClasses]?: string;
527
[kBrand]?: LightDarkBrand;
528
}
529
530
export interface FormatExecute {
531
// done
532
[kFigWidth]?: number;
533
[kFigHeight]?: number;
534
[kFigFormat]?: "retina" | "png" | "jpeg" | "svg" | "pdf";
535
[kFigDpi]?: number;
536
[kFigAsp]?: number;
537
[kMermaidFormat]?: "png" | "svg" | "js";
538
[kDfPrint]?: "default" | "kable" | "tibble" | "paged";
539
[kCache]?: true | false | "refresh" | null;
540
[kFreeze]?: true | false | "auto";
541
[kExecuteEnabled]?: true | false | null;
542
[kExecuteIpynb]?: true | false | null;
543
[kExecuteDaemon]?: number | boolean | null;
544
[kExecuteDaemonRestart]?: boolean;
545
[kExecuteDebug]?: boolean;
546
[kEngine]?: string;
547
[kEval]?: true | false | null;
548
[kError]?: boolean;
549
[kEcho]?: boolean | "fenced";
550
[kOutput]?: boolean | "all" | "asis";
551
[kWarning]?: boolean;
552
[kInclude]?: boolean;
553
[kKeepMd]?: boolean;
554
[kKeepIpynb]?: boolean;
555
[kIpynbFilters]?: string[];
556
[kIpynbShellInteractivity]?:
557
| null
558
| "all"
559
| "last"
560
| "last_expr"
561
| "none"
562
| "last_expr_or_assign";
563
[kPlotlyConnected]?: boolean;
564
}
565
566
export interface FormatPandoc {
567
from?: string;
568
to?: string;
569
writer?: string;
570
[kTemplate]?: string;
571
[kOutputFile]?: string;
572
standalone?: boolean;
573
[kSelfContained]?: boolean;
574
[kEmbedResources]?: boolean;
575
[kVariables]?: { [key: string]: unknown };
576
[kMarkdownHeadings]?: boolean;
577
[kIncludeBeforeBody]?: string[];
578
[kIncludeAfterBody]?: string[];
579
[kIncludeInHeader]?: string[];
580
[kResourcePath]?: string[];
581
[kReferenceLocation]?: string;
582
[kCiteproc]?: boolean;
583
[kCiteMethod]?: string;
584
[kFilters]?: QuartoFilter[];
585
[kQuartoFilters]?: QuartoFilterSpec;
586
[kPdfEngine]?: string;
587
[kPdfEngineOpts]?: string[];
588
[kPdfEngineOpt]?: string;
589
[kEPubCoverImage]?: string;
590
[kCss]?: string | string[];
591
[kToc]?: boolean;
592
[kTableOfContents]?: boolean;
593
[kTocDepth]?: number;
594
[kListings]?: boolean;
595
[kNumberSections]?: boolean;
596
[kNumberOffset]?: number[];
597
[kHighlightStyle]?: string | Record<string, string> | null;
598
[kSyntaxHighlighting]?: string | Record<string, string> | null;
599
[kSectionDivs]?: boolean;
600
[kHtmlMathMethod]?: string | { method: string; url: string };
601
[kTopLevelDivision]?: string;
602
[kShiftHeadingLevelBy]?: number;
603
[kTitlePrefix]?: string;
604
[kSlideLevel]?: number;
605
[kSyntaxDefinitions]?: string[];
606
[kColumns]?: number;
607
[kWrap]?: "none" | "auto" | "preserve" | number;
608
}
609
610
export interface PandocFlags {
611
to?: string;
612
output?: string;
613
[kStandalone]?: boolean;
614
[kSelfContained]?: boolean;
615
[kEmbedResources]?: boolean;
616
pdfEngine?: string;
617
pdfEngineOpts?: string[];
618
makeIndexOpts?: string[];
619
tlmgrOpts?: string[];
620
natbib?: boolean;
621
biblatex?: boolean;
622
[kToc]?: boolean;
623
[kListings]?: boolean;
624
[kNumberSections]?: boolean;
625
[kNumberOffset]?: number[];
626
[kTopLevelDivision]?: string;
627
[kShiftHeadingLevelBy]?: string;
628
[kIncludeInHeader]?: string;
629
[kIncludeBeforeBody]?: string;
630
[kIncludeAfterBody]?: string;
631
[kReferenceLocation]?: string;
632
[kMathjax]?: boolean;
633
[kKatex]?: boolean;
634
[kMathml]?: boolean;
635
[kGladtex]?: boolean;
636
[kWebtex]?: boolean;
637
}
638
639
// the requested pdf engine, it's options, and the bib engine
640
export interface PdfEngine {
641
pdfEngine: string;
642
pdfEngineOpts?: string[];
643
bibEngine?: "natbib" | "biblatex";
644
indexEngine?: string;
645
indexEngineOpts?: string[];
646
tlmgrOpts?: string[];
647
}
648
649
export interface FormatLanguage {
650
[kTocTitleDocument]?: string;
651
[kTocTitleWebsite]?: string;
652
[kRelatedFormatsTitle]?: string;
653
[kOtherLinksTitle]?: string;
654
[kCodeLinksTitle]?: string;
655
[kLaunchDevContainerTitle]?: string;
656
[kLaunchBinderTitle]?: string;
657
[kSourceNotebookPrefix]?: string;
658
[kRelatedNotebooksTitle]?: string;
659
[kCalloutTipCaption]?: string;
660
[kCalloutNoteCaption]?: string;
661
[kCalloutWarningCaption]?: string;
662
[kCalloutImportantCaption]?: string;
663
[kCalloutCautionCaption]?: string;
664
[kSectionTitleAbstract]?: string;
665
[kSectionTitleCitation]?: string;
666
[kAppendixAttributionBibTex]?: string;
667
[kAppendixAttributionCiteAs]?: string;
668
[kTitleBlockAffiliationPlural]?: string;
669
[kTitleBlockAffiliationSingle]?: string;
670
[kTitleBlockAuthorSingle]?: string;
671
[kTitleBlockAuthorPlural]?: string;
672
[kTitleBlockPublished]?: string;
673
[kTitleBlockModified]?: string;
674
[kTitleBlockKeywords]?: string;
675
[kSectionTitleFootnotes]?: string;
676
[kSectionTitleReferences]?: string;
677
[kSectionTitleAppendices]?: string;
678
[kSectionTitleReuse]?: string;
679
[kAppendixViewLicense]?: string;
680
[kSectionTitleCopyright]?: string;
681
[kCodeSummary]?: string;
682
[kCodeLine]?: string;
683
[kCodeLines]?: string;
684
[kCodeToolsMenuCaption]?: string;
685
[kCodeToolsShowAllCode]?: string;
686
[kCodeToolsHideAllCode]?: string;
687
[kCodeToolsViewSource]?: string;
688
[kCodeToolsSourceCode]?: string;
689
[kToolsDownload]?: string;
690
[kToolsShare]?: string;
691
[kRepoActionLinksEdit]?: string;
692
[kRepoActionLinksSource]?: string;
693
[kRepoActionLinksIssue]?: string;
694
[kSearchLabel]?: string;
695
[kSearchNoResultsText]?: string;
696
[kCopyButtonTooltip]?: string;
697
[kCopyButtonTooltipSuccess]?: string;
698
[kBackToTop]?: string;
699
[kToggleDarkMode]?: string;
700
[kToggleNavigation]?: string;
701
[kToggleReaderMode]?: string;
702
[kToggleSection]?: string;
703
[kToggleSidebar]?: string;
704
[kSearchMatchingDocumentsText]?: string;
705
[kSearchCopyLinkTitle]?: string;
706
[kSearchMoreMatchText]?: string;
707
[kSearchHideMatchesText]?: string;
708
[kSearchClearButtonTitle]?: string;
709
[kSearchTextPlaceholder]?: string;
710
[kSearchDetatchedCancelButtonTitle]?: string;
711
[kSearchSubmitButtonTitle]?: string;
712
[kCrossrefFigTitle]?: string;
713
[kCrossrefTblTitle]?: string;
714
[kCrossrefLstTitle]?: string;
715
[kCrossrefThmTitle]?: string;
716
[kCrossrefLemTitle]?: string;
717
[kCrossrefCorTitle]?: string;
718
[kCrossrefPrfTitle]?: string;
719
[kCrossrefCnjTitle]?: string;
720
[kCrossrefDefTitle]?: string;
721
[kCrossrefExmTitle]?: string;
722
[kCrossrefExrTitle]?: string;
723
[kCrossrefChPrefix]?: string;
724
[kCrossrefApxPrefix]?: string;
725
[kCrossrefSecPrefix]?: string;
726
[kCrossrefEqPrefix]?: string;
727
[kEnvironmentProofTitle]?: string;
728
[kEnvironmentRemarkTitle]?: string;
729
[kEnvironmentSolutionTitle]?: string;
730
[kListingPageOrderBy]?: string;
731
[kListingPageFilter]?: string;
732
[kListingPageOrderByDateAsc]?: string;
733
[kListingPageOrderByDefault]?: string;
734
[kListingPageOrderByDateDesc]?: string;
735
[kListingPageOrderByNumberAsc]?: string;
736
[kListingPageOrderByNumberDesc]?: string;
737
[kListingPageFieldDate]?: string;
738
[kListingPageFieldTitle]?: string;
739
[kListingPageFieldDescription]?: string;
740
[kListingPageFieldAuthor]?: string;
741
[kListingPageFieldFileName]?: string;
742
[kListingPageFieldFileModified]?: string;
743
[kListingPageFieldSubtitle]?: string;
744
[kListingPageFieldReadingTime]?: string;
745
[kListingPageFieldWordCount]?: string;
746
[kListingPageFieldCategories]?: string;
747
[kListingPageMinutesCompact]?: string;
748
[kListingPageWords]?: string;
749
[kListingPageCategoryAll]?: string;
750
[kListingPageNoMatches]?: string;
751
[kNotebookPreviewDownload]?: string;
752
[kNotebookPreviewDownloadSrc]?: string;
753
[kNotebookPreviewBack]?: string;
754
[kArticleNotebookLabel]?: string;
755
[kDraftLabel]?: string;
756
[kManuscriptMecaBundle]?: string;
757
758
// langauge variations e.g. eg, fr, etc.
759
[key: string]: unknown;
760
}
761
762
export interface FormatTemplateContext {
763
template?: string;
764
partials?: string[];
765
}
766
767
export interface FormatLink {
768
icon?: string;
769
text: string;
770
href: string;
771
order?: number;
772
attr?: Record<string, string>;
773
}
774
775
export interface FormatAliasLink {
776
icon?: string;
777
text: string;
778
format: string;
779
attr?: Record<string, string>;
780
}
781
782
export interface OtherLink {
783
icon?: string;
784
text: string;
785
href: string;
786
rel?: string;
787
target?: string;
788
}
789
790