Tholp's bespoke website generator
1pub mod for_each;
2pub mod insert;
3pub mod simple_blocks;
4pub mod simple_macros;
5pub mod template;
6
7use super::types::Macro;
8use for_each::*;
9use insert::macro_insert;
10use simple_blocks::*;
11use simple_macros::*;
12use template::macro_template;
13
14pub static MACRO_LIST: &'static [Macro] = &[
15 // Unscoped
16 Macro {
17 symbol: "insert", // Inserts another file
18 expansion: macro_insert,
19 takes_block: false,
20 min_args: 1,
21 max_args: usize::max_value(),
22 },
23 Macro {
24 symbol: "time",
25 expansion: macro_time,
26 takes_block: false,
27 min_args: 0,
28 max_args: 1,
29 },
30 Macro {
31 symbol: "filename",
32 expansion: macro_filename,
33 takes_block: false,
34 min_args: 0,
35 max_args: 0,
36 },
37 Macro {
38 symbol: "filename_canonical",
39 expansion: macro_filename_canonical,
40 takes_block: false,
41 min_args: 0,
42 max_args: 0,
43 },
44 Macro {
45 symbol: "reminder",
46 expansion: macro_reminder,
47 takes_block: false,
48 min_args: 1,
49 max_args: 1,
50 },
51 Macro {
52 symbol: "output_filename",
53 expansion: macro_output_filename,
54 takes_block: false,
55 min_args: 0,
56 max_args: 1,
57 },
58 // Scoped
59 Macro {
60 symbol: "comment", // Nothing
61 expansion: macro_comment,
62 takes_block: true,
63 min_args: 0,
64 max_args: 0,
65 },
66 Macro {
67 symbol: "repeat", // Outputs what its give x number of times
68 expansion: macro_repeat,
69 takes_block: true,
70 min_args: 1,
71 max_args: 1,
72 },
73 Macro {
74 symbol: "section",
75 expansion: macro_section,
76 takes_block: true,
77 min_args: 0,
78 max_args: 1,
79 },
80 Macro {
81 symbol: "template",
82 expansion: macro_template,
83 takes_block: true,
84 min_args: 1,
85 max_args: usize::max_value(),
86 },
87 Macro {
88 symbol: "for_each_arg",
89 expansion: macro_for_each_arg,
90 takes_block: true,
91 min_args: 1,
92 max_args: usize::max_value(),
93 },
94 Macro {
95 symbol: "for_each_file_in_group",
96 expansion: macro_for_each_file_in_group,
97 takes_block: true,
98 min_args: 2,
99 max_args: 2,
100 },
101 Macro {
102 symbol: "for_each_file_in_group_reverse",
103 expansion: macro_for_each_file_in_group_reverse,
104 takes_block: true,
105 min_args: 2,
106 max_args: 2,
107 },
108];