diff --git a/lib/doc/build.js b/lib/doc/build.js new file mode 100644 index 000000000..333a64a42 --- /dev/null +++ b/lib/doc/build.js @@ -0,0 +1,54 @@ +'use strict'; + +var _ = require('lodash'), + docdown = require('docdown'), + fs = require('fs-extra'), + path = require('path'); + +var basePath = path.join(__dirname, '..', '..'), + docPath = path.join(basePath, 'doc'), + readmePath = path.join(docPath, 'README.md'); + +var pkg = require('../../package.json'), + version = pkg.version; + +var config = { + 'base': { + 'entryLinks': [ + '<% if (name == "templateSettings" || !/^(?:methods|properties|seq)$/i.test(category)) {' + + 'print("[Ⓝ](https://www.npmjs.com/package/lodash." + name.toLowerCase() + " \\"See the npm package\\")")' + + '} %>' + ], + 'path': path.join(basePath, 'lodash.js'), + 'title': 'lodash v' + version + '', + 'toc': 'categories', + 'url': 'https://github.com/lodash/lodash/blob/' + version + '/lodash.js' + }, + 'github': { + 'hash': 'github' + }, + 'site': { + 'tocLink': '#docs' + } +}; + +function postprocess(string) { + return string.replace(/\.(Symbol\.iterator)\b/g, '[$1]'); +} + +/*----------------------------------------------------------------------------*/ + +function onComplete(error) { + if (error) { + throw error; + } +} + +function build(type) { + var options = _.defaults({}, config.base, config[type]), + markdown = docdown(options); + + fs.writeFile(readmePath, postprocess(markdown), onComplete); +} + +build(_.last(process.argv)); diff --git a/package.json b/package.json index 569cc8f52..0c13a2d96 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,8 @@ "build:fp": "node lib/fp/build-dist.js", "build:fp-modules": "node lib/fp/build-modules.js", "build:main": "node lib/main/build-dist.js", + "doc": "node lib/doc/build github", + "doc:site": "node lib/doc/build site", "style": "npm run style:main & npm run style:fp & npm run style:perf & npm run style:test", "style:fp": "jscs fp/*.js lib/**/*.js", "style:main": "jscs lodash.js",