diff --git a/lib/fp/build-doc.js b/lib/fp/build-doc.js
index 0e9bd604a..b67c88132 100644
--- a/lib/fp/build-doc.js
+++ b/lib/fp/build-doc.js
@@ -1,9 +1,45 @@
'use strict';
+var _ = require('lodash'),
+ fs = require('fs-extra'),
+ path = require('path'),
+ util = require('../common/util');
+
+var basePath = path.join(__dirname, '..', '..'),
+ docPath = path.join(basePath, 'doc'),
+ readmePath = path.join(docPath, 'FP-Guide.md');
+
+var mapping = require('../../fp/_mapping'),
+ templatePath = path.join(__dirname, 'template/doc'),
+ template = util.globTemplate(path.join(templatePath, '*.jst'));
+
+var templateData = {
+ 'mapping': mapping,
+ 'toFuncList': toFuncList
+};
+
+function toFuncList(array) {
+ var chunks = _.chunk(array.slice().sort(), 5),
+ lastChunk = _.last(chunks),
+ last = lastChunk ? lastChunk.pop() : undefined;
+
+ var result = '`' + _.map(chunks, function(chunk) {
+ return chunk.join('`, `') + '`';
+ }).join(',\n`');
+
+ return result + (last == null ? '' : (', & `' + last + '`'));
+}
+
/*----------------------------------------------------------------------------*/
-function build(type) {
-
+function onComplete(error) {
+ if (error) {
+ throw error;
+ }
}
-build(_.last(process.argv));
+function build() {
+ fs.writeFile(readmePath, template.wiki(templateData), onComplete);
+}
+
+build();
diff --git a/lib/fp/template/doc/wiki.jst b/lib/fp/template/doc/wiki.jst
index 8b1378917..6cc54e554 100644
--- a/lib/fp/template/doc/wiki.jst
+++ b/lib/fp/template/doc/wiki.jst
@@ -1 +1,65 @@
+## lodash/fp
+The lodash/fp module is an instance of lodash with its methods wrapped to produce
+immutable auto-curried iteratee-first data-last methods.
+
+## Installation
+
+In a browser:
+```html
+
+
+```
+
+In Node.js:
+```js
+// load the fp build
+var _ = require('lodash/fp');
+
+// or a method category
+var array = require('lodash/fp/object');
+
+// or method for smaller builds with browserify/rollup/webpack
+var extend = require('lodash/fp/extend');
+```
+
+## Notes
+
+#### Arity
+
+Methods with arity capped to one argument:
+<%= toFuncList(mapping.aryMethod[1]) %>
+
+Methods with arity capped to two arguments:
+<%= toFuncList(mapping.aryMethod[2]) %>
+
+Methods with arity capped to three arguments:
+<%= toFuncList(mapping.aryMethod[3]) %>
+
+Methods with arity capped to four arguments:
+<%= toFuncList(mapping.aryMethod[4]) %>
+
+#### Iteratees
+
+Methods which provide iteratees one argument:
+<%= toFuncList(_.keys(_.pick(mapping.iterateeAry, _.partial(_.eq, _, 1)))) %>
+
+Methods which provide iteratees two argument:
+<%= toFuncList(_.keys(_.pick(mapping.iterateeAry, _.partial(_.eq, _, 2)))) %>
+
+#### New Methods
+
+Methods created to accommodate Lodash’s variadic methods:
+<%= toFuncList(_.keys(mapping.remap)) %>
+
+#### Exceptions
+
+Methods which have argument order unchanged:
+<%= toFuncList(_.keys(mapping.skipRearg)) %>
+
+#### Aliases
+
+There are <%= _.size(mapping.aliasToReal) %> method aliases:
+<%= _.map(mapping.aliasToReal, function(realName, alias) {
+ return ' - Added `_.' + alias + '` as an alias of `_.' + realName + '`';
+}).join('\n') %>
diff --git a/package.json b/package.json
index 3635e3394..e9cba669d 100644
--- a/package.json
+++ b/package.json
@@ -35,6 +35,7 @@
"build:main": "node lib/main/build-dist.js",
"build:main-modules": "node lib/main/build-modules.js",
"doc": "node lib/main/build-doc github",
+ "doc:fp": "node lib/fp/build-doc",
"doc:site": "node lib/main/build-doc site",
"prepublish": "npm run style",
"pretest": "npm run build",