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",