# electron-docs [![Build Status](https://travis-ci.org/electron/electron-docs.svg?branch=master)](https://travis-ci.org/electron/electron-docs) This package consumes the [electron/electron](https://github.com/electron/electron) repo in search of markdown files, and returns an array of file objects with stringified file contents. It is used by Electron's [docs linter](https://github.com/electron/electron-docs-linter). ## Installation ```sh npm install electron-docs --save ``` ## Programmatic Usage Require the function and call it with any of the following: - A remote branch name, like `main` - A version number, like `1.4.4` - A version number that starts with a `v`, like `v1.7.0` - A commit SHA, like `76375a83eb3a97e7aed14d37d8bdc858c765e564` - A local directory, like `~/my/path/to/electron/` ```js const electronDocs = require('electron-docs') electronDocs('main').then(function(docs) { // docs is an array of objects, one for each markdown file in /docs }) ``` Each object in the `docs` array looks like this: ```js { slug: "windows-store-guide", filename: "docs/tutorial/windows-store-guide.md", markdown_content: "# Windows Store Guide\n\n..." } ``` When fetching docs from a local directory, be sure to use a full path: ```js const path = require('path') const docsPath = path.join(__dirname, 'docs') electronDocs(docsPath).then(function(docs) { // ... }) ``` If you prefer node-style callbacks instead of promises, those are supported too: ```js electronDocs('1.0.0', function(err, docs) { console.log(err, docs) }) ``` ## CLI Usage Add this to your package.json file: ```json { "scripts": { "docs": "electron-docs > docs.json" } } ``` When you run `npm run docs`, the module writes the stringified JSON object to `stdout`, and the output is piped into a file. `stdout` ftw! ## Tests ```sh npm i && npm t ``` ## Dependencies - [got](https://ghub.io/got): Simplified HTTP requests - [gunzip-maybe](https://github.com/mafintosh/gunzip-maybe): Transform stream that gunzips its input if it is gzipped and just echoes it if not - [node-dir](https://ghub.io/node-dir): asynchronous file and directory operations for Node.js - [ora](https://ghub.io/ora): Elegant terminal spinner - [path-exists](https://ghub.io/path-exists): Check if a path exists - [pify](https://github.com/sindresorhus/pify): Promisify a callback-style function - [semver](https://ghub.io/semver): The semantic version parser used by npm. - [tar-fs](https://github.com/mafintosh/tar-fs): filesystem bindings for tar-stream ## Dev Dependencies - [tap-spec](https://github.com/scottcorgan/tap-spec): Formatted TAP output like Mocha's spec reporter - [tape](https://github.com/substack/tape): tap-producing test harness for node and browsers ## License MIT