docgen-tool 3.7.0 → 4.0.0

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.
@@ -408,102 +408,42 @@ input[type='submit']:focus {
408
408
  page
409
409
  */
410
410
  html {
411
+ height: 100%;
411
412
  background-color: rgb(1, 3, 4);
412
413
  color: #444;
413
414
  }
414
415
  html body {
415
- min-width: 1020px;
416
- }
417
- html body .w-fixed-width {
418
- width: 980px;
419
- margin: 0 auto;
416
+ height: 100%;
420
417
  }
421
418
 
422
- /*
423
- header
424
- */
425
- header {
426
- color: rgb(1, 3, 4);
419
+ .page {
427
420
  background-color: #fff;
428
- border-top: 2px solid rgb(1, 3, 4);
429
- border-bottom: 2px solid rgb(1, 3, 4);
430
- }
431
- header a,
432
- header a:hover,
433
- header a:active,
434
- header a:visited,
435
- header .w-false-link,
436
- header .w-false-link:hover {
437
- color: rgb(1, 3, 4);
438
- }
439
- header .header {
440
- display: flex;
441
- align-items: center;
442
- height: 102px;
443
- padding-right: 40px;
444
- }
445
- header .headerLeftBlock {
446
- display: flex;
447
- align-items: center;
448
- }
449
- header #dg-logo {
450
- background-repeat: no-repeat;
451
- }
452
- header #headerLeftText {
453
- display: flex;
454
- flex-direction: column;
455
- font-weight: bold;
456
- font-size: 16px;
457
- }
458
- header #headerLeftText a {
459
- text-decoration: none;
460
- }
461
- header #headerLeftText #headerSponsor {
462
- display: flex;
463
- align-items: center;
464
- font-weight: normal;
465
- font-size: 11px;
466
- margin: 5px 0 0 0;
467
- opacity: 0.6;
468
- }
469
- header #headerLeftText #headerSponsor span {
470
- margin-right: 6px;
471
- }
472
- header #headerLeftText #headerSponsor #sponsorLogo {
473
- height: 12px;
474
- margin: 0 auto;
475
- display: block;
476
- }
477
- header #headerRightBlock {
478
- margin-left: auto;
479
- }
480
-
481
- /*
482
- footer
483
- */
484
- footer div {
485
- padding: 15px 0 15px 0;
486
- }
487
- footer > div:first-child {
488
- text-align: center;
489
- background-color: rgb(222, 232, 252);
490
- }
491
- footer > div:nth-child(2) {
492
- color: #fff;
493
- text-align: center;
494
- line-height: 35px;
495
- }
496
- footer > div:nth-child(2) a,
497
- footer > div:nth-child(2) a:hover,
498
- footer > div:nth-child(2) a:active,
499
- footer > div:nth-child(2) a:visited,
500
- footer > div:nth-child(2) .w-false-link,
501
- footer > div:nth-child(2) .w-false-link:hover {
502
- color: #fff;
503
- }
504
- footer > div:nth-child(2) > p:nth-child(2) {
505
- font-size: 10px;
506
- line-height: 12px;
421
+ position: fixed;
422
+ right: 0;
423
+ bottom: 0;
424
+ overflow: scroll;
425
+ left: 40px;
426
+ top: 80px;
427
+ padding: 30px;
428
+ }
429
+ @media not print {
430
+ .page {
431
+ display: flex;
432
+ flex-direction: column;
433
+ }
434
+ }
435
+ @media print {
436
+ .page {
437
+ background-color: white;
438
+ color: black !important;
439
+ position: relative !important;
440
+ left: 0 !important;
441
+ top: 0 !important;
442
+ overflow: visible !important;
443
+ padding: 0 !important;
444
+ width: 100%;
445
+ height: 100%;
446
+ }
507
447
  }
508
448
 
509
449
  /*
@@ -511,7 +451,23 @@ footer > div:nth-child(2) > p:nth-child(2) {
511
451
  */
512
452
  section {
513
453
  background-color: #fff;
514
- padding: 25px 0 25px 0;
454
+ /*
455
+ Center content
456
+ Note we need an old way because wkhtmltopdf doesn't support modern styles
457
+ */
458
+ width: 1200px;
459
+ max-width: 100%;
460
+ text-align: center;
461
+ margin: 0 auto;
462
+ overflow: hidden;
463
+ }
464
+ section > * {
465
+ text-align: left; /* Reset text alignment for child items */
466
+ }
467
+ @media not print {
468
+ section {
469
+ flex: 1 0 auto;
470
+ }
515
471
  }
516
472
  section > div p,
517
473
  section > div div,
@@ -883,24 +839,6 @@ button:active,
883
839
  .button:active {
884
840
  box-shadow: none;
885
841
  }
886
- button:hover,
887
- button:focus,
888
- button:active,
889
- .button:hover,
890
- .button:focus,
891
- .button:active {
892
- position: relative;
893
- z-index: 1;
894
- }
895
- button .icon,
896
- .button .icon {
897
- margin: 0 0 0 10px;
898
- }
899
- button .icon svg,
900
- .button .icon svg {
901
- height: 12px;
902
- width: 12px;
903
- }
904
842
 
905
843
  .inverted {
906
844
  background-color: transparent;
@@ -924,6 +862,11 @@ button .icon svg,
924
862
  box-shadow: none;
925
863
  }
926
864
 
865
+ img {
866
+ max-width: 100%;
867
+ height: auto;
868
+ }
869
+
927
870
  .w-image-shadow {
928
871
  box-shadow: 0 0 8px black;
929
872
  }
@@ -1082,104 +1025,265 @@ button .icon svg,
1082
1025
  color: #444;
1083
1026
  }
1084
1027
 
1085
- pre {
1086
- font-size: 12px; /*todo - move to base styles*/
1028
+ .topbar {
1029
+ top: 0;
1030
+ left: 0;
1031
+ z-index: 2;
1032
+ width: 100%;
1033
+ height: 80px;
1034
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.1);
1035
+ border-bottom: none;
1036
+ background: white;
1037
+ display: flex;
1038
+ align-items: center;
1039
+ position: fixed;
1040
+ color: rgb(1, 3, 4);
1087
1041
  }
1088
-
1089
- section blockquote p,
1090
- section li p {
1091
- margin: 0;
1042
+ @media print {
1043
+ .topbar {
1044
+ display: none !important;
1045
+ }
1092
1046
  }
1093
-
1094
- .w-table {
1095
- width: 100%;
1047
+ .topbar .left,
1048
+ .topbar .right {
1049
+ display: flex;
1050
+ min-width: 0;
1096
1051
  }
1097
-
1098
- /******************************** TABLE OF CONTENTS ****************************/
1099
- /*Table of contents button to initiate show/hide*/
1100
- #dg-navigator {
1101
- float: right;
1102
- background-color: rgb(26, 34, 49);
1103
- color: white;
1104
- text-align: right;
1105
- padding: 10px 20px 10px 20px;
1106
- margin-right: 200px;
1107
- border-radius: 0 0 10px 10px;
1108
- cursor: pointer;
1052
+ .topbar .left {
1053
+ gap: 10px;
1054
+ padding-left: 30px;
1055
+ }
1056
+ .topbar .right {
1057
+ margin-left: auto;
1058
+ flex-shrink: 0;
1059
+ padding-right: 30px;
1060
+ gap: 10px;
1061
+ }
1062
+ .topbar a,
1063
+ .topbar a:hover,
1064
+ .topbar a:active,
1065
+ .topbar a:visited,
1066
+ .topbar .w-false-link,
1067
+ .topbar .w-false-link:hover {
1068
+ color: rgb(1, 3, 4);
1069
+ }
1070
+ .topbar #dg-logo {
1071
+ background-repeat: no-repeat;
1072
+ }
1073
+ .topbar #headerLeftText {
1074
+ display: flex;
1075
+ flex-direction: column;
1109
1076
  font-weight: bold;
1077
+ font-size: 16px;
1078
+ }
1079
+ .topbar #headerLeftText a {
1080
+ text-decoration: none;
1081
+ }
1082
+ .topbar #headerLeftText #headerSponsor {
1083
+ display: flex;
1084
+ align-items: center;
1085
+ font-weight: normal;
1086
+ font-size: 11px;
1087
+ margin: 5px 0 0 0;
1088
+ opacity: 0.6;
1089
+ }
1090
+ .topbar #headerLeftText #headerSponsor span {
1091
+ margin-right: 6px;
1092
+ }
1093
+ .topbar #headerLeftText #headerSponsor #sponsorLogo {
1094
+ height: 12px;
1095
+ margin: 0 auto;
1096
+ display: block;
1097
+ }
1098
+ @media only screen and (max-width: 600px) {
1099
+ .topbar #headerLeftText {
1100
+ display: none;
1101
+ }
1102
+ }
1103
+ .topbar #headerRightBlock {
1104
+ margin-left: auto;
1110
1105
  }
1111
1106
 
1112
- /*Table of contents container*/
1113
- #dg-toc {
1107
+ #dgSideBar {
1108
+ background-color: #1c1c1c;
1114
1109
  color: white;
1115
- background-color: rgb(26, 34, 49);
1110
+ transition: width 0.4s ease;
1111
+ width: 330px;
1112
+ max-width: 80%;
1113
+ position: fixed;
1114
+ top: 80px;
1115
+ left: 0;
1116
+ bottom: 0;
1117
+ z-index: 99;
1116
1118
  }
1117
-
1118
- #dg-toc table {
1119
- table-layout: auto;
1120
- width: 100%;
1119
+ @media print {
1120
+ #dgSideBar {
1121
+ display: none;
1122
+ }
1121
1123
  }
1122
-
1123
- #dg-toc div {
1124
- padding: 15px 0 15px 0;
1124
+ #dgSideBar.dgSideBarCollapsed {
1125
+ width: 40px;
1125
1126
  }
1126
1127
 
1127
- /*Columns in table of contents*/
1128
- #dg-toc td {
1129
- border-right: 1px solid #666;
1130
- vertical-align: top;
1131
- text-align: left;
1132
- padding: 0 20px 0 20px;
1128
+ #dgSideBarInnerWrapper {
1129
+ overflow: hidden;
1133
1130
  }
1134
1131
 
1135
- #dg-toc ul {
1136
- padding: 0;
1137
- list-style-type: none;
1132
+ #dgSideBarInner {
1133
+ position: absolute;
1134
+ left: 0;
1135
+ right: 0;
1136
+ top: 0;
1137
+ bottom: 0;
1138
+ overflow-x: hidden;
1139
+ overflow-y: auto;
1140
+ padding: 5px;
1141
+ scrollbar-width: none; /* Firefox */
1142
+ -ms-overflow-style: none; /* IE 10+ */
1143
+ width: 330px;
1144
+ transition: opacity 0.4s ease;
1138
1145
  }
1139
-
1140
- #dg-toc li {
1141
- font-weight: bold;
1146
+ .dgSideBarCollapsed #dgSideBarInner {
1147
+ opacity: 0;
1148
+ pointer-events: none;
1149
+ }
1150
+ #dgSideBarInner::-webkit-scrollbar {
1151
+ width: 0px; /* Remove scrollbar space */
1152
+ background: transparent; /* Optional: just make scrollbar invisible */
1142
1153
  }
1143
1154
 
1144
- #dg-toc table td a {
1155
+ #dgSideBarContent {
1156
+ padding: 20px;
1145
1157
  color: white;
1146
- font-weight: normal;
1158
+ }
1159
+ #dgSideBarContent .dgSideBarHeading {
1160
+ text-transform: uppercase;
1161
+ font-weight: bold;
1162
+ font-size: 18px;
1163
+ margin: 32px 0 12px 0;
1164
+ border: none;
1165
+ }
1166
+ #dgSideBarContent ul {
1167
+ list-style-type: none;
1168
+ margin: 0;
1169
+ padding: 0 0 0 10px;
1170
+ }
1171
+ #dgSideBarContent li {
1172
+ padding: 2px 0 2px 0;
1173
+ }
1174
+ #dgSideBarContent li a {
1147
1175
  text-decoration: none;
1148
- margin-left: 10px;
1176
+ padding: 0;
1177
+ margin: 0;
1178
+ color: white;
1149
1179
  }
1150
-
1151
- #dg-toc table td a:hover {
1152
- text-decoration: underline;
1180
+ #dgSideBarContent .dgSideBarAttribution {
1181
+ margin: 32px 0 12px 0;
1153
1182
  }
1154
-
1155
- #dg-tocFixedColumn {
1156
- border-right: none;
1183
+ #dgSideBarContent .dgSideBarAttribution ul {
1184
+ padding: 0;
1157
1185
  }
1158
-
1159
- #dg-toc table #dg-tocFixedColumn a {
1160
- vertical-align: middle;
1161
- margin-left: 4px;
1186
+ #dgSideBarContent .dgSideBarAttribution li {
1187
+ display: flex;
1188
+ align-items: center;
1189
+ }
1190
+ #dgSideBarContent .dgSideBarAttribution .dgIcon {
1191
+ padding: 0 5px 0 0;
1192
+ width: 20px;
1193
+ height: 20px;
1194
+ }
1195
+ #dgSideBarContent .dgSideBarAttribution .dgIcon svg {
1196
+ width: 20px;
1197
+ height: 20px;
1198
+ }
1199
+ #dgSideBarContent .dgSideBarPDFButton {
1200
+ margin: 32px 0 12px 0;
1162
1201
  }
1163
1202
 
1164
- .dg-tocGroup {
1165
- width: 22%;
1203
+ #dgSideBarButton {
1204
+ position: absolute;
1205
+ right: 0;
1206
+ top: 20px;
1207
+ z-index: 4;
1208
+ display: inline-flex;
1209
+ align-items: center;
1210
+ justify-content: center;
1211
+ margin: 0 -20px 0 0;
1212
+ padding: 0;
1213
+ vertical-align: baseline;
1214
+ line-height: 1em;
1215
+ width: 40px;
1216
+ height: 40px;
1217
+ border-radius: 50%;
1218
+ outline: 0;
1219
+ border: 1px solid rgb(22, 71, 193);
1220
+ background: rgb(46, 113, 225);
1221
+ color: rgba(0, 0, 0, 0.6);
1222
+ box-shadow: 0 0 0 1px transparent inset, 0 0 0 0 rgba(34, 36, 38, 0.15) inset;
1223
+ user-select: none;
1224
+ will-change: '';
1225
+ max-width: 100%;
1226
+ min-height: 20px;
1227
+ cursor: pointer;
1228
+ transition: transform 0.4s;
1229
+ }
1230
+ #dgSideBarButton:hover,
1231
+ #dgSideBarButton:focus {
1232
+ background-color: #1f64d7;
1233
+ background-image: none;
1234
+ color: rgba(0, 0, 0, 0.8);
1235
+ opacity: 1;
1236
+ }
1237
+ #dgSideBarButton:active,
1238
+ #dgSideBarButton.active {
1239
+ background-color: #1c59c0;
1240
+ background-image: none;
1241
+ color: rgba(0, 0, 0, 0.9);
1242
+ }
1243
+ #dgSideBarButton .dgIcon {
1244
+ margin: 0;
1245
+ color: white;
1246
+ }
1247
+ #dgSideBarButton .dgIcon svg {
1248
+ height: 40px;
1249
+ }
1250
+ .dgSideBarCollapsed #dgSideBarButton {
1251
+ transform: scaleX(-1);
1166
1252
  }
1167
1253
 
1168
- .dg-tocHeading {
1169
- font-size: 16px;
1254
+ /*
1255
+ footer
1256
+ */
1257
+ footer {
1258
+ padding: 0;
1259
+ margin: 0;
1260
+ width: 100%;
1261
+ text-align: center;
1262
+ font-size: 12px;
1263
+ }
1264
+ footer div {
1265
+ margin: 0 30px 0 30px;
1266
+ }
1267
+ footer > div:first-child {
1268
+ border-top: 1px solid #ddd;
1269
+ }
1270
+ @media not print {
1271
+ footer {
1272
+ flex-shrink: 0;
1273
+ }
1170
1274
  }
1171
1275
 
1172
- .dgWebTocAttribution li {
1173
- display: flex;
1174
- align-items: center;
1276
+ pre {
1277
+ font-size: 12px; /*todo - move to base styles*/
1175
1278
  }
1176
- .dgWebTocAttribution .dgIcon {
1177
- width: 18px;
1178
- height: 18px;
1279
+
1280
+ section blockquote p,
1281
+ section li p {
1282
+ margin: 0;
1179
1283
  }
1180
- .dgWebTocAttribution .dgIcon svg {
1181
- width: 18px;
1182
- height: 18px;
1284
+
1285
+ .w-table {
1286
+ width: 100%;
1183
1287
  }
1184
1288
 
1185
1289
  /*
@@ -5437,3 +5437,23 @@ $(document).ready(() => {
5437
5437
  $(this).toggleClass('active');
5438
5438
  });
5439
5439
  });
5440
+
5441
+ /*
5442
+ SideBar Toggle Button
5443
+ */
5444
+ document.addEventListener('DOMContentLoaded', function () {
5445
+ const sideBar = document.getElementById('dgSideBar');
5446
+ const sideBarButton = document.getElementById('dgSideBarButton');
5447
+ const sideBarIcon = sideBarButton.querySelector('span.dgIcon');
5448
+ sideBarButton.addEventListener('click', function () {
5449
+ if (sideBar.classList.contains('dgSideBarCollapsed')) {
5450
+ sideBar.classList.remove('dgSideBarCollapsed');
5451
+ sideBarIcon.setAttribute('data-name', 'x');
5452
+ sideBarIcon.innerHTML = w_icons['x'];
5453
+ } else {
5454
+ sideBar.classList.add('dgSideBarCollapsed');
5455
+ sideBarIcon.setAttribute('data-name', 'menu-2');
5456
+ sideBarIcon.innerHTML = w_icons['menu-2'];
5457
+ }
5458
+ });
5459
+ });
@@ -2,7 +2,8 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, user-scalable=yes">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" user-scalable="no">
6
+ <meta name="apple-mobile-web-app-capable" content="yes">
6
7
  <title></title>
7
8
 
8
9
  <link rel="stylesheet" href="require/styles/framework.css" type="text/css" />
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "docgen-tool",
3
- "version": "3.7.0",
3
+ "version": "4.0.0",
4
4
  "description": "A tool for creating HTML and PDF documentation",
5
5
  "main": "dist/docgen.ts",
6
6
  "bin": {
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Footer = void 0;
6
+ exports.WebFooter = exports.Footer = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var copyright_1 = require("../copyright/copyright");
9
9
  var Footer = function (_a) {
@@ -20,3 +20,13 @@ var Footer = function (_a) {
20
20
  parameters.attribution))));
21
21
  };
22
22
  exports.Footer = Footer;
23
+ var WebFooter = function (_a) {
24
+ var parameters = _a.parameters;
25
+ return (react_1.default.createElement("footer", null,
26
+ react_1.default.createElement("div", null,
27
+ react_1.default.createElement("p", null,
28
+ react_1.default.createElement("span", { id: "dg-web-footer" }, parameters.webFooter))),
29
+ react_1.default.createElement("div", null,
30
+ react_1.default.createElement(exports.Footer, { parameters: parameters }))));
31
+ };
32
+ exports.WebFooter = WebFooter;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Page = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var Page = function (_a) {
9
+ var children = _a.children;
10
+ return (react_1.default.createElement("div", { className: "page" }, children));
11
+ };
12
+ exports.Page = Page;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SideBar = void 0;
7
+ // @ts-nocheck
8
+ var react_1 = __importDefault(require("react"));
9
+ var Page = function (_a) {
10
+ var page = _a.page;
11
+ var name = page.source.substring(0, page.source.lastIndexOf('.'));
12
+ var path = name + '.html';
13
+ return (react_1.default.createElement("li", null,
14
+ react_1.default.createElement("a", { href: path }, page.title)));
15
+ };
16
+ var SideBar = function (_a) {
17
+ var name = _a.name, sortedPages = _a.sortedPages, pdfEnabled = _a.pdfEnabled;
18
+ var pages = Object.values(sortedPages).flat();
19
+ var pdfName = name.toLowerCase() + '.pdf';
20
+ return (react_1.default.createElement("div", { id: "dgSideBar", className: "dgSideBarCollapsed" },
21
+ react_1.default.createElement("button", { id: "dgSideBarButton" },
22
+ react_1.default.createElement("span", { className: "dgIcon", "data-name": "menu-2" })),
23
+ react_1.default.createElement("div", { id: "dgSideBarInnerWrapper" },
24
+ react_1.default.createElement("div", { id: "dgSideBarInner" },
25
+ react_1.default.createElement("div", { id: "dgSideBarContent" },
26
+ pages
27
+ .filter(function (p) { return (p === null || p === void 0 ? void 0 : p.heading) !== 'Extra'; })
28
+ .map(function (page, i) { return (react_1.default.createElement("div", { key: i },
29
+ react_1.default.createElement("div", { className: "dgSideBarHeading" }, page.heading),
30
+ react_1.default.createElement("ul", null, page.pages.map(function (subPage, i) { return (react_1.default.createElement(Page, { key: i, page: subPage })); })))); }),
31
+ react_1.default.createElement("div", { className: "dgSideBarAttribution" },
32
+ react_1.default.createElement("ul", null,
33
+ react_1.default.createElement("li", null,
34
+ react_1.default.createElement("span", { className: "dgIcon", "data-name": "users", title: "ownership" }),
35
+ react_1.default.createElement("a", { href: "ownership.html" }, "Ownership")),
36
+ react_1.default.createElement("li", null,
37
+ react_1.default.createElement("span", { className: "dgIcon", "data-name": "refresh", title: "release notes" }),
38
+ react_1.default.createElement("a", { href: "release-notes.html" }, "Release Notes")))),
39
+ react_1.default.createElement("div", { className: "dgSideBarPDFButton" }, pdfEnabled && (react_1.default.createElement("a", { className: "button", style: { textDecoration: 'none' }, href: pdfName }, "PDF"))))))));
40
+ };
41
+ exports.SideBar = SideBar;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TopBar = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var Logo = function (_a) {
9
+ var parameters = _a.parameters;
10
+ return ((parameters === null || parameters === void 0 ? void 0 : parameters.logoPath) && (react_1.default.createElement("img", { style: {
11
+ marginRight: '25px',
12
+ }, src: parameters === null || parameters === void 0 ? void 0 : parameters.logoPath })));
13
+ };
14
+ var TopBar = function (_a) {
15
+ var parameters = _a.parameters;
16
+ return (react_1.default.createElement("div", null,
17
+ react_1.default.createElement("div", { className: "topbar" },
18
+ react_1.default.createElement("div", { className: "left" },
19
+ react_1.default.createElement("a", { className: "dg-homelink", href: parameters.homePagePath },
20
+ react_1.default.createElement(Logo, { parameters: parameters })),
21
+ react_1.default.createElement("div", { id: "headerLeftText" },
22
+ react_1.default.createElement("a", { className: "dg-homelink", href: parameters.homePagePath },
23
+ react_1.default.createElement("span", { id: "dg-title" }, parameters.title),
24
+ react_1.default.createElement("span", { id: "dg-web-title-version", style: { fontWeight: 'normal' } },
25
+ "\u00A0(",
26
+ parameters.version,
27
+ ")")),
28
+ react_1.default.createElement("div", { id: "headerSponsor" },
29
+ react_1.default.createElement("span", null, parameters.sponsorLink.name),
30
+ react_1.default.createElement("a", { href: parameters.sponsorLink.url },
31
+ react_1.default.createElement("img", { id: "sponsorLogo", src: parameters.sponsorLink.logo, alt: "sponsor logo" }))))),
32
+ react_1.default.createElement("div", { className: "right" },
33
+ react_1.default.createElement("span", { id: "dg-backlink" }, parameters.backlink.url && (react_1.default.createElement("a", { className: "button inverted", href: parameters.backlink.url }, parameters.backlink.name)))))));
34
+ };
35
+ exports.TopBar = TopBar;
@@ -5,55 +5,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Main = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
- var web_table_of_contents_1 = require("../../components/web-table-of-contents/web-table-of-contents");
9
8
  var footer_1 = require("../../components/footer/footer");
10
- var Logo = function (_a) {
11
- var parameters = _a.parameters;
12
- return ((parameters === null || parameters === void 0 ? void 0 : parameters.logoPath) && (react_1.default.createElement("img", { style: {
13
- marginRight: '25px',
14
- }, src: parameters === null || parameters === void 0 ? void 0 : parameters.logoPath })));
15
- };
16
- var Header = function (_a) {
17
- var parameters = _a.parameters;
18
- return (react_1.default.createElement("header", null,
19
- react_1.default.createElement("div", { className: "w-fixed-width header-container" },
20
- react_1.default.createElement("div", { className: "header" },
21
- react_1.default.createElement("div", { className: "headerLeftBlock" },
22
- react_1.default.createElement("a", { className: "dg-homelink", href: parameters.homePagePath },
23
- react_1.default.createElement(Logo, { parameters: parameters })),
24
- react_1.default.createElement("div", { id: "headerLeftText" },
25
- react_1.default.createElement("a", { className: "dg-homelink", href: parameters.homePagePath },
26
- react_1.default.createElement("span", { id: "dg-title" }, parameters.title),
27
- react_1.default.createElement("span", { id: "dg-web-title-version", style: { fontWeight: 'normal' } },
28
- "\u00A0(",
29
- parameters.version,
30
- ")")),
31
- react_1.default.createElement("div", { id: "headerSponsor" },
32
- react_1.default.createElement("span", null, parameters.sponsorLink.name),
33
- react_1.default.createElement("a", { href: parameters.sponsorLink.url },
34
- react_1.default.createElement("img", { id: "sponsorLogo", src: parameters.sponsorLink.logo, alt: "sponsor logo" }))))),
35
- react_1.default.createElement("div", { id: "headerRightBlock" },
36
- react_1.default.createElement("span", { id: "dg-backlink" }, parameters.backlink.url && (react_1.default.createElement("a", { className: "button inverted", href: parameters.backlink.url }, parameters.backlink.name))))))));
37
- };
38
- var WebFooter = function (_a) {
39
- var parameters = _a.parameters;
40
- return (react_1.default.createElement("footer", null,
41
- react_1.default.createElement("div", null,
42
- react_1.default.createElement("p", { className: "w-fixed-width" },
43
- react_1.default.createElement("span", { id: "dg-web-footer" }, parameters.webFooter))),
44
- react_1.default.createElement("div", { className: "w-fixed-width" },
45
- react_1.default.createElement(footer_1.Footer, { parameters: parameters }))));
46
- };
9
+ var top_bar_1 = require("../../components/top-bar/top-bar");
10
+ var side_bar_1 = require("../../components/side-bar/side-bar");
11
+ var page_1 = require("../../components/page/page");
47
12
  var Main = function (_a) {
48
- var parameters = _a.parameters, sortedPages = _a.sortedPages, pdfEnabled = _a.pdfEnabled, fixedWidth = _a.fixedWidth, children = _a.children;
13
+ var parameters = _a.parameters, sortedPages = _a.sortedPages, pdfEnabled = _a.pdfEnabled, children = _a.children;
49
14
  var name = parameters.name;
50
15
  return (react_1.default.createElement(react_1.default.Fragment, null,
51
- react_1.default.createElement("div", { id: "dg-toc" },
52
- react_1.default.createElement(web_table_of_contents_1.TableOfContents, { name: name, sortedPages: sortedPages, pdfEnabled: pdfEnabled })),
53
- react_1.default.createElement("div", { id: "dg-navigator" }, "Table of contents"),
54
- react_1.default.createElement(Header, { parameters: parameters }),
55
- react_1.default.createElement("section", { id: "dg-content" }, fixedWidth ? (react_1.default.createElement("div", { className: "w-fixed-width" },
56
- react_1.default.createElement("div", { id: "dg-innerContent" }, children))) : (react_1.default.createElement("div", { id: "dg-innerContent" }, children))),
57
- react_1.default.createElement(WebFooter, { parameters: parameters })));
16
+ react_1.default.createElement(top_bar_1.TopBar, { parameters: parameters }),
17
+ react_1.default.createElement(side_bar_1.SideBar, { name: name, sortedPages: sortedPages, pdfEnabled: pdfEnabled }),
18
+ react_1.default.createElement(page_1.Page, null,
19
+ react_1.default.createElement("section", { id: "dg-content" },
20
+ react_1.default.createElement("div", { id: "dg-innerContent" }, children)),
21
+ react_1.default.createElement(footer_1.WebFooter, { parameters: parameters }))));
58
22
  };
59
23
  exports.Main = Main;
@@ -103,7 +103,7 @@ var processPages = function (_a) {
103
103
  section.pages.forEach(function (page) {
104
104
  var $ = cheerio_1.default.load(mainTemplate.html()); //clone
105
105
  var key = page.source;
106
- var htmlPage = (0, html_1.toHTML)(react_1.default.createElement(main_1.Main, { parameters: parameters, sortedPages: sortedPages, pdfEnabled: pdfEnabled, fixedWidth: page.html !== true }));
106
+ var htmlPage = (0, html_1.toHTML)(react_1.default.createElement(main_1.Main, { parameters: parameters, sortedPages: sortedPages, pdfEnabled: pdfEnabled }));
107
107
  $('body').html(htmlPage);
108
108
  //Todo: render the Markdown directly inside the React component
109
109
  var content = pages[key];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "docgen-tool",
3
- "version": "3.7.0",
3
+ "version": "4.0.0",
4
4
  "description": "A tool for creating HTML and PDF documentation",
5
5
  "main": "dist/docgen.ts",
6
6
  "bin": {
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TableOfContents = void 0;
7
- var react_1 = __importDefault(require("react"));
8
- var Page = function (_a) {
9
- var page = _a.page;
10
- var name = page.source.substring(0, page.source.lastIndexOf('.'));
11
- var path = name + '.html';
12
- return (react_1.default.createElement("li", null,
13
- react_1.default.createElement("a", { href: path }, page.title)));
14
- };
15
- var Section = function (_a) {
16
- var section = _a.section;
17
- if ((section === null || section === void 0 ? void 0 : section.heading) === 'Extra') {
18
- return null;
19
- }
20
- var visible = (section === null || section === void 0 ? void 0 : section.heading) && (section === null || section === void 0 ? void 0 : section.pages);
21
- return (react_1.default.createElement("td", { className: "dg-tocGroup" }, visible && (react_1.default.createElement("ul", null,
22
- react_1.default.createElement("li", { className: "dg-tocHeading" }, section.heading),
23
- section.pages.map(function (page, i) { return (react_1.default.createElement(Page, { key: i, page: page })); })))));
24
- };
25
- var TableOfContents = function (_a) {
26
- var sortedPages = _a.sortedPages, name = _a.name, pdfEnabled = _a.pdfEnabled;
27
- var pdfName = name.toLowerCase() + '.pdf';
28
- return (react_1.default.createElement("div", null,
29
- react_1.default.createElement("table", { className: "unstyled" },
30
- Object.values(sortedPages).map(function (section, i) { return (react_1.default.createElement(Section, { key: i, section: section === null || section === void 0 ? void 0 : section[0] })); }),
31
- react_1.default.createElement("td", { className: "dg-tocGroup dgWebTocAttribution", id: "dg-tocFixedColumn" },
32
- react_1.default.createElement("ul", null,
33
- react_1.default.createElement("li", null,
34
- react_1.default.createElement("span", { className: "dgIcon", "data-name": "users", title: "ownership" }),
35
- react_1.default.createElement("a", { href: "ownership.html" }, "Ownership")),
36
- react_1.default.createElement("li", null,
37
- react_1.default.createElement("span", { className: "dgIcon", "data-name": "refresh", title: "release notes" }),
38
- react_1.default.createElement("a", { href: "release-notes.html" }, "Release Notes"))),
39
- react_1.default.createElement("div", null, pdfEnabled && (react_1.default.createElement("a", { className: "button whiteInverted", style: { textDecoration: 'none' }, href: pdfName }, "PDF")))))));
40
- };
41
- exports.TableOfContents = TableOfContents;