Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide a generated API documentation #946

Open
mootari opened this issue Dec 28, 2017 · 11 comments
Open

Provide a generated API documentation #946

mootari opened this issue Dec 28, 2017 · 11 comments

Comments

@mootari
Copy link
Contributor

mootari commented Dec 28, 2017

Assemble's highly modular nature makes it difficult to discover methods that are added via mixins or inheritance. For example, .use and .define are provided by Base and implicitely added through Templates.

It would be a huge help to have some basic, generated JSDocs that incorporate all of the default packages. JSDoc provides the @mixinand @mixes annotations which could potentially help a lot to compile docs with minimal effort.

What are your thoughts (or plans)?

@assemblebot
Copy link

@mootari Thanks for the issue! If you're reporting a bug, please be sure to include:

  • The version of assemble you are using.
  • Your assemblefile.js (This can be in a gist)
  • The commandline output. (Screenshot or gist is fine)
  • What you expected to happen instead.

If your issue is related to one of the following, please open an issue there:

  • grunt-assemble Issues with using assemble in grunt or the grunt-assemble library.
  • handlebars-helpers Issues with using handlebars helpers from the handlebars-helpers library.

@mootari
Copy link
Contributor Author

mootari commented Dec 28, 2017

JSDoc might have a bit of a problem with factory functions though (jsdoc/jsdoc#1086, jsdoc/jsdoc#1244).

@mootari
Copy link
Contributor Author

mootari commented Dec 28, 2017

Oh boy, that's a deep rabbit hole ... both Emitter and Cache shouldn't pose a problem as they're already using ES6 classes and seem to be properly annotated. It's Templates, Core and Assemble where things start to get ugly.

@mootari
Copy link
Contributor Author

mootari commented Dec 28, 2017

Also, function arguments are consistently wrapped in backticks. While jsdoc doesn't complain about them, they still need to be parsed out (which can probably be done on the template level). Low priority, though.

@doowb
Copy link
Member

doowb commented Dec 28, 2017

Before going down the JSDocs path any further, we use verb for generating our documentation and have talked about module inheritance for the docs. I'm on my phone right now but I'll try to link to some of the libs I'm referencing when I get back to the computer.

@doowb
Copy link
Member

doowb commented Dec 28, 2017

@mootari here are the pieces that we use for building docs:

  • helper-apidocs
    This is used for reading source files, parsing the javascript comments, building up a data context based on the comments, and rendering the markdown that can be used elsewhere (like readme files).

  • verb-generate-readme
    This is the main readme generator that handles loading the templates, helpers, and data and rendering the readme file.

  • verb
    This is the task runner that handles the initial loading of plugins (like verb-generate-readme) and running the specified tasks (like readme).

helper-apidocs uses dependencies for parsing and building up the context to render the api documentation. This would also be the place to coordinate loading and parsing additional javascript files for extending the documentation. If you (or anyone seeing this) would like to help with these dependencies, that would be appreciated. I have other priorities right now, but I'll try to respond to questions, issues, and PRs in a timely manner.

@mootari
Copy link
Contributor Author

mootari commented Dec 29, 2017

In that case I'll be shifting my focus towards creating TypeScript definitions for some of the packages. That should prove to be a good starting point regardless of what direction will be taken later on.

@mootari
Copy link
Contributor Author

mootari commented Dec 29, 2017

Dropping some stuff here for reference:

All dependencies, sorted by author
'Dominic Tarr' <[email protected]> (http://dominictarr.com): stream-combiner
: argparse
: chalk
: co
: component-emitter
: graceful-fs
: inherits
: ms
: path-to-regexp
: process-nextick-args
: readable-stream
: semver
: string_decoder
: yargs
Alexandru Mărășteanu <[email protected]>: sprintf-js
Andy VanWagoner <[email protected]>: modules
Ariya Hidayat <[email protected]>: esprima
Artem Medeusheyev <[email protected]>: ordered-read-streams
Ben Coe <[email protected]>: cliui
Ben Coe <[email protected]>: yargs-parser
Blake Embrey <[email protected]> (http://blakeembrey.me): camel-case
Blake Embrey <[email protected]> (http://blakeembrey.me): is-generator
Blake Embrey <[email protected]> (http://blakeembrey.me): lower-case
Blake Embrey <[email protected]> (http://blakeembrey.me): no-case
Blake Embrey <[email protected]> (http://blakeembrey.me): upper-case
Brian Woodward (https://doowb.com): default-compare
Brian Woodward (https://github.com/doowb): ansi-colors
Brian Woodward (https://github.com/doowb): async-helpers
Brian Woodward (https://github.com/doowb): group-array
Brian Woodward (https://github.com/doowb): homedir-polyfill
Brian Woodward (https://github.com/doowb): layouts
Brian Woodward (https://github.com/doowb): map-config
Brian Woodward (https://github.com/doowb): paginationator
Brian Woodward (https://github.com/doowb): parse-passwd
Brian Woodward (https://github.com/doowb): set-getter
Brian Woodward (https://github.com/doowb): src-stream
Bryce B. Baril: through2-filter
Caolan McMahon: async
Chris Dickinson <[email protected]>: stream-exhaust
Cloud Programmability Team (https://github.com/Reactive-Extensions/RxJS/blob/master/authors.txt): rx-lite
darsain: remove-trailing-separator
Dominic Tarr <[email protected]> (dominictarr.com): through
Douglas Crockford (http://crockford.com/): jsonify
dreamerslab <[email protected]>: inflection
Elan Shanker (https://github.com/es128): glob-parent
Elan Shanker: path-dirname
Eugene Ware <[email protected]>: unique-stream
Feross Aboukhadijeh <[email protected]> (http://feross.org): safe-buffer
Feross Aboukhadijeh <[email protected]> (http://feross.org/): is-buffer
Florian Reiterer <[email protected]>: gulp-sourcemaps
ForbesLindesay: uglify-to-browserify
Gulp Team <[email protected]> (http://gulpjs.com/): async-done
Gulp Team <[email protected]> (http://gulpjs.com/): async-settle
Gulp Team <[email protected]> (http://gulpjs.com/): bach
Gulp Team <[email protected]> (http://gulpjs.com/): clone-buffer
Gulp Team <[email protected]> (http://gulpjs.com/): glob-stream
Gulp Team <[email protected]> (http://gulpjs.com/): now-and-later
Gulp Team <[email protected]> (http://gulpjs.com/): replace-ext
Gulp Team <[email protected]> (http://gulpjs.com/): vinyl
Gulp Team <[email protected]> (http://gulpjs.com/): vinyl-fs
Hugh Kennedy <[email protected]> (http://hughsk.io/): clone-stats
Ilya Radchenko <[email protected]>: cli-width
IndigoUnited <[email protected]> (http://indigounited.com): cross-spawn
Isaac Z. Schlueter <[email protected]> (http://blog.izs.me): minimatch
Isaac Z. Schlueter <[email protected]> (http://blog.izs.me): which
Isaac Z. Schlueter <[email protected]> (http://blog.izs.me/): core-util-is
Isaac Z. Schlueter <[email protected]> (http://blog.izs.me/): fs.realpath
Isaac Z. Schlueter <[email protected]> (http://blog.izs.me/): glob
Isaac Z. Schlueter <[email protected]> (http://blog.izs.me/): inflight
Isaac Z. Schlueter <[email protected]> (http://blog.izs.me/): ini
Isaac Z. Schlueter <[email protected]> (http://blog.izs.me/): isexe
Isaac Z. Schlueter <[email protected]> (http://blog.izs.me/): mute-stream
Isaac Z. Schlueter <[email protected]> (http://blog.izs.me/): once
Isaac Z. Schlueter <[email protected]> (http://blog.izs.me/): pseudomap
Isaac Z. Schlueter <[email protected]> (http://blog.izs.me/): rimraf
Isaac Z. Schlueter <[email protected]> (http://blog.izs.me/): wrappy
Isaac Z. Schlueter <[email protected]> (http://blog.izs.me/): yallist
Isaac Z. Schlueter <[email protected]>: lru-cache
James Burke <[email protected]> (http://github.com/jrburke): amdefine
James Halliday <[email protected]> (http://substack.net): concat-map
James Halliday <[email protected]> (http://substack.net): json-stable-stringify
James Halliday <[email protected]> (http://substack.net): minimist
James Halliday <[email protected]> (http://substack.net): mkdirp
James Halliday <[email protected]> (http://substack.net): optimist
James Halliday <[email protected]> (http://substack.net): resolve
James Halliday <[email protected]> (http://substack.net): text-table
James Halliday <[email protected]> (http://substack.net): wordwrap
Javier Blanco <http://jbgutierrez.info>: path-parse
jb55: async-each-series
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash._arrayfilter
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash._basecallback
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash._baseeach
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash._basefilter
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash._baseisequal
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash._baseismatch
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash._basematches
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash._bindcallback
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash._createwrapper
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash._getnative
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash._replaceholders
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash._root
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash.assign
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash.bind
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash.filter
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash.flatten
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash.foreach
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash.initial
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash.isarguments
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash.isarray
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash.isequal
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash.istypedarray
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash.keys
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash.last
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash.map
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash.pairs
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash.restparam
John-David Dalton <[email protected]> (http://allyoucanleet.com/): lodash.where
Jon Schlinkert (http://github.com/jonschlinkert): git-repo-name
Jon Schlinkert (http://github.com/jonschlinkert): repeat-string
Jon Schlinkert (https://github.com/jonschlinkert): align-text
Jon Schlinkert (https://github.com/jonschlinkert): ansi-bgblack
Jon Schlinkert (https://github.com/jonschlinkert): ansi-bgblue
Jon Schlinkert (https://github.com/jonschlinkert): ansi-bgcyan
Jon Schlinkert (https://github.com/jonschlinkert): ansi-bggreen
Jon Schlinkert (https://github.com/jonschlinkert): ansi-bgmagenta
Jon Schlinkert (https://github.com/jonschlinkert): ansi-bgred
Jon Schlinkert (https://github.com/jonschlinkert): ansi-bgwhite
Jon Schlinkert (https://github.com/jonschlinkert): ansi-bgyellow
Jon Schlinkert (https://github.com/jonschlinkert): ansi-black
Jon Schlinkert (https://github.com/jonschlinkert): ansi-blue
Jon Schlinkert (https://github.com/jonschlinkert): ansi-bold
Jon Schlinkert (https://github.com/jonschlinkert): ansi-cyan
Jon Schlinkert (https://github.com/jonschlinkert): ansi-dim
Jon Schlinkert (https://github.com/jonschlinkert): ansi-gray
Jon Schlinkert (https://github.com/jonschlinkert): ansi-green
Jon Schlinkert (https://github.com/jonschlinkert): ansi-grey
Jon Schlinkert (https://github.com/jonschlinkert): ansi-hidden
Jon Schlinkert (https://github.com/jonschlinkert): ansi-inverse
Jon Schlinkert (https://github.com/jonschlinkert): ansi-italic
Jon Schlinkert (https://github.com/jonschlinkert): ansi-magenta
Jon Schlinkert (https://github.com/jonschlinkert): ansi-red
Jon Schlinkert (https://github.com/jonschlinkert): ansi-reset
Jon Schlinkert (https://github.com/jonschlinkert): ansi-strikethrough
Jon Schlinkert (https://github.com/jonschlinkert): ansi-underline
Jon Schlinkert (https://github.com/jonschlinkert): ansi-white
Jon Schlinkert (https://github.com/jonschlinkert): ansi-wrap
Jon Schlinkert (https://github.com/jonschlinkert): ansi-yellow
Jon Schlinkert (https://github.com/jonschlinkert): arr-diff
Jon Schlinkert (https://github.com/jonschlinkert): arr-filter
Jon Schlinkert (https://github.com/jonschlinkert): arr-flatten
Jon Schlinkert (https://github.com/jonschlinkert): arr-map
Jon Schlinkert (https://github.com/jonschlinkert): arr-pluck
Jon Schlinkert (https://github.com/jonschlinkert): arr-union
Jon Schlinkert (https://github.com/jonschlinkert): array-each
Jon Schlinkert (https://github.com/jonschlinkert): array-initial
Jon Schlinkert (https://github.com/jonschlinkert): array-last
Jon Schlinkert (https://github.com/jonschlinkert): array-slice
Jon Schlinkert (https://github.com/jonschlinkert): array-sort
Jon Schlinkert (https://github.com/jonschlinkert): array-unique
Jon Schlinkert (https://github.com/jonschlinkert): arrayify-compact
Jon Schlinkert (https://github.com/jonschlinkert): assemble
Jon Schlinkert (https://github.com/jonschlinkert): assemble-core
Jon Schlinkert (https://github.com/jonschlinkert): assemble-fs
Jon Schlinkert (https://github.com/jonschlinkert): assemble-handle
Jon Schlinkert (https://github.com/jonschlinkert): assemble-loader
Jon Schlinkert (https://github.com/jonschlinkert): assemble-render-file
Jon Schlinkert (https://github.com/jonschlinkert): assemble-streams
Jon Schlinkert (https://github.com/jonschlinkert): assign-deep
Jon Schlinkert (https://github.com/jonschlinkert): assign-symbols
Jon Schlinkert (https://github.com/jonschlinkert): async-array-reduce
Jon Schlinkert (https://github.com/jonschlinkert): base
Jon Schlinkert (https://github.com/jonschlinkert): base-argv
Jon Schlinkert (https://github.com/jonschlinkert): base-cli
Jon Schlinkert (https://github.com/jonschlinkert): base-cli-process
Jon Schlinkert (https://github.com/jonschlinkert): base-cli-schema
Jon Schlinkert (https://github.com/jonschlinkert): base-config
Jon Schlinkert (https://github.com/jonschlinkert): base-config-process
Jon Schlinkert (https://github.com/jonschlinkert): base-config-schema
Jon Schlinkert (https://github.com/jonschlinkert): base-cwd
Jon Schlinkert (https://github.com/jonschlinkert): base-data
Jon Schlinkert (https://github.com/jonschlinkert): base-engines
Jon Schlinkert (https://github.com/jonschlinkert): base-helpers
Jon Schlinkert (https://github.com/jonschlinkert): base-option
Jon Schlinkert (https://github.com/jonschlinkert): base-pkg
Jon Schlinkert (https://github.com/jonschlinkert): base-plugins
Jon Schlinkert (https://github.com/jonschlinkert): base-questions
Jon Schlinkert (https://github.com/jonschlinkert): base-routes
Jon Schlinkert (https://github.com/jonschlinkert): base-runtimes
Jon Schlinkert (https://github.com/jonschlinkert): base-store
Jon Schlinkert (https://github.com/jonschlinkert): base-task
Jon Schlinkert (https://github.com/jonschlinkert): braces
Jon Schlinkert (https://github.com/jonschlinkert): cache-base
Jon Schlinkert (https://github.com/jonschlinkert): center-align
Jon Schlinkert (https://github.com/jonschlinkert): class-utils
Jon Schlinkert (https://github.com/jonschlinkert): clone-deep
Jon Schlinkert (https://github.com/jonschlinkert): collection-visit
Jon Schlinkert (https://github.com/jonschlinkert): common-config
Jon Schlinkert (https://github.com/jonschlinkert): composer
Jon Schlinkert (https://github.com/jonschlinkert): copy-descriptor
Jon Schlinkert (https://github.com/jonschlinkert): cwd
Jon Schlinkert (https://github.com/jonschlinkert): data-store
Jon Schlinkert (https://github.com/jonschlinkert): deep-bind
Jon Schlinkert (https://github.com/jonschlinkert): define-property
Jon Schlinkert (https://github.com/jonschlinkert): delimiter-regex
Jon Schlinkert (https://github.com/jonschlinkert): en-route
Jon Schlinkert (https://github.com/jonschlinkert): engine
Jon Schlinkert (https://github.com/jonschlinkert): engine-base
Jon Schlinkert (https://github.com/jonschlinkert): engine-cache
Jon Schlinkert (https://github.com/jonschlinkert): engine-handlebars
Jon Schlinkert (https://github.com/jonschlinkert): engine-utils
Jon Schlinkert (https://github.com/jonschlinkert): error-symbol
Jon Schlinkert (https://github.com/jonschlinkert): expand
Jon Schlinkert (https://github.com/jonschlinkert): expand-args
Jon Schlinkert (https://github.com/jonschlinkert): expand-brackets
Jon Schlinkert (https://github.com/jonschlinkert): expand-front-matter
Jon Schlinkert (https://github.com/jonschlinkert): expand-object
Jon Schlinkert (https://github.com/jonschlinkert): expand-pkg
Jon Schlinkert (https://github.com/jonschlinkert): expand-range
Jon Schlinkert (https://github.com/jonschlinkert): expand-tilde
Jon Schlinkert (https://github.com/jonschlinkert): export-files
Jon Schlinkert (https://github.com/jonschlinkert): extend-shallow
Jon Schlinkert (https://github.com/jonschlinkert): extglob
Jon Schlinkert (https://github.com/jonschlinkert): falsey
Jon Schlinkert (https://github.com/jonschlinkert): file-contents
Jon Schlinkert (https://github.com/jonschlinkert): file-is-binary
Jon Schlinkert (https://github.com/jonschlinkert): file-name
Jon Schlinkert (https://github.com/jonschlinkert): filename-regex
Jon Schlinkert (https://github.com/jonschlinkert): fill-range
Jon Schlinkert (https://github.com/jonschlinkert): find-file-up
Jon Schlinkert (https://github.com/jonschlinkert): find-pkg
Jon Schlinkert (https://github.com/jonschlinkert): for-in
Jon Schlinkert (https://github.com/jonschlinkert): for-own
Jon Schlinkert (https://github.com/jonschlinkert): fs-exists-sync
Jon Schlinkert (https://github.com/jonschlinkert): get-value
Jon Schlinkert (https://github.com/jonschlinkert): get-view
Jon Schlinkert (https://github.com/jonschlinkert): git-config-path
Jon Schlinkert (https://github.com/jonschlinkert): glob-base
Jon Schlinkert (https://github.com/jonschlinkert): global-modules
Jon Schlinkert (https://github.com/jonschlinkert): global-prefix
Jon Schlinkert (https://github.com/jonschlinkert): gray-matter
Jon Schlinkert (https://github.com/jonschlinkert): has-glob
Jon Schlinkert (https://github.com/jonschlinkert): has-own-deep
Jon Schlinkert (https://github.com/jonschlinkert): has-value
Jon Schlinkert (https://github.com/jonschlinkert): has-values
Jon Schlinkert (https://github.com/jonschlinkert): helper-cache
Jon Schlinkert (https://github.com/jonschlinkert): info-symbol
Jon Schlinkert (https://github.com/jonschlinkert): inquirer2
Jon Schlinkert (https://github.com/jonschlinkert): is-absolute
Jon Schlinkert (https://github.com/jonschlinkert): is-accessor-descriptor
Jon Schlinkert (https://github.com/jonschlinkert): is-answer
Jon Schlinkert (https://github.com/jonschlinkert): is-binary-buffer
Jon Schlinkert (https://github.com/jonschlinkert): is-data-descriptor
Jon Schlinkert (https://github.com/jonschlinkert): is-descriptor
Jon Schlinkert (https://github.com/jonschlinkert): is-dotfile
Jon Schlinkert (https://github.com/jonschlinkert): is-equal-shallow
Jon Schlinkert (https://github.com/jonschlinkert): is-extendable
Jon Schlinkert (https://github.com/jonschlinkert): is-extglob
Jon Schlinkert (https://github.com/jonschlinkert): is-glob
Jon Schlinkert (https://github.com/jonschlinkert): is-number
Jon Schlinkert (https://github.com/jonschlinkert): is-plain-object
Jon Schlinkert (https://github.com/jonschlinkert): is-posix-bracket
Jon Schlinkert (https://github.com/jonschlinkert): is-primitive
Jon Schlinkert (https://github.com/jonschlinkert): is-registered
Jon Schlinkert (https://github.com/jonschlinkert): is-relative
Jon Schlinkert (https://github.com/jonschlinkert): is-unc-path
Jon Schlinkert (https://github.com/jonschlinkert): is-valid-app
Jon Schlinkert (https://github.com/jonschlinkert): is-valid-glob
Jon Schlinkert (https://github.com/jonschlinkert): is-valid-instance
Jon Schlinkert (https://github.com/jonschlinkert): is-whitespace
Jon Schlinkert (https://github.com/jonschlinkert): is-windows
Jon Schlinkert (https://github.com/jonschlinkert): isobject
Jon Schlinkert (https://github.com/jonschlinkert): kind-of
Jon Schlinkert (https://github.com/jonschlinkert): lazy-cache
Jon Schlinkert (https://github.com/jonschlinkert): load-helpers
Jon Schlinkert (https://github.com/jonschlinkert): load-pkg
Jon Schlinkert (https://github.com/jonschlinkert): load-templates
Jon Schlinkert (https://github.com/jonschlinkert): log-ok
Jon Schlinkert (https://github.com/jonschlinkert): log-utils
Jon Schlinkert (https://github.com/jonschlinkert): longest
Jon Schlinkert (https://github.com/jonschlinkert): make-iterator
Jon Schlinkert (https://github.com/jonschlinkert): map-schema
Jon Schlinkert (https://github.com/jonschlinkert): map-visit
Jon Schlinkert (https://github.com/jonschlinkert): match-file
Jon Schlinkert (https://github.com/jonschlinkert): matched
Jon Schlinkert (https://github.com/jonschlinkert): merge-deep
Jon Schlinkert (https://github.com/jonschlinkert): merge-value
Jon Schlinkert (https://github.com/jonschlinkert): micromatch
Jon Schlinkert (https://github.com/jonschlinkert): mixin-deep
Jon Schlinkert (https://github.com/jonschlinkert): mixin-object
Jon Schlinkert (https://github.com/jonschlinkert): nanoseconds
Jon Schlinkert (https://github.com/jonschlinkert): noncharacters
Jon Schlinkert (https://github.com/jonschlinkert): normalize-path
Jon Schlinkert (https://github.com/jonschlinkert): normalize-pkg
Jon Schlinkert (https://github.com/jonschlinkert): object-copy
Jon Schlinkert (https://github.com/jonschlinkert): object-visit
Jon Schlinkert (https://github.com/jonschlinkert): object.omit
Jon Schlinkert (https://github.com/jonschlinkert): object.pick
Jon Schlinkert (https://github.com/jonschlinkert): omit-empty
Jon Schlinkert (https://github.com/jonschlinkert): option-cache
Jon Schlinkert (https://github.com/jonschlinkert): pad-right
Jon Schlinkert (https://github.com/jonschlinkert): parse-author
Jon Schlinkert (https://github.com/jonschlinkert): parse-git-config
Jon Schlinkert (https://github.com/jonschlinkert): parse-github-url
Jon Schlinkert (https://github.com/jonschlinkert): parse-glob
Jon Schlinkert (https://github.com/jonschlinkert): parser-front-matter
Jon Schlinkert (https://github.com/jonschlinkert): pascalcase
Jon Schlinkert (https://github.com/jonschlinkert): pkg-store
Jon Schlinkert (https://github.com/jonschlinkert): plugin-error
Jon Schlinkert (https://github.com/jonschlinkert): preserve
Jon Schlinkert (https://github.com/jonschlinkert): pretty-time
Jon Schlinkert (https://github.com/jonschlinkert): project-name
Jon Schlinkert (https://github.com/jonschlinkert): question-cache
Jon Schlinkert (https://github.com/jonschlinkert): question-store
Jon Schlinkert (https://github.com/jonschlinkert): randomatic
Jon Schlinkert (https://github.com/jonschlinkert): read-file
Jon Schlinkert (https://github.com/jonschlinkert): reduce-object
Jon Schlinkert (https://github.com/jonschlinkert): regex-cache
Jon Schlinkert (https://github.com/jonschlinkert): regex-flags
Jon Schlinkert (https://github.com/jonschlinkert): relative
Jon Schlinkert (https://github.com/jonschlinkert): remote-origin-url
Jon Schlinkert (https://github.com/jonschlinkert): repeat-element
Jon Schlinkert (https://github.com/jonschlinkert): repo-utils
Jon Schlinkert (https://github.com/jonschlinkert): resolve-dir
Jon Schlinkert (https://github.com/jonschlinkert): resolve-glob
Jon Schlinkert (https://github.com/jonschlinkert): rethrow
Jon Schlinkert (https://github.com/jonschlinkert): right-align
Jon Schlinkert (https://github.com/jonschlinkert): set-value
Jon Schlinkert (https://github.com/jonschlinkert): shallow-clone
Jon Schlinkert (https://github.com/jonschlinkert): sort-object-arrays
Jon Schlinkert (https://github.com/jonschlinkert): split-string
Jon Schlinkert (https://github.com/jonschlinkert): static-extend
Jon Schlinkert (https://github.com/jonschlinkert): stringify-author
Jon Schlinkert (https://github.com/jonschlinkert): strip-bom-buffer
Jon Schlinkert (https://github.com/jonschlinkert): strip-bom-string
Jon Schlinkert (https://github.com/jonschlinkert): strip-color
Jon Schlinkert (https://github.com/jonschlinkert): success-symbol
Jon Schlinkert (https://github.com/jonschlinkert): tableize-object
Jon Schlinkert (https://github.com/jonschlinkert): template-error
Jon Schlinkert (https://github.com/jonschlinkert): templates
Jon Schlinkert (https://github.com/jonschlinkert): time-diff
Jon Schlinkert (https://github.com/jonschlinkert): time-stamp
Jon Schlinkert (https://github.com/jonschlinkert): to-absolute-glob
Jon Schlinkert (https://github.com/jonschlinkert): to-choices
Jon Schlinkert (https://github.com/jonschlinkert): to-object-path
Jon Schlinkert (https://github.com/jonschlinkert): trim-leading-lines
Jon Schlinkert (https://github.com/jonschlinkert): unc-path-regex
Jon Schlinkert (https://github.com/jonschlinkert): union-value
Jon Schlinkert (https://github.com/jonschlinkert): unset-value
Jon Schlinkert (https://github.com/jonschlinkert): use
Jon Schlinkert (https://github.com/jonschlinkert): vinyl-item
Jon Schlinkert (https://github.com/jonschlinkert): vinyl-view
Jon Schlinkert (https://github.com/jonschlinkert): warning-symbol
Jon Schlinkert (https://github.com/jonschlinkert): window-size
Jon Schlinkert (https://github.com/jonschlinkert): write
Jon Schlinkert (https://github.com/jonschlinkert): write-json
Jonas Pommerening <[email protected]> (https://npmjs.org/~jpommerening): lazystream
Jordan Harband: is-arguments
Jordan Harband: is-date-object
Julian Gruber <[email protected]> (http://juliangruber.com): balanced-match
Julian Gruber <[email protected]> (http://juliangruber.com): brace-expansion
Julian Gruber <[email protected]> (http://juliangruber.com): isarray
Kevin Martensson <[email protected]> (github.com/kevva): shebang-command
Mariusz Nowak <[email protected]> (http://www.medikoo.com/): next-tick
Mathias Buus (@mafintosh): stream-shift
Mathias Buus <[email protected]>: end-of-stream
Mathias Buus: duplexify
Matteo Collina <[email protected]>: cloneable-readable
Mihai Bazon <[email protected]> (http://lisperator.net/): uglify-js
Nathan Rajlich <[email protected]> (http://n8.io/): util-deprecate
Nick Fitzgerald <[email protected]>: source-map
Paul Miller (http://paulmillr.com/): async-each
Paul Vorbach <[email protected]> (http://paul.vorba.ch/): clone
Raynos <[email protected]>: duplexer
Raynos <[email protected]>: xtend
Rod Vagg <[email protected]> (https://github.com/rvagg): through2
Sam Verschueren <[email protected]> (github.com/SamVerschueren): vali-date
Simon Boudrias <[email protected]>: readline2
Simon Boudrias <[email protected]>: run-async
Sindre Sorhus <[email protected]> (http://sindresorhus.com): exit-hook
Sindre Sorhus <[email protected]> (sindresorhus.com): ansi-escapes
Sindre Sorhus <[email protected]> (sindresorhus.com): ansi-regex
Sindre Sorhus <[email protected]> (sindresorhus.com): ansi-styles
Sindre Sorhus <[email protected]> (sindresorhus.com): camelcase
Sindre Sorhus <[email protected]> (sindresorhus.com): cli-cursor
Sindre Sorhus <[email protected]> (sindresorhus.com): code-point-at
Sindre Sorhus <[email protected]> (sindresorhus.com): decamelize
Sindre Sorhus <[email protected]> (sindresorhus.com): escape-string-regexp
Sindre Sorhus <[email protected]> (sindresorhus.com): figures
Sindre Sorhus <[email protected]> (sindresorhus.com): first-chunk-stream
Sindre Sorhus <[email protected]> (sindresorhus.com): get-stdin
Sindre Sorhus <[email protected]> (sindresorhus.com): has-ansi
Sindre Sorhus <[email protected]> (sindresorhus.com): is-fullwidth-code-point
Sindre Sorhus <[email protected]> (sindresorhus.com): is-stream
Sindre Sorhus <[email protected]> (sindresorhus.com): number-is-nan
Sindre Sorhus <[email protected]> (sindresorhus.com): object-assign
Sindre Sorhus <[email protected]> (sindresorhus.com): onetime
Sindre Sorhus <[email protected]> (sindresorhus.com): os-homedir
Sindre Sorhus <[email protected]> (sindresorhus.com): path-is-absolute
Sindre Sorhus <[email protected]> (sindresorhus.com): restore-cursor
Sindre Sorhus <[email protected]> (sindresorhus.com): shebang-regex
Sindre Sorhus <[email protected]> (sindresorhus.com): strip-ansi
Sindre Sorhus <[email protected]> (sindresorhus.com): strip-bom
Sindre Sorhus <[email protected]> (sindresorhus.com): strip-bom-stream
Sindre Sorhus <[email protected]> (sindresorhus.com): supports-color
Stefan Thomas <[email protected]> (http://www.justmoon.net): extend
Stephen Sugden <[email protected]>: merge-stream
Thorsten Lorenz <[email protected]> (http://thlorenz.com): convert-source-map
TJ Holowaychuk <[email protected]>: debug
Tyler Kellen <http://goingslowly.com/>: empty-dir
Vladimir Zapparov <[email protected]>: js-yaml
wayfind: is-utf8
Yehuda Katz: handlebars
(Almost) all dependencies that have type definitions
ansi-styles
argparse
async
camel-case
camelcase
chalk
clone
co
component-emitter
convert-source-map
debug
decamelize
escape-string-regexp
esprima
extend
get-stdin
get-value
glob
glob-stream
graceful-fs
gray-matter
gulp-sourcemaps
handlebars
inflection
inherits
ini
is-absolute
is-plain-object
is-windows
js-yaml
json-stable-stringify
lodash.assign
lodash.bind
lodash.filter
lodash.flatten
lodash.foreach
lodash.initial
lodash.isarguments
lodash.isarray
lodash.isequal
lodash.istypedarray
lodash.keys
lodash.last
lower-case
lru-cache
merge-stream
micromatch
minimatch
minimist
mkdirp
ms
no-case
number-is-nan
object-assign
once
optimist
os-homedir
parse-glob
path-is-absolute
path-parse
path-to-regexp
repeat-string
replace-ext
resolve
rimraf
rx-lite
semver
source-map
sprintf-js
strip-ansi
strip-bom
supports-color
through
through2
uglify-js
upper-case
vinyl
vinyl-fs
which
window-size
wordwrap
xtend
yargs
Selection of potentionally relevant dependencies with type definitions
component-emitter
gray-matter
handlebars
inflection
through2
vinyl
vinyl-fs

Edit: Yup, that's almost 250 packages by @jonschlinkert and @doowb. I dearly hope most of those are internals. :)

@jonschlinkert
Copy link
Member

Also, function arguments are consistently wrapped in backticks. While jsdoc doesn't complain about them, they still need to be parsed out

FWIW I've been working on a number of huge improvements to how comments are parsed and used to create API documentation. You will be able to customize a lot more, and one of the goals is to offer support for JSDoc conventions.

In that case I'll be shifting my focus towards creating TypeScript definitions for some of the packages.

Awesome thanks! that would be greatly appreciated.

Dropping some stuff here for reference:

Lol, yeah there is way too much focus in node.js on the number of dependencies.

There is very little to no difference in load time between local dependencies (require('./foo') and dependencies from node_modules (require('foo')`). The main overhead is disk space for license and readme files, et cetera, which, IMHO is a small price to pay for a huge convenience.

@mootari
Copy link
Contributor Author

mootari commented Dec 29, 2017

FWIW I've been working on a number of huge improvements to how comments are parsed and used to create API documentation. You will be able to customize a lot more, and one of the goals is to offer support for JSDoc conventions.

Sounds exciting, please keep me posted! Which repos should I watch?

Lol, yeah there is way too much focus in node.js on the number of dependencies.

I'm merely worried about the number of packages I might have to sift through and create definitions for. ^^

@jonschlinkert
Copy link
Member

I'm merely worried about the number of packages I might have to sift through and create definitions for. ^^

Ah! Indeed, the vast majority of those libraries are not directly related to Assemble. Many of them are generic utility libs used by other libs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants