3 releases
0.1.2 | Feb 26, 2024 |
---|---|
0.1.1 | Feb 2, 2024 |
0.1.0 | Jan 29, 2024 |
#1827 in Command line utilities
37 downloads per month
24KB
439 lines
Standard Readme
Generate Standard Readme-compatible READMEs
Standard Readme is a standard style for writing READMEs created by @RichardLitt. He himself had implemented a Yeoman generator for creating standardized READMEs just like this one. This tool is heavily inspired by Richard's generator. I just wanted to write an implementation that can be distributed as a single statically linked binary. This implementation supports every feature the original one does and should generate near-identical READMEs.
See the Standard Readme repo for more information on Standard Readmes.
Table of Contents
Install
You can download the correct version for your operating system and architecture using the download.ps1
script. Don't
let the name fool you, the script works with Bash/ZSH on Linux or macOS too!
On Linux or macOS run:
curl -s https://raw.githubusercontent.com/kfkonrad/generator-standard-readme-rust/main/download.ps1 | bash
# OR
wget -qO- https://raw.githubusercontent.com/kfkonrad/generator-standard-readme-rust/main/download.ps1 | bash
On Windows run:
Invoke-Expression ((Invoke-WebRequest -Uri "https://raw.githubusercontent.com/kfkonrad/generator-standard-readme-rust/main/download.ps1").Content)
If you don't like running scripts from the internet you can find and download the application in the releases section of this repo as well.
You can also install from source using cargo:
cargo install standard-readme
Usage
Simply run standard-readme
:
standard-readme
You will be asked interactively for any additional information necessary to generate the README.
Publishing standard-readme
To publish a new version of standard-readme
on crates.io you can run cargo publish
like with any other Rust project
(assuming you have sufficient access to the crate).
To publish a new version of standard-readme
as a GitHub release you can run ./release.sh
(again assuming you have
sufficient privileges). The release.sh
script performs several steps:
- Install
cross
andgit-cliff
if necessary - Check for the GitHub CLI
gh
- If running on macOS: Install the rustup targets
aarch64-apple-darwin
andx86_64-apple-darwin
if necessary - Compile
standard-readme
for all configured targets. macOS binaries will only be created if run on a Mac. Linux and Windows binaries are cross-compiles withcross
- Compress and collect the binaries for each platform
- Create and push a git tag based on the version found in
Cargo.toml
- Create a GitHub release for that version. The changelog gets generated using
git-cliff
and the compressed binaries are uploaded automatically
release.sh
will detect a dirty git state (such as unstaged or uncommitted changes) and skip creating a tag or release.
It also supports a dry-run mode that performs all the builds but skips the git tag and GitHub release steps as well. To
perform a dry run exectute ./release.sh --dry-run
. This is the only supported argument, all other arguments will be
ignored.
release.sh
is compatible with both the BSD and GNU variants of all tools used. Other than the Rust toolchain only the
GitHub CLI gh
needs to be installed for release.sh
to be able to run.
Maintainers
Contributing
PRs accepted.
Small note: If editing the README, please conform to the standard-readme specification.
License
MIT © 2024 Kevin F. Konrad
Dependencies
~17–31MB
~477K SLoC