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