@dogsbay/format-dita 0.2.0-beta.115 → 0.2.0-beta.116

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Publishing: element ids as anchors. DITA ids are unique only within a
3
+ * topic, so two topics in one file can reuse an element id. DITA-OT's HTML
4
+ * writes every element id as `topicid__elementid`; dogsbay keeps the bare id
5
+ * and uses DITA-OT's form only for an id an earlier topic in the file already
6
+ * has, so each anchor on a page is unique.
7
+ */
8
+ import type { AnyNode } from "domhandler";
9
+ /**
10
+ * The anchor of each element id a later topic in the file repeats, by
11
+ * `topicid/elementid` (`u/p` → `u__p`). Ids the first topic to use them keeps
12
+ * are not listed.
13
+ */
14
+ export declare const renamedElementIds: (nodes: AnyNode[]) => Map<string, string>;
15
+ /** The anchor for an element id in a topic: the id, or `topicid__elementid` when an earlier topic has it. */
16
+ export declare const anchorId: (ctx: {
17
+ topicId?: string;
18
+ anchorIds?: Map<string, string>;
19
+ }, id: string) => string;
20
+ //# sourceMappingURL=anchors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchors.d.ts","sourceRoot":"","sources":["../src/anchors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,YAAY,CAAC;AAKnD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,EAAE,KAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAqBtE,CAAC;AAEF,6GAA6G;AAC7G,eAAO,MAAM,QAAQ,GAAI,KAAK;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EAAE,IAAI,MAAM,KAAG,MACjB,CAAC"}
@@ -0,0 +1,35 @@
1
+ const isElement = (node) => node.type === "tag";
2
+ const isTopic = (el) => ` ${el.attribs?.class ?? ""} `.includes(" topic/topic ");
3
+ /**
4
+ * The anchor of each element id a later topic in the file repeats, by
5
+ * `topicid/elementid` (`u/p` → `u__p`). Ids the first topic to use them keeps
6
+ * are not listed.
7
+ */
8
+ export const renamedElementIds = (nodes) => {
9
+ const firstTopic = new Map();
10
+ const renamed = new Map();
11
+ const visit = (list, topicId) => {
12
+ for (const el of list) {
13
+ if (!isElement(el))
14
+ continue;
15
+ if (isTopic(el)) {
16
+ visit(el.children, el.attribs?.id);
17
+ continue;
18
+ }
19
+ const id = el.attribs?.id;
20
+ if (id && topicId !== undefined) {
21
+ const first = firstTopic.get(id);
22
+ if (first === undefined)
23
+ firstTopic.set(id, topicId);
24
+ else if (first !== topicId)
25
+ renamed.set(`${topicId}/${id}`, `${topicId}__${id}`);
26
+ }
27
+ visit(el.children, topicId);
28
+ }
29
+ };
30
+ visit(nodes, undefined);
31
+ return renamed;
32
+ };
33
+ /** The anchor for an element id in a topic: the id, or `topicid__elementid` when an earlier topic has it. */
34
+ export const anchorId = (ctx, id) => (ctx.topicId !== undefined && ctx.anchorIds?.get(`${ctx.topicId}/${id}`)) || id;
35
+ //# sourceMappingURL=anchors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchors.js","sourceRoot":"","sources":["../src/anchors.ts"],"names":[],"mappings":"AASA,MAAM,SAAS,GAAG,CAAC,IAAa,EAAmB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;AAC1E,MAAM,OAAO,GAAG,CAAC,EAAW,EAAW,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAEnG;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAgB,EAAuB,EAAE;IACzE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,MAAM,KAAK,GAAG,CAAC,IAAe,EAAE,OAA2B,EAAQ,EAAE;QACnE,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAAE,SAAS;YAC7B,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBAChB,KAAK,CAAC,EAAE,CAAC,QAAqB,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAChD,SAAS;YACX,CAAC;YACD,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1B,IAAI,EAAE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACjC,IAAI,KAAK,KAAK,SAAS;oBAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;qBAChD,IAAI,KAAK,KAAK,OAAO;oBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,KAAK,EAAE,EAAE,CAAC,CAAC;YACnF,CAAC;YACD,KAAK,CAAC,EAAE,CAAC,QAAqB,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,6GAA6G;AAC7G,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAA0D,EAAE,EAAU,EAAU,EAAE,CACzG,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC"}
package/dist/blocks.d.ts CHANGED
@@ -10,7 +10,7 @@
10
10
  import type { Element } from "domhandler";
11
11
  import type { TreeNode } from "@dogsbay/types";
12
12
  import { type InlineContext } from "./inline.js";
13
- import type { ConrefSiteContext, ConrefSnippetRef } from "./types.js";
13
+ import { type ConrefSiteContext, type ConrefSnippetRef } from "./types.js";
14
14
  export interface BlockContext extends InlineContext {
15
15
  /** Current heading depth for <section>/<example> titles. */
16
16
  headingLevel: number;
@@ -44,8 +44,17 @@ export declare const convertStepContent: (stepEl: Element, ctx: BlockContext) =>
44
44
  * children after.
45
45
  */
46
46
  export declare const convertItemContent: (el: Element, ctx: BlockContext) => TreeNode[];
47
+ /** Publishing: where a topic's related links go (see publishDitaTemp). */
48
+ export declare const PUBLISH_RELATED_LINKS_MARKER = "<!-- dogsbay:related-links -->";
49
+ /** Publishing: where a topic's required links go, at the start of its body (see publishDitaTemp). */
50
+ export declare const PUBLISH_PREREQUISITES_MARKER: RegExp;
47
51
  /** Whether an element name converts as a standalone block (conref-extractable). */
48
52
  export declare const isBlockTarget: (name: string) => boolean;
53
+ /**
54
+ * Publishing: an element with an @id gets an anchor before its blocks, so
55
+ * cross-references to paragraphs, notes, tables and figures land, as they do on
56
+ * DITA-OT's pages. (Headings carry their own id.)
57
+ */
49
58
  export declare function convertBlock(el: Element, ctx: BlockContext): TreeNode[];
50
59
  export declare function convertChildren(el: Element, ctx: BlockContext, skip?: Set<string>): TreeNode[];
51
60
  //# sourceMappingURL=blocks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAsCD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,gBAAgB,EACzB,MAAM,iBAAiB,EACvB,cAAc,MAAM,KACnB,MAOF,CAAC;AAyVF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,OAAO,EACf,KAAK,YAAY,KAChB;IAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAAC,QAAQ,EAAE,QAAQ,EAAE,CAAA;CA4BrD,CAAC;AAoBF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,IAAI,OAAO,EAAE,KAAK,YAAY,KAAG,QAAQ,EAQ3E,CAAC;AAiBF,mFAAmF;AACnF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,OAAmC,CAAC;AAEjF,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,GAAG,QAAQ,EAAE,CAmTvE;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,YAAY,EACjB,IAAI,GAAE,GAAG,CAAC,MAAM,CAAa,GAC5B,QAAQ,EAAE,CA6BZ"}
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EASL,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAA6D,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGtI,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA4CD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,gBAAgB,EACzB,MAAM,iBAAiB,EACvB,cAAc,MAAM,KACnB,MAOF,CAAC;AAkeF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,OAAO,EACf,KAAK,YAAY,KAChB;IAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAAC,QAAQ,EAAE,QAAQ,EAAE,CAAA;CA4BrD,CAAC;AAwCF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,IAAI,OAAO,EAAE,KAAK,YAAY,KAAG,QAAQ,EAQ3E,CAAC;AAUF,0EAA0E;AAC1E,eAAO,MAAM,4BAA4B,mCAAmC,CAAC;AAE7E,qGAAqG;AACrG,eAAO,MAAM,4BAA4B,QAA4C,CAAC;AAiHtF,mFAAmF;AACnF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,OAAmC,CAAC;AAKjF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,GAAG,QAAQ,EAAE,CAcvE;AAoaD,wBAAgB,eAAe,CAC7B,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,YAAY,EACjB,IAAI,GAAE,GAAG,CAAC,MAAM,CAAa,GAC5B,QAAQ,EAAE,CA6BZ"}