@commentray/render 0.0.9 → 0.1.1
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.
- package/README.md +1 -1
- package/dist/block-stretch-layout.d.ts.map +1 -1
- package/dist/block-stretch-layout.js +2 -1
- package/dist/block-stretch-layout.js.map +1 -1
- package/dist/browse-page-slug.d.ts +6 -1
- package/dist/browse-page-slug.d.ts.map +1 -1
- package/dist/browse-page-slug.js +6 -1
- package/dist/browse-page-slug.js.map +1 -1
- package/dist/browse-pair-html-test-fixtures.d.ts +10 -0
- package/dist/browse-pair-html-test-fixtures.d.ts.map +1 -0
- package/dist/browse-pair-html-test-fixtures.js +19 -0
- package/dist/browse-pair-html-test-fixtures.js.map +1 -0
- package/dist/build-commentray-nav-search.d.ts +4 -4
- package/dist/build-commentray-nav-search.js +1 -1
- package/dist/code-browser-block-rays.d.ts +29 -0
- package/dist/code-browser-block-rays.d.ts.map +1 -1
- package/dist/code-browser-block-rays.js +120 -0
- package/dist/code-browser-block-rays.js.map +1 -1
- package/dist/code-browser-client.bundle.js +24 -11
- package/dist/code-browser-client.js +766 -116
- package/dist/code-browser-client.js.map +1 -1
- package/dist/code-browser-intro.css +187 -0
- package/dist/code-browser-pair-nav.d.ts +3 -3
- package/dist/code-browser-pair-nav.d.ts.map +1 -1
- package/dist/code-browser-pair-nav.js +25 -13
- package/dist/code-browser-pair-nav.js.map +1 -1
- package/dist/code-browser-wide-intro-controller.d.ts +4 -0
- package/dist/code-browser-wide-intro-controller.d.ts.map +1 -0
- package/dist/code-browser-wide-intro-controller.js +148 -0
- package/dist/code-browser-wide-intro-controller.js.map +1 -0
- package/dist/code-browser-wide-intro-layout.d.ts +3 -0
- package/dist/code-browser-wide-intro-layout.d.ts.map +1 -0
- package/dist/code-browser-wide-intro-layout.js +84 -0
- package/dist/code-browser-wide-intro-layout.js.map +1 -0
- package/dist/code-browser-wide-intro-steps.d.ts +11 -0
- package/dist/code-browser-wide-intro-steps.d.ts.map +1 -0
- package/dist/code-browser-wide-intro-steps.js +108 -0
- package/dist/code-browser-wide-intro-steps.js.map +1 -0
- package/dist/code-browser-wide-intro-ui.d.ts +14 -0
- package/dist/code-browser-wide-intro-ui.d.ts.map +1 -0
- package/dist/code-browser-wide-intro-ui.js +67 -0
- package/dist/code-browser-wide-intro-ui.js.map +1 -0
- package/dist/code-browser.d.ts +18 -4
- package/dist/code-browser.d.ts.map +1 -1
- package/dist/code-browser.js +506 -154
- package/dist/code-browser.js.map +1 -1
- package/dist/commentray-anchor-viewport-probe.d.ts +9 -0
- package/dist/commentray-anchor-viewport-probe.d.ts.map +1 -0
- package/dist/commentray-anchor-viewport-probe.js +13 -0
- package/dist/commentray-anchor-viewport-probe.js.map +1 -0
- package/dist/commentray-preview-html.d.ts +13 -0
- package/dist/commentray-preview-html.d.ts.map +1 -0
- package/dist/commentray-preview-html.js +12 -0
- package/dist/commentray-preview-html.js.map +1 -0
- package/dist/companion-markdown-preview-entry.d.ts +7 -0
- package/dist/companion-markdown-preview-entry.d.ts.map +1 -0
- package/dist/companion-markdown-preview-entry.js +6 -0
- package/dist/companion-markdown-preview-entry.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/inject-md-line-anchors.d.ts +18 -0
- package/dist/inject-md-line-anchors.d.ts.map +1 -0
- package/dist/inject-md-line-anchors.js +250 -0
- package/dist/inject-md-line-anchors.js.map +1 -0
- package/dist/inline-favicon.js +15 -15
- package/dist/markdown-pipeline.d.ts +5 -0
- package/dist/markdown-pipeline.d.ts.map +1 -1
- package/dist/markdown-pipeline.js +47 -1
- package/dist/markdown-pipeline.js.map +1 -1
- package/dist/side-by-side-layout-css.d.ts +1 -1
- package/dist/side-by-side-layout-css.d.ts.map +1 -1
- package/dist/side-by-side-layout-css.js +48 -0
- package/dist/side-by-side-layout-css.js.map +1 -1
- package/package.json +8 -3
- package/dist/code-browser-client.d.ts +0 -2
- package/dist/side-by-side-layout.css +0 -58
- package/dist/side-by-side-layout.embedded.d.ts +0 -3
- package/dist/side-by-side-layout.embedded.d.ts.map +0 -1
- package/dist/side-by-side-layout.embedded.js +0 -3
- package/dist/side-by-side-layout.embedded.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @commentray/render
|
|
2
2
|
|
|
3
|
-
Markdown → HTML rendering stack for [Commentray](https://github.com/d-led/commentray): remark +
|
|
3
|
+
Markdown → HTML rendering stack for [Commentray](https://github.com/d-led/commentray): `remark-parse` + `remark-gfm` (tables, task lists, strikethrough, autolink literals, footnotes), `rehype-slug` on headings, `rehype-sanitize`, `rehype-highlight` (lowlight), Mermaid containers, and ready-made HTML shells (side-by-side and a client-side interactive code browser with in-page token search).
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-stretch-layout.d.ts","sourceRoot":"","sources":["../src/block-stretch-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EAGrB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,KAAK,0BAA0B,EAAwB,MAAM,wBAAwB,CAAC;AAO/F,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,eAAe,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,0BAA0B,CAAC;CACnD,CAAC;AAEF,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC1C,CA6BA;AAgBD;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"block-stretch-layout.d.ts","sourceRoot":"","sources":["../src/block-stretch-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EAGrB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,KAAK,0BAA0B,EAAwB,MAAM,wBAAwB,CAAC;AAO/F,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,eAAe,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,0BAA0B,CAAC;CACnD,CAAC;AAEF,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC1C,CA6BA;AAgBD;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CA+ElE"}
|
|
@@ -61,7 +61,8 @@ export async function tryBuildBlockStretchTableHtml(opts) {
|
|
|
61
61
|
const lines = opts.code.split("\n");
|
|
62
62
|
const lineToBlock = new Map();
|
|
63
63
|
for (const b of links) {
|
|
64
|
-
|
|
64
|
+
const { lo, hiExclusive } = b.markerViewportHalfOpen1Based;
|
|
65
|
+
for (let L = lo; L < hiExclusive; L++) {
|
|
65
66
|
lineToBlock.set(L, b);
|
|
66
67
|
}
|
|
67
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-stretch-layout.js","sourceRoot":"","sources":["../src/block-stretch-layout.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"block-stretch-layout.js","sourceRoot":"","sources":["../src/block-stretch-layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Opaque filename stem for `_site/browse/<slug>.html` (nav search + browse pages).
|
|
3
|
+
* **Stable across rebuilds** while `commentrayPath` and `sourcePath` are unchanged;
|
|
4
|
+
* deterministic from those exact strings. **Rename or move** either file → new
|
|
5
|
+
* strings → **a new slug** (no automatic redirect from old URLs).
|
|
6
|
+
*/
|
|
2
7
|
export declare function browsePageSlugFromPair(pair: {
|
|
3
8
|
sourcePath: string;
|
|
4
9
|
commentrayPath: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browse-page-slug.d.ts","sourceRoot":"","sources":["../src/browse-page-slug.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"browse-page-slug.d.ts","sourceRoot":"","sources":["../src/browse-page-slug.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAKT"}
|
package/dist/browse-page-slug.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Opaque filename stem for `_site/browse/<slug>.html` (nav search + browse pages).
|
|
4
|
+
* **Stable across rebuilds** while `commentrayPath` and `sourcePath` are unchanged;
|
|
5
|
+
* deterministic from those exact strings. **Rename or move** either file → new
|
|
6
|
+
* strings → **a new slug** (no automatic redirect from old URLs).
|
|
7
|
+
*/
|
|
3
8
|
export function browsePageSlugFromPair(pair) {
|
|
4
9
|
return createHash("sha256")
|
|
5
10
|
.update(`${pair.commentrayPath}\0${pair.sourcePath}`, "utf8")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browse-page-slug.js","sourceRoot":"","sources":["../src/browse-page-slug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC
|
|
1
|
+
{"version":3,"file":"browse-page-slug.js","sourceRoot":"","sources":["../src/browse-page-slug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAGtC;IACC,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC;SAC5D,MAAM,CAAC,WAAW,CAAC;SACnB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a minimal temp repo used by link-resolution tests: `.commentray`,
|
|
3
|
+
* `docs/user/install.md`, and parent dirs for `_site/browse/pair.html`.
|
|
4
|
+
*/
|
|
5
|
+
export declare function mkTempRepoWithBrowsePairHtmlLayout(tmpPrefix: string): Promise<{
|
|
6
|
+
repoRoot: string;
|
|
7
|
+
storageRoot: string;
|
|
8
|
+
outHtml: string;
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=browse-pair-html-test-fixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browse-pair-html-test-fixtures.d.ts","sourceRoot":"","sources":["../src/browse-pair-html-test-fixtures.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAsB,kCAAkC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAUD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { mkdir, mkdtemp, writeFile } from "node:fs/promises";
|
|
2
|
+
import { tmpdir } from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
/**
|
|
5
|
+
* Creates a minimal temp repo used by link-resolution tests: `.commentray`,
|
|
6
|
+
* `docs/user/install.md`, and parent dirs for `_site/browse/pair.html`.
|
|
7
|
+
*/
|
|
8
|
+
export async function mkTempRepoWithBrowsePairHtmlLayout(tmpPrefix) {
|
|
9
|
+
const tmp = await mkdtemp(path.join(tmpdir(), tmpPrefix));
|
|
10
|
+
const repoRoot = path.join(tmp, "repo");
|
|
11
|
+
const storageRoot = path.join(repoRoot, ".commentray");
|
|
12
|
+
await mkdir(path.join(repoRoot, "docs", "user"), { recursive: true });
|
|
13
|
+
await mkdir(storageRoot, { recursive: true });
|
|
14
|
+
await writeFile(path.join(repoRoot, "docs", "user", "install.md"), "# Install\n", "utf8");
|
|
15
|
+
const outHtml = path.join(repoRoot, "_site", "browse", "pair.html");
|
|
16
|
+
await mkdir(path.dirname(outHtml), { recursive: true });
|
|
17
|
+
return { repoRoot, storageRoot, outHtml };
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=browse-pair-html-test-fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browse-pair-html-test-fixtures.js","sourceRoot":"","sources":["../src/browse-pair-html-test-fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kCAAkC,CAAC,SAAiB;IAKxE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACvD,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACpE,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -27,9 +27,9 @@ export type DocumentedPairNav = {
|
|
|
27
27
|
sourceOnGithub?: string;
|
|
28
28
|
commentrayOnGithub?: string;
|
|
29
29
|
/**
|
|
30
|
-
* When the static Pages build emits per-pair browse HTML
|
|
31
|
-
*
|
|
32
|
-
*
|
|
30
|
+
* When the static Pages build emits per-pair browse HTML under `_site/browse/`, a URL relative
|
|
31
|
+
* to the site root `index.html` (e.g. `./browse/src/x.ts/index.html` or `./browse/README.md@main.html`)
|
|
32
|
+
* so the hub can open the same Commentray UI without leaving the site.
|
|
33
33
|
*/
|
|
34
34
|
staticBrowseUrl?: string;
|
|
35
35
|
};
|
|
@@ -58,7 +58,7 @@ export type BuildCommentrayNavSearchGithubBlobBase = {
|
|
|
58
58
|
*
|
|
59
59
|
* `documentedPairs` lists every merged pair. When `githubBlobBase` is set, GitHub-style **blob**
|
|
60
60
|
* URLs are included for optional outbound links; the static-site build always adds same-site
|
|
61
|
-
* `staticBrowseUrl` when it emits `_site/browse
|
|
61
|
+
* `staticBrowseUrl` when it emits `_site/browse/` (human `…/index.html` / `@angle.html` shims plus canonical `*.html`).
|
|
62
62
|
*
|
|
63
63
|
* Pairs are merged from the metadata index, a walk of the configured storage `source` tree for
|
|
64
64
|
* every `*.md` companion (flat or Angles layout), and an optional single-page `fallback`. For the
|
|
@@ -65,7 +65,7 @@ async function appendPairRowsSync(rows, sourcePath, commentrayPath, markdownAbs)
|
|
|
65
65
|
*
|
|
66
66
|
* `documentedPairs` lists every merged pair. When `githubBlobBase` is set, GitHub-style **blob**
|
|
67
67
|
* URLs are included for optional outbound links; the static-site build always adds same-site
|
|
68
|
-
* `staticBrowseUrl` when it emits `_site/browse
|
|
68
|
+
* `staticBrowseUrl` when it emits `_site/browse/` (human `…/index.html` / `@angle.html` shims plus canonical `*.html`).
|
|
69
69
|
*
|
|
70
70
|
* Pairs are merged from the metadata index, a walk of the configured storage `source` tree for
|
|
71
71
|
* every `*.md` companion (flat or Angles layout), and an optional single-page `fallback`. For the
|
|
@@ -42,7 +42,36 @@ export declare function gutterRayBezierPaths(x0: number, y0: number, x1: number,
|
|
|
42
42
|
};
|
|
43
43
|
export declare function cubicBezierAcrossGutterD(x0: number, y0: number, x1: number, y1: number, opts?: Pick<GutterRayBezierOpts, "tension" | "clipStart" | "clipEnd">): string;
|
|
44
44
|
export declare function sortBlockLinksBySource(links: BlockScrollLink[]): BlockScrollLink[];
|
|
45
|
+
/** One entry per block id (earliest source span) when scroll-link payloads contain duplicates. */
|
|
46
|
+
export declare function dedupeBlockScrollLinksById(links: BlockScrollLink[]): BlockScrollLink[];
|
|
47
|
+
export declare function sortBlockLinksByCommentrayLine(links: BlockScrollLink[]): BlockScrollLink[];
|
|
48
|
+
/**
|
|
49
|
+
* Next block in companion document order (`commentrayLine`). Gutter doc bands must follow
|
|
50
|
+
* rendered markdown order, which can differ from source line order (multi-file / inverted pairs).
|
|
51
|
+
*/
|
|
52
|
+
export declare function nextBlockLinkInCommentrayOrder(all: ReadonlyArray<BlockScrollLink>, current: BlockScrollLink): BlockScrollLink | undefined;
|
|
45
53
|
export declare function activeBlockIdForViewport(links: BlockScrollLink[], topSourceLine1Based: number): string | null;
|
|
54
|
+
/**
|
|
55
|
+
* Which index-backed block owns the companion line at/above `topCommentrayLine0Based`, in
|
|
56
|
+
* markdown order. Matches {@link pickSourceLine0ForCommentrayScroll}’s block choice so gutter
|
|
57
|
+
* “active” emphasis tracks the **doc** viewport (what the reader is reading), not only the code
|
|
58
|
+
* pane’s top line — which can disagree briefly (e.g. tall page-break gaps).
|
|
59
|
+
*/
|
|
60
|
+
export declare function activeBlockIdForCommentrayLine0(links: BlockScrollLink[], topCommentrayLine0Based: number): string | null;
|
|
46
61
|
/** 0-based index into `code-line-*` ids from 1-based inclusive source line numbers. */
|
|
47
62
|
export declare function codeLineDomIndex0(sourceLine1Based: number): number;
|
|
63
|
+
/**
|
|
64
|
+
* Page-break hosts rendered between a block anchor and the next block anchor (or all breaks after
|
|
65
|
+
* `docTop` when `endExclusive` is null), in tree order.
|
|
66
|
+
*/
|
|
67
|
+
export declare function pageBreakHostsBetweenAnchors(docScrollEl: HTMLElement, docTop: HTMLElement, endExclusive: HTMLElement | null): HTMLElement[];
|
|
68
|
+
/**
|
|
69
|
+
* Lowest viewport Y of rendered companion content for one block, **excluding** synthetic
|
|
70
|
+
* `.commentray-page-break` regions. Used so gutter splines do not extend through tall page-break
|
|
71
|
+
* gaps toward the next block.
|
|
72
|
+
*
|
|
73
|
+
* When `endExclusive` is the next block’s `commentray-block-*` anchor, ranges stop before that
|
|
74
|
+
* node. When it is `null` (last block), the final segment runs to the end of `docScrollEl`.
|
|
75
|
+
*/
|
|
76
|
+
export declare function maxRenderableCommentaryContentBottomViewport(docScrollEl: HTMLElement, docTop: HTMLElement, endExclusive: HTMLElement | null): number;
|
|
48
77
|
//# sourceMappingURL=code-browser-block-rays.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-browser-block-rays.d.ts","sourceRoot":"","sources":["../src/code-browser-block-rays.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AAEvC,sFAAsF;AACtF,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,MAAM,SAAI,GACT,YAAY,CAMd;AAED,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAErD,MAAM,MAAM,QAAQ,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAM,GACxE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAa1C;AAED,wBAAgB,6BAA6B,CAC3C,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,QAAQ,GACX,MAAM,CAER;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAC3B,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,QAAQ,EACZ,CAAC,EAAE,MAAM,GACR,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAWtF;AAMD,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,mBAAwB,GAC7B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAepC;AAED,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAM,GACxE,MAAM,CAGR;AAMD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAElF;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EAAE,EACxB,mBAAmB,EAAE,MAAM,GAC1B,MAAM,GAAG,IAAI,CAMf;AAED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAElE"}
|
|
1
|
+
{"version":3,"file":"code-browser-block-rays.d.ts","sourceRoot":"","sources":["../src/code-browser-block-rays.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,31 @@ function fmt(n) {
|
|
|
79
79
|
export function sortBlockLinksBySource(links) {
|
|
80
80
|
return [...links].sort((a, b) => a.sourceStart - b.sourceStart);
|
|
81
81
|
}
|
|
82
|
+
/** One entry per block id (earliest source span) when scroll-link payloads contain duplicates. */
|
|
83
|
+
export function dedupeBlockScrollLinksById(links) {
|
|
84
|
+
const byId = new Map();
|
|
85
|
+
for (const l of sortBlockLinksBySource(links)) {
|
|
86
|
+
if (!byId.has(l.id))
|
|
87
|
+
byId.set(l.id, l);
|
|
88
|
+
}
|
|
89
|
+
return sortBlockLinksBySource([...byId.values()]);
|
|
90
|
+
}
|
|
91
|
+
export function sortBlockLinksByCommentrayLine(links) {
|
|
92
|
+
return [...links].sort((a, b) => a.commentrayLine !== b.commentrayLine
|
|
93
|
+
? a.commentrayLine - b.commentrayLine
|
|
94
|
+
: a.sourceStart - b.sourceStart);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Next block in companion document order (`commentrayLine`). Gutter doc bands must follow
|
|
98
|
+
* rendered markdown order, which can differ from source line order (multi-file / inverted pairs).
|
|
99
|
+
*/
|
|
100
|
+
export function nextBlockLinkInCommentrayOrder(all, current) {
|
|
101
|
+
const sorted = sortBlockLinksByCommentrayLine([...all]);
|
|
102
|
+
const idx = sorted.findIndex((l) => l.id === current.id);
|
|
103
|
+
if (idx < 0)
|
|
104
|
+
return undefined;
|
|
105
|
+
return sorted[idx + 1];
|
|
106
|
+
}
|
|
82
107
|
export function activeBlockIdForViewport(links, topSourceLine1Based) {
|
|
83
108
|
if (links.length === 0)
|
|
84
109
|
return null;
|
|
@@ -88,8 +113,103 @@ export function activeBlockIdForViewport(links, topSourceLine1Based) {
|
|
|
88
113
|
const b = links.find((x) => x.commentrayLine === mdLine);
|
|
89
114
|
return b?.id ?? null;
|
|
90
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Which index-backed block owns the companion line at/above `topCommentrayLine0Based`, in
|
|
118
|
+
* markdown order. Matches {@link pickSourceLine0ForCommentrayScroll}’s block choice so gutter
|
|
119
|
+
* “active” emphasis tracks the **doc** viewport (what the reader is reading), not only the code
|
|
120
|
+
* pane’s top line — which can disagree briefly (e.g. tall page-break gaps).
|
|
121
|
+
*/
|
|
122
|
+
export function activeBlockIdForCommentrayLine0(links, topCommentrayLine0Based) {
|
|
123
|
+
if (links.length === 0)
|
|
124
|
+
return null;
|
|
125
|
+
const sorted = sortBlockLinksByCommentrayLine([...links]);
|
|
126
|
+
const head = sorted[0];
|
|
127
|
+
if (head === undefined)
|
|
128
|
+
return null;
|
|
129
|
+
let best = head;
|
|
130
|
+
for (const b of sorted) {
|
|
131
|
+
if (b.commentrayLine <= topCommentrayLine0Based)
|
|
132
|
+
best = b;
|
|
133
|
+
}
|
|
134
|
+
return best.id;
|
|
135
|
+
}
|
|
91
136
|
/** 0-based index into `code-line-*` ids from 1-based inclusive source line numbers. */
|
|
92
137
|
export function codeLineDomIndex0(sourceLine1Based) {
|
|
93
138
|
return Math.max(0, sourceLine1Based - 1);
|
|
94
139
|
}
|
|
140
|
+
const PAGE_BREAK_HOST_SELECTOR = '.commentray-page-break[data-commentray-page-break="true"]';
|
|
141
|
+
function elementFollowsInDocumentOrder(a, b) {
|
|
142
|
+
return (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) !== 0;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Page-break hosts rendered between a block anchor and the next block anchor (or all breaks after
|
|
146
|
+
* `docTop` when `endExclusive` is null), in tree order.
|
|
147
|
+
*/
|
|
148
|
+
export function pageBreakHostsBetweenAnchors(docScrollEl, docTop, endExclusive) {
|
|
149
|
+
return Array.from(docScrollEl.querySelectorAll(PAGE_BREAK_HOST_SELECTOR)).filter((pb) => elementFollowsInDocumentOrder(docTop, pb) &&
|
|
150
|
+
(endExclusive === null || elementFollowsInDocumentOrder(pb, endExclusive)));
|
|
151
|
+
}
|
|
152
|
+
const MIN_LAYOUT_RECT_SIDE = 0.5;
|
|
153
|
+
function isInsidePageBreakHost(el) {
|
|
154
|
+
const host = el.closest(PAGE_BREAK_HOST_SELECTOR);
|
|
155
|
+
return Boolean(host && !el.isSameNode(host));
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Lowest `getBoundingClientRect().bottom` among laid-out elements strictly after `startAfter` and
|
|
159
|
+
* strictly before `endBefore`, excluding page-break hosts and their descendants (same visual intent
|
|
160
|
+
* as a `Range` over the gap, without relying on `Range#getClientRects`, which jsdom omits).
|
|
161
|
+
*/
|
|
162
|
+
/**
|
|
163
|
+
* Walks laid-out descendants of `docScrollEl` strictly after `startAfter`; when `endBefore` is set,
|
|
164
|
+
* only elements strictly before that node contribute. Shared by bounded segments and the
|
|
165
|
+
* open-ended tail after the last page break.
|
|
166
|
+
*/
|
|
167
|
+
function maxContentBottomByElementWalk(docScrollEl, startAfter, endBefore) {
|
|
168
|
+
let maxBottom = startAfter.getBoundingClientRect().top + 2;
|
|
169
|
+
for (const el of Array.from(docScrollEl.querySelectorAll("*"))) {
|
|
170
|
+
if (!(el instanceof HTMLElement))
|
|
171
|
+
continue;
|
|
172
|
+
if (endBefore !== null) {
|
|
173
|
+
if (el === endBefore)
|
|
174
|
+
continue;
|
|
175
|
+
if (!elementFollowsInDocumentOrder(el, endBefore))
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
if (!elementFollowsInDocumentOrder(startAfter, el))
|
|
179
|
+
continue;
|
|
180
|
+
if (isInsidePageBreakHost(el))
|
|
181
|
+
continue;
|
|
182
|
+
if (el.matches(PAGE_BREAK_HOST_SELECTOR))
|
|
183
|
+
continue;
|
|
184
|
+
const br = el.getBoundingClientRect();
|
|
185
|
+
if (br.width < MIN_LAYOUT_RECT_SIDE || br.height < MIN_LAYOUT_RECT_SIDE)
|
|
186
|
+
continue;
|
|
187
|
+
maxBottom = Math.max(maxBottom, br.bottom);
|
|
188
|
+
}
|
|
189
|
+
return maxBottom;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Lowest viewport Y of rendered companion content for one block, **excluding** synthetic
|
|
193
|
+
* `.commentray-page-break` regions. Used so gutter splines do not extend through tall page-break
|
|
194
|
+
* gaps toward the next block.
|
|
195
|
+
*
|
|
196
|
+
* When `endExclusive` is the next block’s `commentray-block-*` anchor, ranges stop before that
|
|
197
|
+
* node. When it is `null` (last block), the final segment runs to the end of `docScrollEl`.
|
|
198
|
+
*/
|
|
199
|
+
export function maxRenderableCommentaryContentBottomViewport(docScrollEl, docTop, endExclusive) {
|
|
200
|
+
const breaks = pageBreakHostsBetweenAnchors(docScrollEl, docTop, endExclusive);
|
|
201
|
+
let maxBottom = docTop.getBoundingClientRect().top + 2;
|
|
202
|
+
let cursor = docTop;
|
|
203
|
+
for (const pb of breaks) {
|
|
204
|
+
maxBottom = Math.max(maxBottom, maxContentBottomByElementWalk(docScrollEl, cursor, pb));
|
|
205
|
+
cursor = pb;
|
|
206
|
+
}
|
|
207
|
+
if (endExclusive) {
|
|
208
|
+
maxBottom = Math.max(maxBottom, maxContentBottomByElementWalk(docScrollEl, cursor, endExclusive));
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
maxBottom = Math.max(maxBottom, maxContentBottomByElementWalk(docScrollEl, cursor, null));
|
|
212
|
+
}
|
|
213
|
+
return maxBottom;
|
|
214
|
+
}
|
|
95
215
|
//# sourceMappingURL=code-browser-block-rays.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-browser-block-rays.js","sourceRoot":"","sources":["../src/code-browser-block-rays.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code-browser-block-rays.js","sourceRoot":"","sources":["../src/code-browser-block-rays.ts"],"names":[],"mappings":"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"}
|