1 | # Metalint
|
2 |
|
3 | [![NPM][img-npm]][link-npm]
|
4 | [![Build][img-build]][link-build]
|
5 | [![Dependencies][img-dependencies]][link-dependencies]
|
6 | [![Code Climate][img-codeclimate]][link-codeclimate]
|
7 | [![Coverage][img-coverage]][link-coverage]
|
8 | [![License][img-license]][link-license]
|
9 |
|
10 | > *Un linter pour les gouverner tous.*
|
11 |
|
12 | [Site Internet](//regseb.github.io/metalint/)
|
13 |
|
14 | ## Description
|
15 |
|
16 | **Metalint** est un outil pour vérifier tous les fichiers de votre projet. La
|
17 | vérification est déléguée à des outils d'analyse statique de code source
|
18 | (*linters*) selon le type de fichier :
|
19 |
|
20 | - CSS : [CSSLint](//regseb.github.io/metalint/user/linters/csslint/) et
|
21 | [stylelint](//regseb.github.io/metalint/user/linters/stylelint/) ;
|
22 | - HTML : [html5-lint](//regseb.github.io/metalint/user/linters/html5-lint/),
|
23 | [HTMLHint](//regseb.github.io/metalint/user/linters/htmlhint/) et
|
24 | [htmllint](//regseb.github.io/metalint/user/linters/htmllint/) ;
|
25 | - JavaScript : [ESLint](//regseb.github.io/metalint/user/linters/eslint/),
|
26 | [Flow](//regseb.github.io/metalint/user/linters/flow-bin/),
|
27 | [JSCS](//regseb.github.io/metalint/user/linters/jscs/),
|
28 | [JSHint](//regseb.github.io/metalint/user/linters/jshint/) et
|
29 | [JavaScript Standard
|
30 | Style](//regseb.github.io/metalint/user/linters/standard) ;
|
31 | - JSON : [JSON-Lint](//regseb.github.io/metalint/user/linters/json-lint/) et
|
32 | [JSONLint](//regseb.github.io/metalint/user/linters/jsonlint/) ;
|
33 | - Markdown :
|
34 | [MarkdownLint](//regseb.github.io/metalint/user/linters/markdownlint/).
|
35 |
|
36 | ## Installation
|
37 |
|
38 | Vous pouvez installer Metalint en utilisant
|
39 | [npm](//www.npmjs.com/package/metalint) :
|
40 |
|
41 | ```shell
|
42 | npm install -g metalint
|
43 | ```
|
44 |
|
45 | ## Configuration
|
46 |
|
47 | Tous les fichiers de configuration sont à regrouper dans le répertoire
|
48 | `.metalint/` qui doit être placé à la racine du projet. Le fichier
|
49 | `metalint.json` contient un objet JSON indiquant les linters à utiliser pour
|
50 | chaque fichier. Les autres fichiers contiennent les options pour les linters.
|
51 |
|
52 | ## Exemple
|
53 |
|
54 | Dans cet exemple du fichier de configuration `metalint.json`, Metalint vérifie
|
55 | les fichiers JavaScript (non-minifiés), HTML et CSS ; avec les linters ESLint,
|
56 | JSCS, HTMLHint et CSSLint.
|
57 |
|
58 | ```JSON
|
59 | {
|
60 | "patterns": ["!git/**", "!node_modules/**", "**"],
|
61 | "checkers": [
|
62 | {
|
63 | "patterns": ["!**/*.min.js", "**/*.js"],
|
64 | "linters": ["eslint", "jscs"]
|
65 | }, {
|
66 | "patterns": "**/*.html",
|
67 | "linters": "htmlhlint"
|
68 | }, {
|
69 | "patterns": "**/*.css",
|
70 | "linters": "csslint"
|
71 | }
|
72 | ]
|
73 | }
|
74 | ```
|
75 |
|
76 | ## Usage
|
77 |
|
78 | ```shell
|
79 | metalint
|
80 | ```
|
81 |
|
82 | [img-npm]:https://img.shields.io/npm/v/metalint.svg
|
83 | [img-build]:https://img.shields.io/travis/regseb/metalint.svg
|
84 | [img-dependencies]:https://img.shields.io/david/regseb/metalint.svg
|
85 | [img-codeclimate]:https://img.shields.io/codeclimate/github/regseb/metalint.svg
|
86 | [img-coverage]:https://img.shields.io/coveralls/regseb/metalint.svg
|
87 | [img-license]:https://img.shields.io/badge/license-EUPL-blue.svg
|
88 |
|
89 | [link-npm]://npmjs.com/package/metalint
|
90 | [link-build]://travis-ci.org/regseb/metalint
|
91 | [link-dependencies]://david-dm.org/regseb/metalint
|
92 | [link-codeclimate]://codeclimate.com/github/regseb/metalint
|
93 | [link-coverage]://coveralls.io/github/regseb/metalint
|
94 | [link-license]://joinup.ec.europa.eu/software/page/eupl/licence-eupl
|
95 | "Licence Publique de l’Union européenne"
|