Skip to content

Commit bc6d312

Browse files
committed
use correct label for appendix crossrefs
1 parent a2f2746 commit bc6d312

23 files changed

+44
-4
lines changed

src/config/constants.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ export const kCrossrefFigPrefix = "crossref-fig-prefix";
211211
export const kCrossrefTblPrefix = "crossref-tbl-prefix";
212212
export const kCrossrefLstPrefix = "crossref-lst-prefix";
213213
export const kCrossrefChPrefix = "crossref-ch-prefix";
214+
export const kCrossrefApxPrefix = "crossref-apx-prefix";
214215
export const kCrossrefSecPrefix = "crossref-sec-prefix";
215216
export const kCrossrefEqPrefix = "crossref-eq-prefix";
216217
export const kCrossrefThmPrefix = "crossref-thm-prefix";
@@ -300,6 +301,7 @@ export const kLanguageDefaultsKeys = [
300301
kCrossrefTblPrefix,
301302
kCrossrefLstPrefix,
302303
kCrossrefChPrefix,
304+
kCrossrefApxPrefix,
303305
kCrossrefSecPrefix,
304306
kCrossrefEqPrefix,
305307
kCrossrefThmPrefix,
@@ -441,6 +443,7 @@ export const kCrossrefChapters = "chapters";
441443
export const kCrossrefLabels = "labels";
442444
export const kCrossrefAppendixTitle = "appendix-title";
443445
export const kCrossrefAppendixDelim = "appendix-delim";
446+
export const kCrossrefChaptersAppendix = "chapters-appendix";
444447
export const kCrossrefChaptersAlpha = "chapters-alpha";
445448
export const kCrossrefChapterId = "chapter-id";
446449

src/config/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import {
3131
kCodeToolsViewSource,
3232
kCopyButtonTooltip,
3333
kCopyButtonTooltipSuccess,
34+
kCrossrefApxPrefix,
3435
kCrossrefChPrefix,
3536
kCrossrefCnjTitle,
3637
kCrossrefCorTitle,
@@ -518,6 +519,7 @@ export interface FormatLanguage {
518519
[kCrossrefExmTitle]?: string;
519520
[kCrossrefExrTitle]?: string;
520521
[kCrossrefChPrefix]?: string;
522+
[kCrossrefApxPrefix]?: string;
521523
[kCrossrefSecPrefix]?: string;
522524
[kCrossrefEqPrefix]?: string;
523525
[kEnvironmentProofTitle]?: string;

src/project/project-crossrefs.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
kCrossref,
1111
kCrossrefChapterId,
1212
kCrossrefChaptersAlpha,
13+
kCrossrefChaptersAppendix,
1314
} from "../config/constants.ts";
1415
import { Metadata } from "../config/types.ts";
1516

@@ -41,6 +42,7 @@ export function crossrefIndexForOutputFile(
4142
export function deleteCrossrefMetadata(metadata: Metadata) {
4243
const crossref = metadata[kCrossref] as Metadata;
4344
if (crossref) {
45+
delete crossref[kCrossrefChaptersAppendix];
4446
delete crossref[kCrossrefChaptersAlpha];
4547
delete crossref[kCrossrefChapterId];
4648
if (Object.keys(crossref).length === 0) {

src/project/types/book/book-chapters.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
kCrossrefAppendixTitle,
99
kCrossrefChapterId,
1010
kCrossrefChaptersAlpha,
11+
kCrossrefChaptersAppendix,
1112
kDescription,
1213
kDoi,
1314
kNumberOffset,
@@ -55,6 +56,7 @@ export function withChapterMetadata(
5556

5657
// set crossref label type if this is an appendix
5758
if (chapterInfo.appendix) {
59+
crossref[kCrossrefChaptersAppendix] = true;
5860
crossref[kCrossrefChaptersAlpha] = true;
5961
}
6062
} else {

src/project/types/book/book-crossrefs.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@ import { Element, HTMLDocument } from "../../../core/deno-dom.ts";
1414
import { pathWithForwardSlashes } from "../../../core/path.ts";
1515

1616
import {
17+
kCrossrefApxPrefix,
1718
kCrossrefChapterId,
1819
kCrossrefChapters,
1920
kCrossrefChaptersAlpha,
21+
kCrossrefChaptersAppendix,
2022
kCrossrefChPrefix,
2123
kCrossrefLabels,
2224
kCrossrefSecPrefix,
@@ -168,6 +170,7 @@ interface BookCrossrefIndex {
168170
interface BookCrossrefOptions {
169171
[kCrossrefLabels]?: string;
170172
[kCrossrefChapters]?: boolean;
173+
[kCrossrefChaptersAppendix]?: boolean;
171174
[kCrossrefChaptersAlpha]?: boolean;
172175
[key: string]: string | string[] | boolean | undefined;
173176
}
@@ -290,7 +293,9 @@ function formatCrossref(
290293
const refNumber = numberOption(entry.order, options, type);
291294
if (type === "sec" && !noPrefix) {
292295
const prefix = (options[kCrossrefChapters] && isChapterRef(entry))
293-
? language[kCrossrefChPrefix]
296+
? options[kCrossrefChaptersAppendix]
297+
? language[kCrossrefApxPrefix]
298+
: language[kCrossrefChPrefix]
294299
: language[kCrossrefSecPrefix];
295300
return prefix + "&nbsp" + refNumber;
296301
} else {

src/resources/editor/tools/vs-code.mjs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9581,6 +9581,7 @@ var require_yaml_intelligence_resources = __commonJS({
95819581
"crossref-tbl-prefix": "string",
95829582
"crossref-lst-prefix": "string",
95839583
"crossref-ch-prefix": "string",
9584+
"crossref-apx-prefix": "string",
95849585
"crossref-sec-prefix": "string",
95859586
"crossref-eq-prefix": "string",
95869587
"crossref-thm-prefix": "string",
@@ -18821,6 +18822,7 @@ var require_yaml_intelligence_resources = __commonJS({
1882118822
"Book references file",
1882218823
"Base name for single-file output (e.g. PDF, ePub)",
1882318824
"Cover image (used in HTML and ePub formats)",
18825+
"Alternative text for cover image (used in HTML format)",
1882418826
"Sharing buttons to include on navbar or sidebar (one or more of\n<code>twitter</code>, <code>facebook</code>, <code>linkedin</code>)",
1882518827
"Sharing buttons to include on navbar or sidebar (one or more of\n<code>twitter</code>, <code>facebook</code>, <code>linkedin</code>)",
1882618828
"Download buttons for other formats to include on navbar or sidebar\n(one or more of <code>pdf</code>, <code>epub</code>, and\n<code>docx</code>)",
@@ -19022,6 +19024,7 @@ var require_yaml_intelligence_resources = __commonJS({
1902219024
"Book references file",
1902319025
"Base name for single-file output (e.g.&nbsp;PDF, ePub)",
1902419026
"Cover image (used in HTML and ePub formats)",
19027+
"Alternative text for cover image (used in HTML format)",
1902519028
"Sharing buttons to include on navbar or sidebar (one or more of\n<code>twitter</code>, <code>facebook</code>, <code>linkedin</code>)",
1902619029
"Sharing buttons to include on navbar or sidebar (one or more of\n<code>twitter</code>, <code>facebook</code>, <code>linkedin</code>)",
1902719030
"Download buttons for other formats to include on navbar or sidebar\n(one or more of <code>pdf</code>, <code>epub</code>, and\n<code>docx</code>)",

src/resources/editor/tools/yaml/web-worker.js

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/resources/editor/tools/yaml/yaml-intelligence-resources.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2560,6 +2560,7 @@
25602560
"crossref-tbl-prefix": "string",
25612561
"crossref-lst-prefix": "string",
25622562
"crossref-ch-prefix": "string",
2563+
"crossref-apx-prefix": "string",
25632564
"crossref-sec-prefix": "string",
25642565
"crossref-eq-prefix": "string",
25652566
"crossref-thm-prefix": "string",
@@ -11800,6 +11801,7 @@
1180011801
"Book references file",
1180111802
"Base name for single-file output (e.g.&nbsp;PDF, ePub)",
1180211803
"Cover image (used in HTML and ePub formats)",
11804+
"Alternative text for cover image (used in HTML format)",
1180311805
"Sharing buttons to include on navbar or sidebar (one or more of\n<code>twitter</code>, <code>facebook</code>, <code>linkedin</code>)",
1180411806
"Sharing buttons to include on navbar or sidebar (one or more of\n<code>twitter</code>, <code>facebook</code>, <code>linkedin</code>)",
1180511807
"Download buttons for other formats to include on navbar or sidebar\n(one or more of <code>pdf</code>, <code>epub</code>, and\n<code>docx</code>)",
@@ -12001,6 +12003,7 @@
1200112003
"Book references file",
1200212004
"Base name for single-file output (e.g.&nbsp;PDF, ePub)",
1200312005
"Cover image (used in HTML and ePub formats)",
12006+
"Alternative text for cover image (used in HTML format)",
1200412007
"Sharing buttons to include on navbar or sidebar (one or more of\n<code>twitter</code>, <code>facebook</code>, <code>linkedin</code>)",
1200512008
"Sharing buttons to include on navbar or sidebar (one or more of\n<code>twitter</code>, <code>facebook</code>, <code>linkedin</code>)",
1200612009
"Download buttons for other formats to include on navbar or sidebar\n(one or more of <code>pdf</code>, <code>epub</code>, and\n<code>docx</code>)",

src/resources/filters/crossref/index.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,15 @@ function indexAddHeading(identifier)
6060
end
6161

6262
-- add an entry to the index
63-
function indexAddEntry(label, parent, order, caption)
63+
function indexAddEntry(label, parent, order, caption, appendix)
6464
if caption ~= nil then
6565
caption = pandoc.List(caption)
6666
end
6767
crossref.index.entries[label] = {
6868
parent = parent,
6969
order = order,
7070
caption = caption,
71+
appendix = appendix
7172
}
7273
end
7374

src/resources/filters/crossref/refs.lua

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,11 @@ function resolveRefs()
4848
local chapters = crossrefOption("chapters", false)
4949
if chapters then
5050
if resolve and type == "sec" and isChapterRef(entry.order.section) then
51-
prefixType = "ch"
51+
if entry.appendix then
52+
prefixType = "apx"
53+
else
54+
prefixType = "ch"
55+
end
5256
end
5357
end
5458
if resolve or type ~= "sec" then

0 commit comments

Comments
 (0)