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.
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 | bashOn 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-readmeSimply run standard-readme:
standard-readmeYou will be asked interactively for any additional information necessary to generate the README.
By default this will generate the README in English, other languages can be select by using
standard-readme -l <LANGUAGE>. Currently only English (en) and German (de) are supported.
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
crossandgit-cliffif necessary - Check for the GitHub CLI
gh - If running on macOS: Install the rustup targets
aarch64-apple-darwinandx86_64-apple-darwinif necessary - Compile
standard-readmefor 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-cliffand 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.
PRs accepted.
Small note: If editing the README, please conform to the standard-readme specification.
MIT © 2024 Kevin F. Konrad