annotate vendor/github.com/eknkc/amber/README.md @ 70:00b02728b74f draft

Stop using logrus, updated dependencies Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author yakumo.izuru
date Thu, 28 Sep 2023 01:46:46 +0000
parents 787b5ee0289d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
1 # amber [![GoDoc](https://godoc.org/github.com/golang/gddo?status.svg)](http://godoc.org/github.com/eknkc/amber) [![Build Status](https://travis-ci.org/eknkc/amber.svg?branch=master)](https://travis-ci.org/eknkc/amber)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
2
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
3 ## Notice
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
4 > While Amber is perfectly fine and stable to use, I've been working on a direct Pug.js port for Go. It is somewhat hacky at the moment but take a look at [Pug.go](https://github.com/eknkc/pug) if you are looking for a [Pug.js](https://github.com/pugjs/pug) compatible Go template engine.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
5
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
6 ### Usage
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
7 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
8 import "github.com/eknkc/amber"
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
9 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
10
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
11 Amber is an elegant templating engine for Go Programming Language
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
12 It is inspired from HAML and Jade
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
13
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
14 ### Tags
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
15
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
16 A tag is simply a word:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
17
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
18 html
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
19
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
20 is converted to
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
21
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
22 ```html
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
23 <html></html>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
24 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
25
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
26 It is possible to add ID and CLASS attributes to tags:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
27
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
28 div#main
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
29 span.time
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
30
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
31 are converted to
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
32
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
33 ```html
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
34 <div id="main"></div>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
35 <span class="time"></span>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
36 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
37
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
38 Any arbitrary attribute name / value pair can be added this way:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
39
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
40 a[href="http://www.google.com"]
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
41
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
42 You can mix multiple attributes together
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
43
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
44 a#someid[href="/"][title="Main Page"].main.link Click Link
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
45
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
46 gets converted to
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
47
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
48 ```html
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
49 <a id="someid" class="main link" href="/" title="Main Page">Click Link</a>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
50 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
51
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
52 It is also possible to define these attributes within the block of a tag
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
53
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
54 a
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
55 #someid
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
56 [href="/"]
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
57 [title="Main Page"]
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
58 .main
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
59 .link
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
60 | Click Link
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
61
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
62 ### Doctypes
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
63
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
64 To add a doctype, use `!!!` or `doctype` keywords:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
65
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
66 !!! transitional
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
67 // <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
68
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
69 or use `doctype`
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
70
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
71 doctype 5
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
72 // <!DOCTYPE html>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
73
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
74 Available options: `5`, `default`, `xml`, `transitional`, `strict`, `frameset`, `1.1`, `basic`, `mobile`
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
75
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
76 ### Tag Content
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
77
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
78 For single line tag text, you can just append the text after tag name:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
79
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
80 p Testing!
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
81
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
82 would yield
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
83
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
84 <p>Testing!</p>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
85
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
86 For multi line tag text, or nested tags, use indentation:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
87
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
88 html
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
89 head
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
90 title Page Title
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
91 body
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
92 div#content
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
93 p
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
94 | This is a long page content
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
95 | These lines are all part of the parent p
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
96
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
97 a[href="/"] Go To Main Page
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
98
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
99 ### Data
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
100
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
101 Input template data can be reached by key names directly. For example, assuming the template has been
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
102 executed with following JSON data:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
103
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
104 ```json
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
105 {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
106 "Name": "Ekin",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
107 "LastName": "Koc",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
108 "Repositories": [
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
109 "amber",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
110 "dateformat"
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
111 ],
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
112 "Avatar": "/images/ekin.jpg",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
113 "Friends": 17
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
114 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
115 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
116
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
117 It is possible to interpolate fields using `#{}`
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
118
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
119 p Welcome #{Name}!
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
120
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
121 would print
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
122
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
123 ```html
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
124 <p>Welcome Ekin!</p>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
125 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
126
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
127 Attributes can have field names as well
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
128
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
129 a[title=Name][href="/ekin.koc"]
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
130
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
131 would print
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
132
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
133 ```html
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
134 <a title="Ekin" href="/ekin.koc"></a>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
135 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
136
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
137 ### Expressions
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
138
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
139 Amber can expand basic expressions. For example, it is possible to concatenate strings with + operator:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
140
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
141 p Welcome #{Name + " " + LastName}
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
142
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
143 Arithmetic expressions are also supported:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
144
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
145 p You need #{50 - Friends} more friends to reach 50!
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
146
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
147 Expressions can be used within attributes
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
148
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
149 img[alt=Name + " " + LastName][src=Avatar]
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
150
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
151 ### Variables
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
152
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
153 It is possible to define dynamic variables within templates,
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
154 all variables must start with a $ character and can be assigned as in the following example:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
155
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
156 div
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
157 $fullname = Name + " " + LastName
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
158 p Welcome #{$fullname}
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
159
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
160 If you need to access the supplied data itself (i.e. the object containing Name, LastName etc fields.) you can use `$` variable
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
161
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
162 p $.Name
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
163
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
164 ### Conditions
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
165
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
166 For conditional blocks, it is possible to use `if <expression>`
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
167
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
168 div
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
169 if Friends > 10
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
170 p You have more than 10 friends
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
171 else if Friends > 5
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
172 p You have more than 5 friends
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
173 else
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
174 p You need more friends
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
175
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
176 Again, it is possible to use arithmetic and boolean operators
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
177
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
178 div
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
179 if Name == "Ekin" && LastName == "Koc"
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
180 p Hey! I know you..
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
181
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
182 There is a special syntax for conditional attributes. Only block attributes can have conditions;
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
183
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
184 div
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
185 .hasfriends ? Friends > 0
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
186
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
187 This would yield a div with `hasfriends` class only if the `Friends > 0` condition holds. It is
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
188 perfectly fine to use the same method for other types of attributes:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
189
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
190 div
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
191 #foo ? Name == "Ekin"
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
192 [bar=baz] ? len(Repositories) > 0
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
193
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
194 ### Iterations
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
195
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
196 It is possible to iterate over arrays and maps using `each`:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
197
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
198 each $repo in Repositories
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
199 p #{$repo}
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
200
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
201 would print
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
202
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
203 p amber
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
204 p dateformat
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
205
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
206 It is also possible to iterate over values and indexes at the same time
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
207
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
208 each $i, $repo in Repositories
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
209 p
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
210 .even ? $i % 2 == 0
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
211 .odd ? $i % 2 == 1
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
212
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
213 ### Mixins
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
214
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
215 Mixins (reusable template blocks that accept arguments) can be defined:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
216
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
217 mixin surprise
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
218 span Surprise!
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
219 mixin link($href, $title, $text)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
220 a[href=$href][title=$title] #{$text}
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
221
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
222 and then called multiple times within a template (or even within another mixin definition):
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
223
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
224 div
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
225 +surprise
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
226 +surprise
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
227 +link("http://google.com", "Google", "Check out Google")
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
228
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
229 Template data, variables, expressions, etc., can all be passed as arguments:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
230
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
231 +link(GoogleUrl, $googleTitle, "Check out " + $googleTitle)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
232
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
233 ### Imports
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
234
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
235 A template can import other templates using `import`:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
236
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
237 a.amber
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
238 p this is template a
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
239
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
240 b.amber
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
241 p this is template b
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
242
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
243 c.amber
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
244 div
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
245 import a
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
246 import b
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
247
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
248 gets compiled to
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
249
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
250 div
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
251 p this is template a
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
252 p this is template b
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
253
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
254 ### Inheritance
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
255
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
256 A template can inherit other templates. In order to inherit another template, an `extends` keyword should be used.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
257 Parent template can define several named blocks and child template can modify the blocks.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
258
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
259 master.amber
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
260 !!! 5
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
261 html
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
262 head
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
263 block meta
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
264 meta[name="description"][content="This is a great website"]
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
265
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
266 title
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
267 block title
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
268 | Default title
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
269 body
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
270 block content
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
271
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
272 subpage.amber
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
273 extends master
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
274
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
275 block title
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
276 | Some sub page!
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
277
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
278 block append meta
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
279 // This will be added after the description meta tag. It is also possible
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
280 // to prepend someting to an existing block
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
281 meta[name="keywords"][content="foo bar"]
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
282
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
283 block content
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
284 div#main
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
285 p Some content here
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
286
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
287 ### License
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
288 (The MIT License)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
289
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
290 Copyright (c) 2012 Ekin Koc <ekin@eknkc.com>
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
291
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
292 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
293
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
294 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
295
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
296 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
297
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
298 ## Usage
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
299
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
300 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
301 var DefaultOptions = Options{true, false}
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
302 var DefaultDirOptions = DirOptions{".amber", true}
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
303 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
304
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
305 #### func Compile
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
306
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
307 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
308 func Compile(input string, options Options) (*template.Template, error)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
309 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
310 Parses and compiles the supplied amber template string. Returns corresponding Go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
311 Template (html/templates) instance. Necessary runtime functions will be injected
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
312 and the template will be ready to be executed.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
313
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
314 #### func CompileFile
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
315
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
316 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
317 func CompileFile(filename string, options Options) (*template.Template, error)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
318 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
319 Parses and compiles the contents of supplied filename. Returns corresponding Go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
320 Template (html/templates) instance. Necessary runtime functions will be injected
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
321 and the template will be ready to be executed.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
322
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
323 #### func CompileDir
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
324 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
325 func CompileDir(dirname string, dopt DirOptions, opt Options) (map[string]*template.Template, error)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
326 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
327 Parses and compiles the contents of a supplied directory name. Returns a mapping of template name (extension stripped) to corresponding Go Template (html/template) instance. Necessary runtime functions will be injected and the template will be ready to be executed.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
328
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
329 If there are templates in subdirectories, its key in the map will be it's path relative to `dirname`. For example:
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
330 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
331 templates/
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
332 |-- index.amber
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
333 |-- layouts/
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
334 |-- base.amber
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
335 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
336 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
337 templates, err := amber.CompileDir("templates/", amber.DefaultDirOptions, amber.DefaultOptions)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
338 templates["index"] // index.amber Go Template
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
339 templates["layouts/base"] // base.amber Go Template
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
340 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
341 By default, the search will be recursive and will match only files ending in ".amber". If recursive is turned off, it will only search the top level of the directory. Specified extension must start with a period.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
342
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
343 #### type Compiler
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
344
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
345 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
346 type Compiler struct {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
347 // Compiler options
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
348 Options
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
349 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
350 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
351
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
352 Compiler is the main interface of Amber Template Engine. In order to use an
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
353 Amber template, it is required to create a Compiler and compile an Amber source
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
354 to native Go template.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
355
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
356 compiler := amber.New()
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
357 // Parse the input file
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
358 err := compiler.ParseFile("./input.amber")
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
359 if err == nil {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
360 // Compile input file to Go template
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
361 tpl, err := compiler.Compile()
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
362 if err == nil {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
363 // Check built in html/template documentation for further details
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
364 tpl.Execute(os.Stdout, somedata)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
365 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
366 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
367
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
368 #### func New
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
369
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
370 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
371 func New() *Compiler
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
372 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
373 Create and initialize a new Compiler
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
374
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
375 #### func (*Compiler) Compile
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
376
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
377 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
378 func (c *Compiler) Compile() (*template.Template, error)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
379 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
380 Compile amber and create a Go Template (html/templates) instance. Necessary
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
381 runtime functions will be injected and the template will be ready to be
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
382 executed.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
383
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
384 #### func (*Compiler) CompileString
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
385
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
386 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
387 func (c *Compiler) CompileString() (string, error)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
388 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
389 Compile template and return the Go Template source You would not be using this
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
390 unless debugging / checking the output. Please use Compile method to obtain a
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
391 template instance directly.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
392
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
393 #### func (*Compiler) CompileWriter
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
394
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
395 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
396 func (c *Compiler) CompileWriter(out io.Writer) (err error)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
397 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
398 Compile amber and write the Go Template source into given io.Writer instance You
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
399 would not be using this unless debugging / checking the output. Please use
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
400 Compile method to obtain a template instance directly.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
401
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
402 #### func (*Compiler) Parse
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
403
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
404 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
405 func (c *Compiler) Parse(input string) (err error)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
406 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
407 Parse given raw amber template string.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
408
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
409 #### func (*Compiler) ParseFile
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
410
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
411 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
412 func (c *Compiler) ParseFile(filename string) (err error)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
413 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
414 Parse the amber template file in given path
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
415
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
416 #### type Options
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
417
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
418 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
419 type Options struct {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
420 // Setting if pretty printing is enabled.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
421 // Pretty printing ensures that the output html is properly indented and in human readable form.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
422 // If disabled, produced HTML is compact. This might be more suitable in production environments.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
423 // Defaukt: true
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
424 PrettyPrint bool
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
425 // Setting if line number emitting is enabled
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
426 // In this form, Amber emits line number comments in the output template. It is usable in debugging environments.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
427 // Default: false
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
428 LineNumbers bool
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
429 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
430 ```
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
431
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
432 #### type DirOptions
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
433
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
434 ```go
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
435 // Used to provide options to directory compilation
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
436 type DirOptions struct {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
437 // File extension to match for compilation
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
438 Ext string
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
439 // Whether or not to walk subdirectories
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
440 Recursive bool
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
441 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
442 ```