@t8/docsgen 0.1.37 → 0.1.38
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/dist/bin.js +41 -35
- package/package.json +1 -1
- package/src/bin/getNav.ts +5 -2
- package/src/bin/getParsedContent.ts +42 -37
package/dist/bin.js
CHANGED
|
@@ -370,12 +370,14 @@ async function getNav(ctx, navItems) {
|
|
|
370
370
|
}
|
|
371
371
|
if (navItems.length > 1) {
|
|
372
372
|
for (let { id, title, items } of navItems) {
|
|
373
|
+
let itemLink = `${root}${contentDir}/${encodeURIComponent(id)}`;
|
|
373
374
|
s += `
|
|
374
|
-
<li data-id="${id}"><a href="${
|
|
375
|
+
<li data-id="${id}"><a href="${itemLink}">${title}</a>`;
|
|
375
376
|
if (items.length !== 0) {
|
|
376
377
|
s += "\n <ul>";
|
|
377
|
-
for (let { title: title2 } of items)
|
|
378
|
-
|
|
378
|
+
for (let { id: id2, title: title2 } of items)
|
|
379
|
+
s += `
|
|
380
|
+
<li><a href="${itemLink}#${encodeURIComponent(id2)}">${title2}</a></li>`;
|
|
379
381
|
s += "\n </ul>\n";
|
|
380
382
|
}
|
|
381
383
|
s += "</li>";
|
|
@@ -429,44 +431,48 @@ function buildNav(ctx, dom) {
|
|
|
429
431
|
let navItem = null;
|
|
430
432
|
let nav = [];
|
|
431
433
|
if (singlePage)
|
|
432
|
-
|
|
434
|
+
navItem = {
|
|
433
435
|
id: "Overview",
|
|
434
436
|
title: "Overview",
|
|
435
437
|
items: []
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
if (
|
|
454
|
-
|
|
455
|
-
navItem = {
|
|
438
|
+
};
|
|
439
|
+
let headings = dom.window.document.body.querySelectorAll("h2, h3, h4, h5, h6");
|
|
440
|
+
for (let element of headings) {
|
|
441
|
+
let tagName = element.tagName.toLowerCase();
|
|
442
|
+
let isSectionTitle = tagName === "h2";
|
|
443
|
+
let isSubsectionTitle = tagName === "h3";
|
|
444
|
+
let sectionId = isSectionTitle ? getSlug(element.textContent) : navItem?.id ?? "";
|
|
445
|
+
let elementId = element.id;
|
|
446
|
+
if (!elementId)
|
|
447
|
+
elementId = getSlug(element.textContent).toLowerCase().replace(/_/g, "-");
|
|
448
|
+
if (elementId) {
|
|
449
|
+
element.id = elementId;
|
|
450
|
+
let link = `${root}${contentDir}/${sectionId}`;
|
|
451
|
+
if (!isSectionTitle) link += `#${elementId}`;
|
|
452
|
+
linkMap[`#${elementId}`] = link;
|
|
453
|
+
}
|
|
454
|
+
if (singlePage && isSectionTitle) {
|
|
455
|
+
if (navItem)
|
|
456
|
+
navItem.items.push({
|
|
456
457
|
id: getSlug(element.textContent),
|
|
457
|
-
title: element.innerHTML.trim()
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
458
|
+
title: element.innerHTML.trim()
|
|
459
|
+
});
|
|
460
|
+
} else if (isSectionTitle) {
|
|
461
|
+
if (navItem) nav.push(navItem);
|
|
462
|
+
navItem = {
|
|
463
|
+
id: getSlug(element.textContent),
|
|
464
|
+
title: element.innerHTML.trim(),
|
|
465
|
+
items: []
|
|
466
|
+
};
|
|
467
|
+
} else if (isSubsectionTitle) {
|
|
468
|
+
if (navItem)
|
|
469
|
+
navItem.items.push({
|
|
470
|
+
id: getSlug(element.textContent),
|
|
471
|
+
title: element.innerHTML.trim()
|
|
472
|
+
});
|
|
467
473
|
}
|
|
468
|
-
if (navItem) nav.push(navItem);
|
|
469
474
|
}
|
|
475
|
+
if (navItem) nav.push(navItem);
|
|
470
476
|
return {
|
|
471
477
|
nav,
|
|
472
478
|
linkMap
|
package/package.json
CHANGED
package/src/bin/getNav.ts
CHANGED
|
@@ -32,12 +32,15 @@ export async function getNav(ctx: Context, navItems: NavItem[]) {
|
|
|
32
32
|
|
|
33
33
|
if (navItems.length > 1) {
|
|
34
34
|
for (let { id, title, items } of navItems) {
|
|
35
|
-
|
|
35
|
+
let itemLink = `${root}${contentDir}/${encodeURIComponent(id)}`;
|
|
36
|
+
|
|
37
|
+
s += `\n<li data-id="${id}"><a href="${itemLink}">${title}</a>`;
|
|
36
38
|
|
|
37
39
|
if (items.length !== 0) {
|
|
38
40
|
s += "\n <ul>";
|
|
39
41
|
|
|
40
|
-
for (let { title } of items)
|
|
42
|
+
for (let { id, title } of items)
|
|
43
|
+
s += `\n <li><a href="${itemLink}#${encodeURIComponent(id)}">${title}</a></li>`;
|
|
41
44
|
|
|
42
45
|
s += "\n </ul>\n";
|
|
43
46
|
}
|
|
@@ -22,61 +22,66 @@ function buildNav(ctx: Context, dom: JSDOM) {
|
|
|
22
22
|
let nav: NavItem[] = [];
|
|
23
23
|
|
|
24
24
|
if (singlePage)
|
|
25
|
-
|
|
25
|
+
navItem = {
|
|
26
26
|
id: "Overview",
|
|
27
27
|
title: "Overview",
|
|
28
28
|
items: [],
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
let headings =
|
|
32
|
-
dom.window.document.body.querySelectorAll("h2, h3, h4, h5, h6");
|
|
29
|
+
};
|
|
33
30
|
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
let headings =
|
|
32
|
+
dom.window.document.body.querySelectorAll("h2, h3, h4, h5, h6");
|
|
36
33
|
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
for (let element of headings) {
|
|
35
|
+
let tagName = element.tagName.toLowerCase();
|
|
39
36
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
: (navItem?.id ?? "");
|
|
43
|
-
let elementId = element.id;
|
|
37
|
+
let isSectionTitle = tagName === "h2";
|
|
38
|
+
let isSubsectionTitle = tagName === "h3";
|
|
44
39
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
40
|
+
let sectionId = isSectionTitle
|
|
41
|
+
? getSlug(element.textContent)
|
|
42
|
+
: (navItem?.id ?? "");
|
|
43
|
+
let elementId = element.id;
|
|
49
44
|
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
if (!elementId)
|
|
46
|
+
elementId = getSlug(element.textContent)
|
|
47
|
+
.toLowerCase()
|
|
48
|
+
.replace(/_/g, "-");
|
|
52
49
|
|
|
53
|
-
|
|
50
|
+
if (elementId) {
|
|
51
|
+
element.id = elementId;
|
|
54
52
|
|
|
55
|
-
|
|
53
|
+
let link = `${root}${contentDir}/${sectionId}`;
|
|
56
54
|
|
|
57
|
-
|
|
58
|
-
}
|
|
55
|
+
if (!isSectionTitle) link += `#${elementId}`;
|
|
59
56
|
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
linkMap[`#${elementId}`] = link;
|
|
58
|
+
}
|
|
62
59
|
|
|
63
|
-
|
|
60
|
+
if (singlePage && isSectionTitle) {
|
|
61
|
+
if (navItem)
|
|
62
|
+
navItem.items.push({
|
|
64
63
|
id: getSlug(element.textContent),
|
|
65
64
|
title: element.innerHTML.trim(),
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
65
|
+
});
|
|
66
|
+
} else if (isSectionTitle) {
|
|
67
|
+
if (navItem) nav.push(navItem);
|
|
68
|
+
|
|
69
|
+
navItem = {
|
|
70
|
+
id: getSlug(element.textContent),
|
|
71
|
+
title: element.innerHTML.trim(),
|
|
72
|
+
items: [],
|
|
73
|
+
};
|
|
74
|
+
} else if (isSubsectionTitle) {
|
|
75
|
+
if (navItem)
|
|
76
|
+
navItem.items.push({
|
|
77
|
+
id: getSlug(element.textContent),
|
|
78
|
+
title: element.innerHTML.trim(),
|
|
79
|
+
});
|
|
75
80
|
}
|
|
76
|
-
|
|
77
|
-
if (navItem) nav.push(navItem);
|
|
78
81
|
}
|
|
79
82
|
|
|
83
|
+
if (navItem) nav.push(navItem);
|
|
84
|
+
|
|
80
85
|
return {
|
|
81
86
|
nav,
|
|
82
87
|
linkMap,
|