DEV Community

Cover image for all-shields-cli
Patryk Rzucidło
Patryk Rzucidło

Posted on

all-shields-cli

Badge generator of shields.io from .all-shieldsrc dotfile: Tool to help automate your badges of shields.io from a dotfile for your markdown files. Inspired by all-contributors-cli

🦌 Badges generator from dotfiles for any markdown

Tool to help automate your badges of shields.io, badgen.net, fury.io 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

Resources: [NPM] [GITHUB]

💡 Features

  • [✔️] Easy to use
  • [✔️] MIT License
  • [✔️] Support: shields.io
  • [✔️] Support: fury.io
  • [✔️] Support: snyk.io
  • [✔️] Support: badgen.net
  • [✔️] Full customizations!
  • [✔️] Liquid Variables
  • [✔️] Tool to help automate your badges on markdown.
  • [✔️] Badges generator from dotfiles for any markdown

👔 Screenshot

Badges generator from dotfiles for any markdown

🚀 Installation

  1. In your node project run: npm install @ptkdev/all-shields-cli --save-dev
  2. In your package.json add script:
    ...
    "scripts": {
        "all-shields-cli": "all-shields-generate"
    }
    ...
Enter fullscreen mode Exit fullscreen mode
  1. Create .all-shieldsrc and paste sample:
{
    "files": [
        "README.md"
    ],
    "shields": [
        {
            "id": "my-badges",
            "badges": [
                {
                    "url": "https://www.npmjs.com/package/@ptkdev/all-shields-cli",
                    "color": "lightgray",
                    "label": "package name",
                    "title": "package name",
                    "message": "all-shields-cli",
                    "style": "flat",
                    "logo": "",
                    "platform": "shields"
                }
            ]
        }
    ]
}
Enter fullscreen mode Exit fullscreen mode
  1. Add in your README.md the html comment (my-badges is id from the previous step):
<!-- all-shields/my-badges:START -->
<!-- all-shields/my-badges:END -->
Enter fullscreen mode Exit fullscreen mode
  1. Run npm run all-shields-cli

See folder examples, run with node example.js. Below is available a description of options values.

🔑 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)
  2. You can use pre-commit hooks with husky:
    ...
    "husky": {
        "hooks": {
            "pre-commit": "npm run all-shields-cli"
        }
    }
    ...
Enter fullscreen mode Exit fullscreen mode

🧰 Options: Badges Array

Parameter Description Values Default value Available on platforms Available since
platform Define platform discord / shields / fury / snyk / badgen 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 v1.1.0
url If you click on badge open this url URI empty discord, shields, fury, snyk, badgen 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 v1.0.0
message Badge text (right side). NOTE: Overwrited if custom is set. string empty discord, shields, fury, snyk, badgen 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.

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
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

💫 License

  • Code and Contributions have MIT License
  • Images and logos have CC BY-NC 4.0 License (Freepik Premium License)
  • Documentations and Translations have CC BY 4.0 License

❤️ Thanks! Leave a feedback!

Top comments (0)