Skip to content

Commit 77911db

Browse files
authored
Merge pull request #8 from bit-docs/add-search-map
Add searchMap for a more efficient search object
2 parents 9395eff + 1ef9c1d commit 77911db

File tree

3 files changed

+50
-6
lines changed

3 files changed

+50
-6
lines changed

generate.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,16 @@ module.exports = function(docMapPromise, siteConfig){
4848
var helpersReadyPromise = docMapPromise.then(function(docMap){
4949
return build.helpers(buildTemplatesPromise, docMap, siteConfig, getCurrent);
5050
});
51+
var searchMapPromise = docMapPromise.then(function(docMap){
52+
return write.searchMap(docMap, siteConfig);
53+
});
5154

5255
var docsPromise = Q.all([
5356
docMapPromise,
5457
build.renderer(buildTemplatesPromise, siteConfig),
5558
helpersReadyPromise,
56-
mkdirs(siteConfig.dest)
59+
mkdirs(siteConfig.dest),
60+
searchMapPromise
5761
]).then(function(results){
5862
var docMap = results[0],
5963
renderer = results[1];

write/search_map.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
var fs = require('fs'),
2+
path = require('path'),
3+
filename = require("./filename"),
4+
Q = require('q'),
5+
writeFile = Q.denodeify(fs.writeFile);
6+
7+
/**
8+
* @function bitDocs.generators.html.write.searchMap
9+
* @parent bitDocs.generators.html.write.methods
10+
*
11+
* Writes out a simplified [documentjs.process.docMap docMap] to be used for searching.
12+
*
13+
* @signature `.write.searchMap(docMap, siteConfig)`
14+
*
15+
* @param {documentjs.process.docMap} docMap
16+
* @param {Object} siteConfig
17+
* @return {Promise} Resolves when searchMap has been written.
18+
*/
19+
module.exports = function(docMap, siteConfig) {
20+
var searchMap = {},
21+
name;
22+
23+
for (name in docMap) {
24+
if (docMap.hasOwnProperty(name)) {
25+
var docObj = docMap[name];
26+
var searchObj = {
27+
name: docObj.name,
28+
title: docObj.title,
29+
description: docObj.description,
30+
url: filename(docObj, siteConfig)
31+
};
32+
searchMap[name] = searchObj;
33+
}
34+
}
35+
36+
var dest = path.join(siteConfig.dest, 'searchMap.json');
37+
38+
return writeFile(dest, JSON.stringify(searchMap));
39+
};

write/write.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
/**
22
* @property {{}} documentjs.generators.html.write
33
* @parent documentjs.generators.html.properties
4-
*
4+
*
55
* @group documentjs.generators.html.write.methods 0 methods
6-
*
6+
*
77
* A collection of helpers used to write out docObject and docMaps
88
* using the structures produced by [documentjs.generators.html.build].
9-
*
9+
*
1010
* @body
11-
*
11+
*
1212
*/
1313

1414
exports.docMap = require("./doc_map");
1515
exports.docObject = require("./doc_object");
16-
exports.staticDist = require("./static_dist");
16+
exports.staticDist = require("./static_dist");
17+
exports.searchMap = require("./search_map");

0 commit comments

Comments
 (0)