forked from SuperMap/iClient-JavaScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlinkdoc.js
More file actions
48 lines (45 loc) · 1.96 KB
/
linkdoc.js
File metadata and controls
48 lines (45 loc) · 1.96 KB
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
39
40
41
42
43
44
45
46
47
48
'use strict';
var logger = require('jsdoc/util/logger');
var env = require('jsdoc/env');
var typeLinks = require('../template/typeLinkExt').typeLinks;
exports.handlers = {
newDoclet: function (e) {
if (e.doclet.augments) {
for (var i = 0; i < e.doclet.augments.length; i++) {
var a = e.doclet.augments[i];
if (a.indexOf("@linkdoc")) {
var reg = new RegExp("@(linkdoc.*?)/");
var match = a.match(reg);
if (match) {
e.doclet.augments[i] = a.replace("@" + match[1] + "/", env.conf.tags[match[1]]);
if (env.conf.tags["linkdoc-htmlExtension"]) {
e.doclet.augments[i] = e.doclet.augments[i].replace("}", ".html}");
}
}
}
}
}
if (e.doclet.params) {
for (var i = 0; i < e.doclet.params.length; i++) {
var a = e.doclet.params[i].description;
if (a && a.indexOf("@linkdoc") > -1) {
var reg = new RegExp("@(linkdoc.*?)/");
var match = a.match(reg);
if (match) {
var str = "@" + match[1] + "/";
e.doclet.params[i].description = a.replace(new RegExp(str, 'g'), "@link " + env.conf.tags[match[1]]);
}
} else if (a && a.indexOf("@link") > -1) {
var patt = /{@link (\S*)}/g;
var result;
while ((result = patt.exec(a)) != null) {
var link = result[1];
if (link && typeLinks[link]) {
e.doclet.params[i].description = e.doclet.params[i].description.replace(result[0], "[" + link + "]{@link " + typeLinks[result[1]] + "}");
}
}
}
}
}
}
};