quickmark_core/rules/
mod.rs1use std::rc::Rc;
2
3use crate::linter::{Context, RuleLinter};
4
5pub mod md001;
6pub mod md003;
7pub mod md004;
8pub mod md005;
9pub mod md007;
10pub mod md009;
11pub mod md010;
12pub mod md011;
13pub mod md012;
14pub mod md013;
15pub mod md014;
16pub mod md018;
17pub mod md019;
18pub mod md020;
19pub mod md021;
20pub mod md022;
21pub mod md023;
22pub mod md024;
23pub mod md025;
24pub mod md026;
25pub mod md027;
26pub mod md028;
27pub mod md029;
28pub mod md030;
29pub mod md031;
30pub mod md032;
31pub mod md033;
32pub mod md034;
33pub mod md035;
34pub mod md036;
35pub mod md037;
36pub mod md038;
37pub mod md039;
38pub mod md040;
39pub mod md041;
40pub mod md042;
41pub mod md043;
42pub mod md044;
43pub mod md045;
44pub mod md046;
45pub mod md047;
46pub mod md048;
47pub mod md049;
48pub mod md050;
49pub mod md051;
50pub mod md052;
51pub mod md053;
52pub mod md054;
53pub mod md055;
54pub mod md056;
55pub mod md058;
56pub mod md059;
57
58#[derive(Debug, Clone, Copy, PartialEq, Eq)]
59pub enum RuleType {
60 Line,
62 Token,
64 Document,
66 Hybrid,
68}
69
70#[derive(Debug)]
71pub struct Rule {
72 pub id: &'static str,
73 pub alias: &'static str,
74 pub tags: &'static [&'static str],
75 pub description: &'static str,
76 pub rule_type: RuleType,
77 pub required_nodes: &'static [&'static str], pub new_linter: fn(Rc<Context>) -> Box<dyn RuleLinter>,
79}
80
81pub const ALL_RULES: &[Rule] = &[
82 md001::MD001,
83 md003::MD003,
84 md004::MD004,
85 md005::MD005,
86 md007::MD007,
87 md009::MD009,
88 md010::MD010,
89 md011::MD011,
90 md012::MD012,
91 md013::MD013,
92 md014::MD014,
93 md018::MD018,
94 md019::MD019,
95 md020::MD020,
96 md021::MD021,
97 md022::MD022,
98 md023::MD023,
99 md024::MD024,
100 md025::MD025,
101 md026::MD026,
102 md027::MD027,
103 md028::MD028,
104 md029::MD029,
105 md030::MD030,
106 md031::MD031,
107 md032::MD032,
108 md033::MD033,
109 md034::MD034,
110 md035::MD035,
111 md036::MD036,
112 md037::MD037,
113 md038::MD038,
114 md039::MD039,
115 md040::MD040,
116 md041::MD041,
117 md042::MD042,
118 md043::MD043,
119 md044::MD044,
120 md045::MD045,
121 md046::MD046,
122 md047::MD047,
123 md048::MD048,
124 md049::MD049,
125 md050::MD050,
126 md051::MD051,
127 md052::MD052,
128 md053::MD053,
129 md054::MD054,
130 md055::MD055,
131 md056::MD056,
132 md058::MD058,
133 md059::MD059,
134];