@ptkdev/all-shields-cli
Version:
Tool to help automate your badges of shields.io, badgen.net, fury.io, github action and snyk.io from .all-shieldsrc dotfile for your markdown files. You can use Liquid variables like {{name}} or {{version}} which refer to your package.json. Inspired by al
221 lines (153 loc) • 27 kB
Markdown
[](https://www.npmjs.com/package/@ptkdev/all-shields-cli)
# 🦌 all-shields-cli - badges generator
<!-- all-shields/header-badges:START -->
[](https://github.com/ptkdev/all-shields-cli/blob/main/CHANGELOG.md) [](https://www.npmjs.com/package/@ptkdev/all-shields-cli) [](https://github.com/ptkdev/all-shields-cli/blob/main/LICENSE.md) [](https://www.typescriptlang.org/) [](https://github.com/tc39/ecma262) [](https://discord.ptkdev.io)
<!-- all-shields/header-badges:END -->
Tool to help automate your badges of shields.io, badgen.net, fury.io, github action and snyk.io from `.all-shieldsrc` dotfile for your markdown files. You can use Liquid variables like `{{name}}` or `{{version}}` which refer to your `package.json`. Inspired by [all-contributors-cli](https://www.npmjs.com/package/all-contributors-cli)
## 🎁 Support: Donate
> This project is **free**, **open source** and I try to provide excellent **free support**. Why donate? I work on this project several hours in my spare time and try to keep it up to date and working. **THANK YOU!**
<!-- all-shields/sponsors-badges:START -->
[](https://www.paypal.me/ptkdev) [](https://ko-fi.com/ptkdev) [](https://github.com/sponsors/ptkdev) [](https://www.patreon.com/join/ptkdev) [](https://ptk.dev/img/icons/menu/bitcoin_wallet.png) [](https://ptk.dev/img/icons/menu/ethereum_wallet.png)
<!-- all-shields/sponsors-badges:END -->
## 📎 Menu
- 💡 [Features](#-features)
- 👔 [Screenshot](#-screenshot)
- 🚀 [How to use](#-how-to-use)
- - 🔧 [installation](#-installation)
- - ⚙️ [CLI](#%EF%B8%8F-cli)
- 📚 [Documentation](#-documentation)
- - 🔑 [Liquid Variables](#-liquid-variables)
- - 🐶 [With Husky](#-work-with-husky)
- - 🧰 [Options](#-options-badges-array)
- 🔨 [Developer Mode](#-developer-mode)
- - 🏁 [Run Project](#-run-project)
- 👨💻 [Contributing](#-contributing)
- 🐛 [Known Bugs](https://github.com/ptkdev/all-shields-cli/issues?q=is%3Aopen+is%3Aissue+label%3Abug)
- 🍻 Community:
- <img src="https://raw.githubusercontent.com/ptkdev/all-shields-cli/main/.github/assets/social_telegram.png" height="18px"> Telegram ([🇬🇧 English](http://t.me/ptkdev_support) | [🇮🇹 Italian](http://t.me/ptkdev_support_italian))
- <img src="https://raw.githubusercontent.com/ptkdev/all-shields-cli/main/.github/assets/social_discord.png" height="18px"> [Discord](http://discord.ptkdev.io) ([🇬🇧 English](https://discord.gg/FxMun2J) | [🇮🇹 Italian](https://discord.gg/pR5hqBt) | [🇵🇱 Polish](https://discord.gg/8CUx5dz))
- <img src="https://raw.githubusercontent.com/ptkdev/all-shields-cli/main/.github/assets/social_twitter.png" height="18px"> [Twitter](http://twitter.com/ptkdevio)
## 💡 Features
- [✔️] Easy to use
- [✔️] MIT License
- [✔️] Support: shields.io
- [✔️] Support: fury.io
- [✔️] Support: snyk.io
- [✔️] Support: badgen.net
- [✔️] Support: github action
- [✔️] Full customizations!
- [✔️] Liquid Variables
- [✔️] Tool to help automate your badges on markdown.
- [✔️] Badges generator from dotfiles for any markdown
## 👔 Screenshot
[](https://raw.githubusercontent.com/ptkdev/all-shields-cli/main/.github/assets/screenshot.png)
## 🚀 How to use
#### 🔧 Installation
1. In your node project run: `npm install @ptkdev/all-shields-cli --save-dev`
2. In your `package.json` add script:
```json
...
"scripts": {
"all-shields-generate": "all-shields-cli"
}
...
```
3. Create `.all-shieldsrc` and paste sample:
```json
{
"files": ["README.md"],
"shields": [
{
"id": "my-badges",
"badges": [
{
"url": "https://www.npmjs.com/package/@ptkdev/all-shields-cli",
"color": "#D3D3D3",
"label": "package name",
"title": "package name",
"message": "{{name}}",
"style": "flat",
"logo": "",
"platform": "shields"
}
]
}
]
}
```
4. Add in your `README.md` the html comment (`my-badges` is `id` from the previous step):
```html
<!-- all-shields/my-badges:START -->
<!-- all-shields/my-badges:END -->
```
5. Run `npm run all-shields-generate`
See folder `examples`, run with `npm run example`. Below is available a description of `options` values.
##### ⚙️ CLI
1. Install cli package globally: `npm install @ptkdev/all-shields-cli -g`
2. Run anywhere: `all-shields-cli`
You can use npx, example: `npx @ptkdev/all-shields-cli`
## 🔑 Liquid variables
In your `.all-shieldsrc` dotfile you can use liquid variables like {{name}} or {{version}} which refer to your `package.json`. Key of `package.json` is name of liquid variable `{{key_from_package.json}}`
## 🐶 Work with Husky
1. In your node project run: `npm install husky --save-dev` ([docs](https://www.npmjs.com/package/husky))
2. Setup husky with: `npx husky install`
3. Add hook: `npx husky add .husky/pre-commit "npm run all-shields-generate"`
## 🧰 Options: Badges Array
| Parameter | Description | Values | Default value | Available on platforms | Available since |
| --------- | --------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | -------------------------------------------------------- | --------------- |
| platform | Define platform | `discord` / `shields` / `fury` / `snyk` / `badgen` / `github` | `shields` | | **v1.0.0** |
| custom | Set custom string of image url (appended after domain url of badge service) | `string` | empty | `discord`, `shields`, `fury`, `snyk`, `badgen`, `github` | **v1.1.0** |
| url | If you click on badge open this url | `URI` | empty | `discord`, `shields`, `fury`, `snyk`, `badgen`, `github` | **v1.0.0** |
| color | Badge hexcode color (right side). NOTE: Overwrited if `custom` is set. | `string` / `hexcode` | `lightgray` | `shields`, `badgen` | **v1.0.0** |
| label | Badge text (left side). NOTE: Overwrited if `custom` is set. | `string` | empty | `shields`, `badgen` | **v1.0.0** |
| title | Mouse hover alt text | `string` | empty | `discord`, `shields`, `fury`, `snyk`, `badgen`, `github` | **v1.0.0** |
| message | Badge text (right side). NOTE: Overwrited if `custom` is set. | `string` | empty | `discord`, `shields`, `fury`, `snyk`, `badgen`, `github` | **v1.0.0** |
| style | Look of badge. NOTE: Overwrited if `custom` is set. | `plastic` / `flat` / `flat-square` / `for-the-badge` / `social` | `flat` | `shields` | **v1.0.0** |
| logo | Show logo (left side). NOTE: Overwrited if `custom` is set. | shields: `bitcoin` , `dependabot` , `discord` , `gitlab` , `npm` , `paypal` , `serverfault` , `stackexchange` , `superuser` , `telegram` , `travis` and more on [docs](https://shields.io/). <br><br> badgen: `airbnb`, `apple`, `appveyor`, `atom`, `awesome`, `azure`, `azurepipelines`, `bitcoin`, `buymeacoffee`, `chrome`, `circleci`, `cocoapods`, `codacy`, `codebeat`, `codeclimate`, `codecov`, `codeship`, `commonwl`, `deepscan`, `dependabot`, `discord`, `dockbit`, `docker`, `eclipse`, `firefox`, `flow`, `git`, `github`, `gitlab`, `gitter`, `googleplay`, `graphql`, `haskell`, `jsdelivr` and more on [docs](https://badgen.net/) | empty | `shields`, `badgen` | **v1.0.0** |
| server_id | if platform is discord, set your discord server_id | `DISCORD_SERVER_ID` | empty | `discord` | **v1.0.0** |
## 🔨 Developer Mode
#### 🏁 Run Project
1. Clone this repository or download [nightly](https://github.com/ptkdev/all-shields-cli/archive/nightly.zip), [beta](https://github.com/ptkdev/all-shields-cli/archive/beta.zip) or [stable](https://github.com/ptkdev/all-shields-cli/archive/main.zip).
2. Run `npm run init`
3. Run `npm run build && npm run link` (unix require `sudo`)
4. Run `all-shields-cli` anywhere for execute command line tool
or run `npm run dev` for watch mode.
## 📚 Documentation
Run `npm run docs`
## 👑 Backers and Sponsors
Thanks to all our backers! 🙏 Donate 3$ or more on [paypal](https://www.paypal.me/ptkdev), [ko-fi](https://ko-fi.com/ptkdev), [github](https://github.com/sponsors/ptkdev) or [patreon](https://www.patreon.com/join/ptkdev) and send me [email](mailto:support@ptkdev.io) with your avatar and url.
[](https://api.ptkdev.io/backers/sponsor1.html) [](https://api.ptkdev.io/backers/sponsor2.html) [](https://api.ptkdev.io/backers/sponsor-kofi1.html) [](https://api.ptkdev.io/backers/sponsor-kofi2.html) [](https://api.ptkdev.io/backers/sponsor-kofi3.html) [](https://api.ptkdev.io/backers/sponsor3.html) [](https://api.ptkdev.io/backers/sponsor4.html) [](https://api.ptkdev.io/backers/sponsor5.html) [](https://api.ptkdev.io/backers/sponsor6.html) [](https://api.ptkdev.io/backers/sponsor7.html) [](https://api.ptkdev.io/backers/sponsor8.html) [](https://api.ptkdev.io/backers/sponsor9.html) [](https://api.ptkdev.io/backers/sponsor10.html) [](https://api.ptkdev.io/backers/sponsor11.html) [](https://api.ptkdev.io/backers/sponsor12.html) [](https://api.ptkdev.io/backers/sponsor13.html) [](https://api.ptkdev.io/backers/sponsor14.html) [](https://api.ptkdev.io/backers/sponsor15.html) [](https://api.ptkdev.io/backers/backer1.html) [](https://api.ptkdev.io/backers/backer2.html) [](https://api.ptkdev.io/backers/backer3.html) [](https://api.ptkdev.io/backers/backer4.html) [](https://api.ptkdev.io/backers/backer5.html) [](https://api.ptkdev.io/backers/backer6.html) [](https://api.ptkdev.io/backers/backer7.html) [](https://api.ptkdev.io/backers/backer8.html) [](https://api.ptkdev.io/backers/backer9.html) [](https://api.ptkdev.io/backers/backer10.html) [](https://api.ptkdev.io/backers/backer11.html) [](https://api.ptkdev.io/backers/backer12.html) [](https://api.ptkdev.io/backers/backer13.html) [](https://api.ptkdev.io/backers/backer14.html) [](https://api.ptkdev.io/backers/backer15.html) [](https://api.ptkdev.io/backers/backer16.html) [](https://api.ptkdev.io/backers/backer17.html) [](https://api.ptkdev.io/backers/backer18.html) [](https://api.ptkdev.io/backers/backer19.html) [](https://api.ptkdev.io/backers/backer20.html) [](https://api.ptkdev.io/backers/backer21.html) [](https://api.ptkdev.io/backers/backer22.html) [](https://api.ptkdev.io/backers/backer23.html) [](https://api.ptkdev.io/backers/backer24.html) [](https://api.ptkdev.io/backers/backer25.html) [](https://api.ptkdev.io/backers/backer26.html) [](https://api.ptkdev.io/backers/backer27.html) [](https://api.ptkdev.io/backers/backer28.html) [](https://api.ptkdev.io/backers/backer29.html)
## 👨💻 Contributing
I ❤️ contributions! I will happily accept your pull request! Translations, grammatical corrections (GrammarNazi you are welcome! Yes my English is bad, sorry), etc... Do not be afraid, if the code is not perfect we will work together 👯 and remember to insert your name in `.all-contributorsrc` and `package.json` file.
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://ptk.dev"><img src="https://avatars1.githubusercontent.com/u/442844?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Patryk Rzucidło</b></sub></a><br /><a href="https://github.com/ptkdev/ptkdev/all-shields-cli/commits?author=ptkdev" title="Code">💻</a> <a href="#translation-ptkdev" title="Translation">🌍</a> <a href="https://github.com/ptkdev/ptkdev/all-shields-cli/commits?author=ptkdev" title="Documentation">📖</a> <a href="https://github.com/ptkdev/ptkdev/all-shields-cli/issues?q=author%3Aptkdev" title="Bug reports">🐛</a></td>
<td align="center"><a href="https://github.com/di4urp"><img src="https://avatars1.githubusercontent.com/u/44859500?v=4?s=100" width="100px;" alt=""/><br /><sub><b>di4urp</b></sub></a><br /><a href="https://github.com/ptkdev/ptkdev/all-shields-cli/commits?author=di4urp" title="Code">💻</a> <a href="https://github.com/ptkdev/ptkdev/all-shields-cli/issues?q=author%3Adi4urp" title="Bug reports">🐛</a></td>
</tr>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
> 💰 In the future, if the donations allow it, I would like to share some of the success with those who helped me the most. For me open source is share of code, share development knowledges and share donations!
## 🦄 Other Projects
<!-- all-shields/projects-badges1:START -->
[](https://ptk.dev/)
<!-- all-shields/projects-badges1:END -->
<!-- all-shields/projects-badges2:START -->
[](https://github.com/ptkdev/ptkdev-logger) [](https://github.com/ptkdev/all-shields-cli) [](https://github.com/ptkdev/chrome-extension-aspectratio219) [](https://availableon.badge.ptkdev.io/) [](https://github.com/ptkdev/json-token-replace) [](https://github.com/ptkdev/eslint-plugin-snakecasejs)
<!-- all-shields/projects-badges2:END -->
<!-- all-shields/projects-badges3:START -->
[](https://github.com/ptkdev-components/webcomponent-instagram-widget) [](https://github.com/ptkdev-components/webcomponent-patreon-box) [](https://github.com/ptkdev-components/webcomponent-carousel-slideshow)
<!-- all-shields/projects-badges3:END -->
<!-- all-shields/projects-badges4:START -->
[](https://github.com/ptkdev/vscode-theme-dark-blood) [](https://t.me/gamebookchatbot) [](https://github.com/ptkdev?q=svelte) [](https://github.com/ptkdev?q=webcomponent) [](https://github.com/ptkdev?q=bot) [](https://github.com/ptkdev?q=node) [](https://meingifs.pics/) [](https://github.com/ptkdev/ptkdev-stickers#-install-free)
<!-- all-shields/projects-badges4:END -->
## 💫 License
- Code and Contributions have **MIT License**
- Images and logos have **CC BY-NC 4.0 License** ([Freepik](https://it.freepik.com/) Premium License)
- Documentations and Translations have **CC BY 4.0 License**
###### Copyleft (c) 2021 [Patryk Rzucidło](https://ptk.dev) ([@PTKDev](https://twitter.com/ptkdev)) <[support@ptkdev.io](mailto:support@ptkdev.io)>