standard-readme/README.md

120 lines
6.0 KiB
Markdown
Raw Normal View History

2016-05-12 21:57:48 +00:00
# Standard Readme
2015-12-27 21:01:27 +00:00
[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)
2015-12-27 21:01:27 +00:00
A standard style for README files
2015-12-27 21:01:27 +00:00
2016-07-27 15:49:39 +00:00
Your README file is normally the first entry point to your code. It should tell people why they should use your module, how they can install it, and how they can use it. Standardizing how you write your README makes creating and maintaining your READMEs easier. Great documentation takes work!
This repository contains:
2016-07-27 15:55:02 +00:00
1. [The specification](spec.md) for how a standard README should look.
2. A link to a linter you can use to keep your README maintained ([work in progress](https://github.com/RichardLitt/standard-readme/issues/5)).
3. A link to [a generator](https://github.com/RichardLitt/generator-standard-readme) you can use to create standard READMEs.
4. [A badge](#badge) to point to this spec.
5. [Examples of standard READMEs](example-readmes/) - such as this file you are reading.
2016-07-27 15:49:39 +00:00
Standard Readme is designed for open source libraries. Although its [historically](#background) made for Node and npm projects, it also applies to libraries in other languages and package managers.
2015-12-27 23:13:58 +00:00
2016-05-13 16:32:26 +00:00
## Table of Contents
2016-05-12 21:26:29 +00:00
2016-05-13 16:43:16 +00:00
- [Background](#background)
- [Install](#install)
2016-05-12 21:26:29 +00:00
- [Usage](#usage)
2017-05-08 11:47:15 +00:00
- [Generator](#generator)
2017-05-08 13:20:52 +00:00
- [Badge](#badge)
- [Example Readmes](#example-readmes)
2017-05-08 11:47:15 +00:00
- [Related Efforts](#related-efforts)
- [Maintainers](#maintainers)
- [Contributing](#contributing)
- [License](#license)
2016-05-12 21:26:29 +00:00
2016-05-13 16:20:03 +00:00
## Background
2016-07-27 15:49:39 +00:00
Standard Readme started with the issue originally posed by [@maxogden](https://github.com/maxogden) over at [feross/standard](https://github.com/feross/standard) in [this issue](https://github.com/feross/standard/issues/141), about whether or not a tool to standardize readmes would be useful. A lot of that discussion ended up in [zcei's standard-readme](https://github.com/zcei/standard-readme/issues/1) repository. While working on maintaining the [IPFS](https://github.com/ipfs) repositories, I needed a way to standardize Readmes across that organization. This specification started as a result of that.
2016-05-13 16:20:03 +00:00
2016-05-23 12:37:03 +00:00
> Your documentation is complete when someone can use your module without ever
having to look at its code. This is very important. This makes it possible for
you to separate your module's documented interface from its internal
implementation (guts). This is good because it means that you are free to
change the module's internals as long as the interface remains the same.
> Remember: the documentation, not the code, defines what a module does.
2016-06-01 15:58:49 +00:00
~ [Ken Williams, Perl Hackers](http://mathforum.org/ken/perl_modules.html#document)
2016-05-23 12:37:03 +00:00
2020-01-05 23:58:36 +00:00
Writing READMEs is way too hard, and keeping them maintained is difficult. By offloading this process - making writing easier, making editing easier, making it clear whether or not an edit is up to spec or not - you can spend less time worrying about whether or not your initial documentation is good, and spend more time writing and using code.
2016-07-27 15:49:39 +00:00
2020-01-05 23:58:36 +00:00
By having a standard, users can spend less time searching for the information they want. They can also build tools to gather search terms from descriptions, to automatically run example code, to check licensing, and so on.
2016-07-27 15:49:39 +00:00
The goals for this repository are:
1. A well defined **specification**. This can be found in the [Spec document](spec.md). It is a constant work in progress; please open issues to discuss changes.
2. **An example README**. This Readme is fully standard-readme compliant, and there are more examples in the `example-readmes` folder.
2016-05-13 16:20:03 +00:00
3. A **linter** that can be used to look at errors in a given Readme. Please refer to the [tracking issue](https://github.com/RichardLitt/standard-readme/issues/5).
4. A **generator** that can be used to quickly scaffold out new READMEs. See [generator-standard-readme](https://github.com/RichardLitt/generator-standard-readme).
5. A **compliant badge** for users. See [the badge](#badge).
2016-05-13 16:20:03 +00:00
## Install
2016-05-12 21:26:29 +00:00
This project uses [node](http://nodejs.org) and [npm](https://npmjs.com). Go check them out if you don't have them locally installed.
2016-05-12 21:26:29 +00:00
```sh
2017-05-08 13:21:14 +00:00
$ npm install --global standard-readme-spec
2016-05-12 21:26:29 +00:00
```
2015-12-27 23:13:58 +00:00
## Usage
2017-05-08 13:21:14 +00:00
This is only a documentation package. You can print out [spec.md](spec.md) to your console:
```sh
$ standard-readme-spec
# Prints out the standard-readme spec
```
2015-12-27 23:13:58 +00:00
### Generator
To use the generator, look at [generator-standard-readme](https://github.com/RichardLitt/generator-standard-readme). There is a global executable to run the generator in that package, aliased as `standard-readme`.
2017-05-08 13:20:52 +00:00
## Badge
2016-06-03 09:53:14 +00:00
2016-06-03 10:02:31 +00:00
If your README is compliant with Standard-Readme and you're on GitHub, it would be great if you could add the badge. This allows people to link back to this Spec, and helps adoption of the README. The badge is **not required**.
2016-06-03 09:53:14 +00:00
2016-11-14 10:06:15 +00:00
[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)
2016-06-03 09:53:14 +00:00
2016-06-03 10:02:31 +00:00
To add in Markdown format, use this code:
```
2016-11-14 10:06:15 +00:00
[![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)
2016-06-03 10:02:31 +00:00
```
2016-06-03 09:53:14 +00:00
2017-05-08 13:20:52 +00:00
## Example Readmes
2016-05-23 11:48:02 +00:00
To see how the specification has been applied, see the [example-readmes](example-readmes/).
2017-05-08 11:47:15 +00:00
## Related Efforts
- [Art of Readme](https://github.com/noffle/art-of-readme) - 💌 Learn the art of writing quality READMEs.
2017-05-08 14:37:33 +00:00
- [open-source-template](https://github.com/davidbgk/open-source-template/) - A README template to encourage open-source contributions.
2017-05-08 11:47:15 +00:00
## Maintainers
[@RichardLitt](https://github.com/RichardLitt).
## Contributing
2016-05-13 16:20:03 +00:00
Feel free to dive in! [Open an issue](https://github.com/RichardLitt/standard-readme/issues/new) or submit PRs.
2016-05-12 21:26:29 +00:00
2016-06-02 09:37:30 +00:00
Standard Readme follows the [Contributor Covenant](http://contributor-covenant.org/version/1/3/0/) Code of Conduct.
### Contributors
This project exists thanks to all the people who contribute.
<a href="graphs/contributors"><img src="https://opencollective.com/standard-readme/contributors.svg?width=890&button=false" /></a>
2015-12-27 23:13:58 +00:00
## License
2017-03-16 19:51:58 +00:00
[MIT](LICENSE) © Richard Littauer