@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 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="${root}${contentDir}/${id}">${title}</a>`;
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) s += `
378
- <li>${title2}</li>`;
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
- nav.push({
434
+ navItem = {
433
435
  id: "Overview",
434
436
  title: "Overview",
435
437
  items: []
436
- });
437
- else {
438
- let headings = dom.window.document.body.querySelectorAll("h2, h3, h4, h5, h6");
439
- for (let element of headings) {
440
- let tagName = element.tagName.toLowerCase();
441
- let isSectionTitle = tagName === "h2";
442
- let isSubsectionTitle = tagName === "h3";
443
- let sectionId = isSectionTitle ? getSlug(element.textContent) : navItem?.id ?? "";
444
- let elementId = element.id;
445
- if (!elementId)
446
- elementId = getSlug(element.textContent).toLowerCase().replace(/_/g, "-");
447
- if (elementId) {
448
- element.id = elementId;
449
- let link = `${root}${contentDir}/${sectionId}`;
450
- if (!isSectionTitle) link += `#${elementId}`;
451
- linkMap[`#${elementId}`] = link;
452
- }
453
- if (isSectionTitle) {
454
- if (navItem) nav.push(navItem);
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
- items: []
459
- };
460
- } else if (isSubsectionTitle) {
461
- if (navItem)
462
- navItem.items.push({
463
- id: getSlug(element.textContent),
464
- title: element.innerHTML.trim()
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@t8/docsgen",
3
- "version": "0.1.37",
3
+ "version": "0.1.38",
4
4
  "description": "",
5
5
  "main": "dist/bin.js",
6
6
  "bin": {
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
- s += `\n<li data-id="${id}"><a href="${root}${contentDir}/${id}">${title}</a>`;
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) s += `\n <li>${title}</li>`;
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
- nav.push({
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
- for (let element of headings) {
35
- let tagName = element.tagName.toLowerCase();
31
+ let headings =
32
+ dom.window.document.body.querySelectorAll("h2, h3, h4, h5, h6");
36
33
 
37
- let isSectionTitle = tagName === "h2";
38
- let isSubsectionTitle = tagName === "h3";
34
+ for (let element of headings) {
35
+ let tagName = element.tagName.toLowerCase();
39
36
 
40
- let sectionId = isSectionTitle
41
- ? getSlug(element.textContent)
42
- : (navItem?.id ?? "");
43
- let elementId = element.id;
37
+ let isSectionTitle = tagName === "h2";
38
+ let isSubsectionTitle = tagName === "h3";
44
39
 
45
- if (!elementId)
46
- elementId = getSlug(element.textContent)
47
- .toLowerCase()
48
- .replace(/_/g, "-");
40
+ let sectionId = isSectionTitle
41
+ ? getSlug(element.textContent)
42
+ : (navItem?.id ?? "");
43
+ let elementId = element.id;
49
44
 
50
- if (elementId) {
51
- element.id = elementId;
45
+ if (!elementId)
46
+ elementId = getSlug(element.textContent)
47
+ .toLowerCase()
48
+ .replace(/_/g, "-");
52
49
 
53
- let link = `${root}${contentDir}/${sectionId}`;
50
+ if (elementId) {
51
+ element.id = elementId;
54
52
 
55
- if (!isSectionTitle) link += `#${elementId}`;
53
+ let link = `${root}${contentDir}/${sectionId}`;
56
54
 
57
- linkMap[`#${elementId}`] = link;
58
- }
55
+ if (!isSectionTitle) link += `#${elementId}`;
59
56
 
60
- if (isSectionTitle) {
61
- if (navItem) nav.push(navItem);
57
+ linkMap[`#${elementId}`] = link;
58
+ }
62
59
 
63
- navItem = {
60
+ if (singlePage && isSectionTitle) {
61
+ if (navItem)
62
+ navItem.items.push({
64
63
  id: getSlug(element.textContent),
65
64
  title: element.innerHTML.trim(),
66
- items: [],
67
- };
68
- } else if (isSubsectionTitle) {
69
- if (navItem)
70
- navItem.items.push({
71
- id: getSlug(element.textContent),
72
- title: element.innerHTML.trim(),
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,