Skip to content

Commit 4c9fa2a

Browse files
Added bookmarks to apireference
1 parent 9d5b517 commit 4c9fa2a

File tree

10 files changed

+4355
-4328
lines changed

10 files changed

+4355
-4328
lines changed

apireference.js

Lines changed: 52 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@ var priorities = config["orgdiagram.md"].reduce((agg, name, index) => {
2929
return agg;
3030
}, {})
3131

32-
var orgdiagramclasses = doc.classes.filter(item => { return item.namespace[1] == "orgdiagram"
33-
&& item.name != "Control" && item.name != "BaseControl" });
32+
var orgdiagramclasses = doc.classes.filter(item => {
33+
return item.namespace[1] == "orgdiagram"
34+
&& item.name != "Control" && item.name != "BaseControl"
35+
});
3436
orgdiagramclasses = orgdiagramclasses.sort((a, b) => {
3537
var ap = priorities[a.name] || 100;
3638
var bp = priorities[b.name] || 100;
@@ -46,8 +48,10 @@ var priorities = config["famdiagram.md"].reduce((agg, name, index) => {
4648
return agg;
4749
}, {})
4850

49-
var famdiagramclasses = doc.classes.filter(item => { return item.namespace[1] == "famdiagram"
50-
&& item.name != "Control" && item.name != "BaseControl" });
51+
var famdiagramclasses = doc.classes.filter(item => {
52+
return item.namespace[1] == "famdiagram"
53+
&& item.name != "Control" && item.name != "BaseControl"
54+
});
5155
famdiagramclasses = famdiagramclasses.sort((a, b) => {
5256
var ap = priorities[a.name] || 100;
5357
var bp = priorities[b.name] || 100;
@@ -64,7 +68,7 @@ fs.writeFileSync(config.destination + "javascriptcontrols.md", create_classes_md
6468
var pdfkitclasses = get_pdfkit_annotations(doc);
6569
fs.writeFileSync(config.destination + "pdfkitplugins.md", create_classes_md("[PDFKit Plugins](https://pdfkit.org/)", pdfkitclasses));
6670

67-
fs.writeFileSync(config.destination + "index.md", create_index_md("Basic Primitives Diagrams API Reference", {
71+
fs.writeFileSync(config.destination + "readme.md", create_index_md("Basic Primitives Diagrams API Reference", {
6872
orgdiagramclasses,
6973
famdiagramclasses,
7074
enums: doc.enums,
@@ -88,42 +92,58 @@ function create_index_md(title, {
8892
var result = "# " + title;
8993
result += "\r\n## [JavaScript Controls](javascriptcontrols.md)";
9094
result = controlsclasses.reduce((agg, annotation) => {
91-
agg += "\r\n* " + [...annotation.namespace, annotation.name].join(".");
95+
let { namespace, name } = annotation;
96+
let key = [...namespace, name].join(".");
97+
agg += "\r\n* [" + key + "](javascriptcontrols.md#" + key + ")";
9298
return agg;
9399
}, result);
94100
result += "\r\n## [PDFKit Plugins](pdfkitplugins.md)";
95101
result = pdfkitclasses.reduce((agg, annotation) => {
96-
agg += "\r\n* " + [...annotation.namespace, annotation.name].join(".");
102+
let { namespace, name } = annotation;
103+
let key = [...namespace, name].join(".");
104+
agg += "\r\n* [" + key + "](pdfkitplugins.md#" + key + ")";
97105
return agg;
98106
}, result);
99107
result += "\r\n## [Organizational Chart Configuration Objects](orgdiagram.md)";
100108
result = orgdiagramclasses.reduce((agg, annotation) => {
101-
agg += "\r\n* " + annotation.name;
109+
let { namespace, name } = annotation;
110+
let key = [...namespace, name].join(".");
111+
agg += "\r\n* [" + annotation.name + "](orgdiagram.md#" + key + ")";
102112
return agg;
103113
}, result);
104114
result += "\r\n## [Family Diagram Configuration Objects](famdiagram.md)";
105115
result = famdiagramclasses.reduce((agg, annotation) => {
106-
agg += "\r\n* " + annotation.name;
116+
let { namespace, name } = annotation;
117+
let key = [...namespace, name].join(".");
118+
agg += "\r\n* [" + annotation.name + "](famdiagram.md#" + key + ")";
107119
return agg;
108120
}, result);
109121
result += "\r\n## [Enumerations](enums.md)";
110122
result = enums.reduce((agg, annotation) => {
111-
agg += "\r\n* " + annotation.name;
123+
let { namespace, name } = annotation;
124+
let key = [...namespace, name].join(".");
125+
agg += "\r\n* [" + annotation.name + "](enums.md#" + key + ")";
112126
return agg;
113127
}, result);
114128
result += "\r\n## [Structures](structures.md)";
115129
result = structures.reduce((agg, annotation) => {
116-
agg += "\r\n* " + annotation.name;
130+
let { namespace, name } = annotation;
131+
let key = [...namespace, name].join(".");
132+
agg += "\r\n* [" + annotation.name + "](structures.md#" + key + ")";
117133
return agg;
118134
}, result);
119135
result += "\r\n## [Functions](functions.md)";
120136
result = functions.reduce((agg, annotation) => {
121-
agg += "\r\n* " + annotation.name;
137+
let { namespace, name } = annotation;
138+
let key = [...namespace, name].join(".");
139+
agg += "\r\n* [" + annotation.name + "](functions.md#" + key + ")";
122140
return agg;
123141
}, result);
124142
result += "\r\n## [Algorithms](algorithms.md)";
125143
result = algorithms.reduce((agg, annotation) => {
126-
agg += "\r\n* " + annotation.name;
144+
let { namespace, name } = annotation;
145+
let key = [...namespace, name].join(".");
146+
agg += "\r\n* [" + annotation.name + "](algorithms.md#" + key + ")";
127147
return agg;
128148
}, result);
129149
return result;
@@ -154,7 +174,7 @@ function get_pdfkit_annotations(doc) {
154174
function create_functions_md(title, annotations) {
155175
var result = "# " + title;
156176
return annotations.reduce((agg, annotation) => {
157-
agg += create_function_md(annotation);
177+
agg += create_function_md(annotation, true);
158178
return agg;
159179
}, result);
160180
}
@@ -163,10 +183,11 @@ function create_classes_md(title, classes) {
163183
var result = "# " + title;
164184
return classes.reduce((agg, classAnnotation) => {
165185
let { name, description, namespace, constants, properties, functions, returns, params } = classAnnotation;
166-
agg += "\r\n## " + name;
186+
let key = [...namespace, name].join(".");
187+
agg += '\r\n## <a name="' + key + '">' + name + '</a>';
167188
agg += "\r\n" + description;
168189
agg += "\r\n";
169-
agg += "\r\n <code>" + [...namespace, name].join(".") + "</code> ";
190+
agg += "\r\n `" + key + "` ";
170191
agg += "\r\n";
171192
if (returns != undefined || params != undefined) {
172193
agg += "\r\n### Constructor";
@@ -179,7 +200,7 @@ function create_classes_md(title, classes) {
179200
agg += "\r\n| --- | --- | --- | --- | ";
180201
constants.forEach(({ name, value, type, description }) => {
181202
type = replaceAll(type, "|", ", ");
182-
agg += "\r\n | <code>" + name + "</code> | " + type + " | <code>" + value + "</code> | " + (description || spaceCamelCaseName(name)) + " | ";
203+
agg += "\r\n | `" + name + "` | " + type + " | `" + value + "` | " + (description || spaceCamelCaseName(name)) + " | ";
183204
});
184205
agg += "\r\n";
185206
}
@@ -189,7 +210,7 @@ function create_classes_md(title, classes) {
189210
agg += "\r\n| --- | --- | --- | --- | ";
190211
properties.filter(item => item.ignore == undefined).forEach(({ name, value, type, description }) => {
191212
type = replaceAll(type, "|", ", ");
192-
agg += "\r\n | <code>" + name + "</code> | " + type + " | <code>" + value + "</code> | " + (description || spaceCamelCaseName(name)) + " | ";
213+
agg += "\r\n | `" + name + "` | " + type + " | `" + value + "` | " + (description || spaceCamelCaseName(name)) + " | ";
193214
});
194215
agg += "\r\n";
195216
}
@@ -204,22 +225,27 @@ function create_classes_md(title, classes) {
204225
}, result);
205226
}
206227

207-
function create_function_md({ name, signature, description, params, returns, callbackparams }) {
228+
function create_function_md({ name, namespace, signature, description, params, returns, callbackparams }, hasBookmark) {
208229
var result = "\r\n"
209-
result += "\r\n <code>" + name + "(" + (signature != undefined ? signature.join(", ") : "") + ")</code> ";
230+
if (hasBookmark) {
231+
let key = [...namespace, name].join(".");
232+
result += '\r\n## <a name="' + key + '">' + name + '</a>';
233+
} else {
234+
result += "\r\n `" + name + "(" + (signature != undefined ? signature.join(", ") : "") + ")` ";
235+
}
210236
result += "\r\n"
211237
result += "\r\n" + description;
212238
result += "\r\n";
213239
if (returns != undefined) {
214-
result += "\r\n Returns: <code>" + returns.type + "</code> - " + returns.description.toLowerCase();
240+
result += "\r\n Returns: `" + returns.type + "` - " + returns.description.toLowerCase();
215241
result += "\r\n";
216242
}
217243
if (params != undefined) {
218244
result += "\r\n| Param | Type | Default | Description | ";
219245
result += "\r\n| --- | --- | --- | --- | ";
220246
params.forEach(({ name, value, type, description }) => {
221247
type = replaceAll(type, "|", ", ");
222-
result += "\r\n | <code>" + name + "</code> | " + type + " | <code>" + (value || "") + "</code> | " + (description || spaceCamelCaseName(name)) + " | ";
248+
result += "\r\n | `" + name + "` | " + type + " | `" + (value || "") + "` | " + (description || spaceCamelCaseName(name)) + " | ";
223249
});
224250
}
225251
if (callbackparams != undefined && callbackparams.length > 0) {
@@ -234,15 +260,16 @@ function create_function_md({ name, signature, description, params, returns, cal
234260
function create_enums_md(title, doc) {
235261
var result = "# " + title;
236262
return doc.enums.filter(item => item.ignore == undefined).reduce((agg, { name, description, namespace, items, type }) => {
237-
agg += "\r\n## " + name;
263+
let key = [...namespace, name].join(".");
264+
agg += '\r\n## <a name="' + key + '">' + name + '</a>';
238265
agg += "\r\n" + description;
239266
agg += "\r\n";
240-
agg += "\r\n <code>" + [...namespace, name].join(".") + "</code> ";
267+
agg += "\r\n `" + [...namespace, name].join(".") + "` ";
241268
agg += "\r\n";
242269
agg += "\r\n| Name | Type | Value | Description | ";
243270
agg += "\r\n| --- | --- | --- | --- | ";
244271
items.forEach(({ name, value, description }) => {
245-
agg += "\r\n | <code>" + name + "</code> | " + get_enum_type(type, doc.typedefs) + " | <code>" + value + "</code> | " + (description || spaceCamelCaseName(name)) + " | ";
272+
agg += "\r\n | `" + name + "` | " + get_enum_type(type, doc.typedefs) + " | `" + value + "` | " + (description || spaceCamelCaseName(name)) + " | ";
246273
});
247274
agg += "\r\n";
248275
return agg;

0 commit comments

Comments
 (0)