-
Notifications
You must be signed in to change notification settings - Fork 0
/
toc.html.js
38 lines (31 loc) · 1.06 KB
/
toc.html.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.
var extension = require('./toc.extension.js')
exports.transform = function (model) {
if (extension && extension.preTransform) {
model = extension.preTransform(model);
}
transformItem(model, 1);
if (model.items && model.items.length > 0) model.leaf = false;
model.title = "Table of Content";
model._disableToc = true;
if (extension && extension.postTransform) {
model = extension.postTransform(model);
}
return model;
function transformItem(item, level) {
// set to null incase mustache looks up
item.topicHref = item.topicHref || null;
item.tocHref = item.tocHref || null;
item.name = item.name || null;
item.level = level;
if (item.items && item.items.length > 0) {
var length = item.items.length;
for (var i = 0; i < length; i++) {
transformItem(item.items[i], level + 1);
};
} else {
item.items = [];
item.leaf = true;
}
}
}