├── .gitattributes ├── .gitignore ├── .npmrc ├── bin └── download.js ├── completions └── readme.fish ├── index.js ├── package.json └── readme.markdown /.gitattributes: -------------------------------------------------------------------------------- 1 | bin -text 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | core 3 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | save-prefix = ~ 2 | -------------------------------------------------------------------------------- /bin/download.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var coredocs = require('node-api-docs') 4 | var jsonstream = require('jsonstream') 5 | var through = require('through2') 6 | var mkdirp = require('mkdirp') 7 | var fs = require('fs') 8 | var path = require('path') 9 | 10 | var coredir = path.join(__dirname, '../core') 11 | mkdirp.sync(coredir) 12 | 13 | console.log('Downloading core docs for offline use...') 14 | 15 | coredocs.json('index') 16 | .pipe(jsonstream.parse(['desc',true,'text'])) 17 | .pipe(through.obj(function (text, enc, next) { 18 | var m = /^\[[^\]]+\]\((\S+)\.html\)$/.exec(text) 19 | if (!m) return next() 20 | if (m[1] === 'documentation' || m[1] === 'synopsis') return next() 21 | var file = m[1] + '.md' 22 | coredocs.markdown(m[1]).pipe(fs.createWriteStream(path.join(coredir, file))) 23 | next() 24 | })) 25 | 26 | // Don't abort install if this fails. 27 | process.on('uncaughtException', function (err) { 28 | console.error(err.toString()) 29 | }) 30 | -------------------------------------------------------------------------------- /completions/readme.fish: -------------------------------------------------------------------------------- 1 | # Fish completions for dominictarr/readme (npm install readme -g). 2 | # 3 | # Install: put this file to a directory listed in $fish_complete_path. 4 | # 5 | 6 | complete -c readme -xa "(ls -1 node_modules ^/dev/null)" 7 | complete -c readme -l help -d "Show help" 8 | complete -c readme -l version -d "Print version" 9 | complete -c readme -l global -d "Show readme for a globally installed module" 10 | complete -c readme -l core -d "Show readme for a core module" 11 | complete -c readme -l web -d "Open project's homepage" 12 | complete -c readme -l github -d "Open project's GitHub page" 13 | complete -c readme -l color -d "Turn on colors" 14 | complete -c readme -l no-color -d "Turn off colors" 15 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env node 2 | // -*- js2-strict-missing-semi-warning: nil; -*- 3 | 4 | var concat = require('concat-stream') 5 | var duplexer = require('duplexer2') 6 | var findRoot = require('find-root') 7 | var fs = require('fs') 8 | var help = require('help-version')(usage()).help 9 | var marked = require('marked') 10 | var markedTerminal = require('marked-terminal') 11 | var minimist = require('minimist') 12 | var npmPrefix = require('npm-prefix') 13 | var opener = require('opener') 14 | var resolve = require('resolve') 15 | var toUrl = require('github-url').toUrl 16 | var pager = require('default-pager') 17 | var pagerSupportsColor = require('pager-supports-color') 18 | var path = require('path') 19 | var through = require('through2') 20 | var readmeFilenames = require('readme-filenames') 21 | var iscore = require('is-core-module') 22 | var coredocs = require('node-api-docs') 23 | var fallbackStream = require('fallback-stream') 24 | var spawnSync = require('child_process').spawnSync 25 | 26 | 27 | function usage() { 28 | return [ 29 | 'Usage: readme [