Skip to content

Home

What is Stylebook?


  • Library extension
    A set of additional rules for static code analysis tools

  • Simplified CLI
    One command to lint multiple file types

How does it work?

flowchart LR
  subgraph "Project"
    src(Source code)
    config1[Optional config files]
  end
  subgraph "Static analysis"
    linters[Linter libraries]
    extensions[Rule extensions]
    config2[Default config files]
  end
  subgraph "Report"
    cli[Build failure<br>on lint errors]
  end
  subgraph "Refactor"
    manual(Manual edits<br>using suggestions)
  end

  src -- run --> linters
  extensions -- CLI --> cli
  cli -- fix --> manual

Support list

Extended linters have extra custom rules. Linters with API prints unified output message while messages printed by binary calls cannot be modified.

Markup documents Linter Identifiers Config file Extended API
 AsciiDoc AsciiDoc-Linter
Website
  • *.{adoc,asciidoc}
 CSS Stylelint
NPM Website
  • *.css
Stylelint configuration
 LaTeX ChkTeX
Website
  • *.tex
.chktexrc
 HTML HTMLHint
NPM Website
  • *.{html,htm}
.htmlhintrc
 Markdown markdownlint
NPM
  • *.{md,markdown}
.markdownlint.json
 reStructuredText restructuredtext-lint
PyPI
  • *.{rst,rest}
Serialization formats Linter Identifiers Config file Extended API
 Amazon State Language asl-validator
NPM
  • *.asl.{json,yaml,yml}
 CSV csvlint
pkgsite
  • *.{csv,tsv}
 JSON JSON Lint
NPM Website
  • *.{json,jsonc,cjson,json5}
.jsonlintrc.json
 Protobuf protolint
pkgsite
  • *.proto
.buf.yaml
 TOML py-taplo
PyPI Website
  • *.toml
.taplo.toml
 YAML yamllint
PyPI
  • *.{yaml,yml}
.yamllintrc.yaml
 XML libxml2
  • *.{xml,xhtml,xsl,svg,xaml}
Query languages Linter Identifiers Config file Extended API
 GraphQL graphql-schema-linter
NPM
  • *.{gql,graphql,gqls,graphqls}
.graphql-schema-linterrc
 SQL SQLFluff
PyPI Website
  • *.sql
.sqlfluff
Scripting languages Linter Identifiers Config file Extended API
 Batch Blinter
PyPI
  • *.{bat,btm,cmd}
blinter.ini
 Shell ShellCheck
Website
  • *.{sh,bash}
.shellcheckrc
Key-value pairs Linter Identifiers Config file Extended API
 Dotenv dotenv-linter
PyPI Website
  • *.{env,dotenv}
 INI pyinilint
PyPI
  • *.ini
 Properties propertieslint
pkgsite Website
  • *.properties
.propertieslint.json
Configuration files Linter Identifiers Config file Extended API
 Ansible Ansible Lint
PyPI Website
  • site.{yaml,yml}
  • webservers.{yaml,yml}
  • dbservers.{yaml,yml}
  • group_vars/**/*.{yaml,yml}
  • host_vars/**/*.{yaml,yml}
  • roles/**/*.{yaml,yml}
  • tasks/**/*.{yaml,yml}
 AWS CloudFormation CloudFormation Linter
PyPI
  • cloudformation/**/*.{yaml,yml}
  • cfn/**/*.{yaml,yml}
  • infrastructure/**/*.{yaml,yml}
  • infra/**/*.{yaml,yml}
.cfnlintrc.yaml
 Dockerfile hadolint
  • Dockerfile
  • Containerfile
  • Dockerfile.*
  • Containerfile.*
.hadolint.yaml
 GitHub Actions actionlint
pkgsite Website
  • .github/workflows/*.{yaml,yml}
 Kubernetes KubeLinter
pkgsite Website
  • manifests/*.{yaml,yml}
.kubelinter-config.yaml
 Makefile checkmake
pkgsite
  • Makefile
  • makefile
  • GNUmakefile
.checkmake.ini
 Tekton tekton-lint
NPM
  • .tekton/*.{yaml,yml}
.tektonlintrc.yaml
 Terraform TFLint
pkgsite
  • *.tf
.tflint.hcl
Diagram tools Linter Identifiers Config file Extended API
 Mermaid mermaid-lint
NPM Website
  • *.{mmd,mermaid}
Build tools Linter Identifiers Config file Extended API
 Go modules gomoddirectives
pkgsite
  • go.mod
 Lockfile lockfile-lint
NPM
  • package-lock.json
  • npm-shrinkwrap.json
  • yarn.lock

Download

Get the artifacts from official package managers.

Download the library

PyPINPM