@t8/docsgen 0.1.38 → 0.1.40
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 +28 -26
- package/package.json +1 -1
- package/src/bin/getNav.ts +14 -11
- package/src/bin/getParsedContent.ts +16 -22
package/dist/bin.js
CHANGED
|
@@ -368,22 +368,24 @@ async function getNav(ctx, navItems) {
|
|
|
368
368
|
}
|
|
369
369
|
navContent = navDom.innerHTML;
|
|
370
370
|
}
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
371
|
+
let navItemCount = 0;
|
|
372
|
+
for (let { id, title, items } of navItems) {
|
|
373
|
+
let itemLink = `${root}${contentDir}/${encodeURIComponent(id)}`;
|
|
374
|
+
s += `
|
|
375
375
|
<li data-id="${id}"><a href="${itemLink}">${title}</a>`;
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
376
|
+
if (items.length !== 0) {
|
|
377
|
+
s += "\n <ul>";
|
|
378
|
+
for (let { id: id2, title: title2 } of items) {
|
|
379
|
+
s += `
|
|
380
380
|
<li><a href="${itemLink}#${encodeURIComponent(id2)}">${title2}</a></li>`;
|
|
381
|
-
|
|
381
|
+
navItemCount++;
|
|
382
382
|
}
|
|
383
|
-
s += "</
|
|
383
|
+
s += "\n </ul>\n";
|
|
384
384
|
}
|
|
385
|
+
s += "</li>";
|
|
386
|
+
navItemCount++;
|
|
385
387
|
}
|
|
386
|
-
if (!s && !navContent) return "";
|
|
388
|
+
if ((!s || navItemCount < 2) && !navContent) return "";
|
|
387
389
|
s = s.trim() ? `<section><ul>${s}
|
|
388
390
|
</ul></section>` : "";
|
|
389
391
|
let repoLink = getRepoLink(ctx);
|
|
@@ -441,35 +443,35 @@ function buildNav(ctx, dom) {
|
|
|
441
443
|
let tagName = element.tagName.toLowerCase();
|
|
442
444
|
let isSectionTitle = tagName === "h2";
|
|
443
445
|
let isSubsectionTitle = tagName === "h3";
|
|
444
|
-
let
|
|
445
|
-
let
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
element.id = elementId;
|
|
450
|
-
let link = `${root}${contentDir}/${sectionId}`;
|
|
451
|
-
if (!isSectionTitle) link += `#${elementId}`;
|
|
452
|
-
linkMap[`#${elementId}`] = link;
|
|
453
|
-
}
|
|
446
|
+
let slug = getSlug(element.textContent);
|
|
447
|
+
let sectionId = isSectionTitle ? slug : navItem?.id ?? "";
|
|
448
|
+
let link = `${root}${contentDir}/${sectionId}`;
|
|
449
|
+
if (!isSectionTitle) link += `#${slug}`;
|
|
450
|
+
linkMap[`#${slug}`] = link;
|
|
454
451
|
if (singlePage && isSectionTitle) {
|
|
455
|
-
if (navItem)
|
|
452
|
+
if (navItem) {
|
|
453
|
+
element.id = slug;
|
|
456
454
|
navItem.items.push({
|
|
457
|
-
id:
|
|
455
|
+
id: slug,
|
|
458
456
|
title: element.innerHTML.trim()
|
|
459
457
|
});
|
|
458
|
+
}
|
|
460
459
|
} else if (isSectionTitle) {
|
|
460
|
+
element.id = slug;
|
|
461
461
|
if (navItem) nav.push(navItem);
|
|
462
462
|
navItem = {
|
|
463
|
-
id:
|
|
463
|
+
id: slug,
|
|
464
464
|
title: element.innerHTML.trim(),
|
|
465
465
|
items: []
|
|
466
466
|
};
|
|
467
467
|
} else if (isSubsectionTitle) {
|
|
468
|
-
if (navItem)
|
|
468
|
+
if (navItem) {
|
|
469
|
+
element.id = slug;
|
|
469
470
|
navItem.items.push({
|
|
470
|
-
id:
|
|
471
|
+
id: slug,
|
|
471
472
|
title: element.innerHTML.trim()
|
|
472
473
|
});
|
|
474
|
+
}
|
|
473
475
|
}
|
|
474
476
|
}
|
|
475
477
|
if (navItem) nav.push(navItem);
|
package/package.json
CHANGED
package/src/bin/getNav.ts
CHANGED
|
@@ -30,26 +30,29 @@ export async function getNav(ctx: Context, navItems: NavItem[]) {
|
|
|
30
30
|
navContent = navDom.innerHTML;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
for (let { id, title, items } of navItems) {
|
|
35
|
-
let itemLink = `${root}${contentDir}/${encodeURIComponent(id)}`;
|
|
33
|
+
let navItemCount = 0;
|
|
36
34
|
|
|
37
|
-
|
|
35
|
+
for (let { id, title, items } of navItems) {
|
|
36
|
+
let itemLink = `${root}${contentDir}/${encodeURIComponent(id)}`;
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
s += "\n <ul>";
|
|
38
|
+
s += `\n<li data-id="${id}"><a href="${itemLink}">${title}</a>`;
|
|
41
39
|
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
if (items.length !== 0) {
|
|
41
|
+
s += "\n <ul>";
|
|
44
42
|
|
|
45
|
-
|
|
43
|
+
for (let { id, title } of items) {
|
|
44
|
+
s += `\n <li><a href="${itemLink}#${encodeURIComponent(id)}">${title}</a></li>`;
|
|
45
|
+
navItemCount++;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
s += "</
|
|
48
|
+
s += "\n </ul>\n";
|
|
49
49
|
}
|
|
50
|
+
|
|
51
|
+
s += "</li>";
|
|
52
|
+
navItemCount++;
|
|
50
53
|
}
|
|
51
54
|
|
|
52
|
-
if (!s && !navContent) return "";
|
|
55
|
+
if ((!s || navItemCount < 2) && !navContent) return "";
|
|
53
56
|
|
|
54
57
|
s = s.trim() ? `<section><ul>${s}\n</ul></section>` : "";
|
|
55
58
|
|
|
@@ -36,47 +36,41 @@ function buildNav(ctx: Context, dom: JSDOM) {
|
|
|
36
36
|
|
|
37
37
|
let isSectionTitle = tagName === "h2";
|
|
38
38
|
let isSubsectionTitle = tagName === "h3";
|
|
39
|
+
let slug = getSlug(element.textContent);
|
|
39
40
|
|
|
40
|
-
let sectionId = isSectionTitle
|
|
41
|
-
|
|
42
|
-
: (navItem?.id ?? "");
|
|
43
|
-
let elementId = element.id;
|
|
41
|
+
let sectionId = isSectionTitle ? slug : (navItem?.id ?? "");
|
|
42
|
+
let link = `${root}${contentDir}/${sectionId}`;
|
|
44
43
|
|
|
45
|
-
if (!
|
|
46
|
-
elementId = getSlug(element.textContent)
|
|
47
|
-
.toLowerCase()
|
|
48
|
-
.replace(/_/g, "-");
|
|
44
|
+
if (!isSectionTitle) link += `#${slug}`;
|
|
49
45
|
|
|
50
|
-
|
|
51
|
-
element.id = elementId;
|
|
52
|
-
|
|
53
|
-
let link = `${root}${contentDir}/${sectionId}`;
|
|
54
|
-
|
|
55
|
-
if (!isSectionTitle) link += `#${elementId}`;
|
|
56
|
-
|
|
57
|
-
linkMap[`#${elementId}`] = link;
|
|
58
|
-
}
|
|
46
|
+
linkMap[`#${slug}`] = link;
|
|
59
47
|
|
|
60
48
|
if (singlePage && isSectionTitle) {
|
|
61
|
-
if (navItem)
|
|
49
|
+
if (navItem) {
|
|
50
|
+
element.id = slug;
|
|
62
51
|
navItem.items.push({
|
|
63
|
-
id:
|
|
52
|
+
id: slug,
|
|
64
53
|
title: element.innerHTML.trim(),
|
|
65
54
|
});
|
|
55
|
+
}
|
|
66
56
|
} else if (isSectionTitle) {
|
|
57
|
+
element.id = slug;
|
|
58
|
+
|
|
67
59
|
if (navItem) nav.push(navItem);
|
|
68
60
|
|
|
69
61
|
navItem = {
|
|
70
|
-
id:
|
|
62
|
+
id: slug,
|
|
71
63
|
title: element.innerHTML.trim(),
|
|
72
64
|
items: [],
|
|
73
65
|
};
|
|
74
66
|
} else if (isSubsectionTitle) {
|
|
75
|
-
if (navItem)
|
|
67
|
+
if (navItem) {
|
|
68
|
+
element.id = slug;
|
|
76
69
|
navItem.items.push({
|
|
77
|
-
id:
|
|
70
|
+
id: slug,
|
|
78
71
|
title: element.innerHTML.trim(),
|
|
79
72
|
});
|
|
73
|
+
}
|
|
80
74
|
}
|
|
81
75
|
}
|
|
82
76
|
|