-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
404.html
287 lines (262 loc) · 67.3 KB
/
404.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
---
permalink: /404.html
---
<!DOCTYPE html>
<html>
<head>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-38441871-6"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
</script>
<meta charset="utf-8">
<title>404 | Aurelia</title>
<base href="/">
<meta name="msapplication-tap-highlight" content="no" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, shrink-to-fit=no">
<meta name="description" content="Not Found"/>
<meta name="robots" content="index,follow"/>
<link href="https://fonts.googleapis.com/css?family=Source+Code+Pro|Source+Sans+Pro:200,400,700" rel="stylesheet">
<link rel="stylesheet" href="styles/aurelia-docs.css">
<link rel="alternate" type="application/rss+xml" title="The official Aurelia blog" href="/blog/rss/index.xml" />
</head>
<body aurelia-app="main" id="app-host">
<header class="app-header">
<img src="styles/images/logo.svg" class="logo">
<a class="header-button" title="Get the Newsletter" href="http://eepurl.com/ces50j">Get the Newsletter</a>
<search-trigger></search-trigger>
</header>
<main ref="main">
<div screen-activator.bind="activeScreen" screen-activated.trigger="onScreenActivated()" class="screen-activator">
<section class="not-found article">
<p class="au-try-search">Try searching what you're looking for.<span class="up-arrow">⤴</span></p>
<header>
<h1>404</h1>
<h2>Oops! Something's missing.</h2>
</header>
<article class="markdown">
<h3>Here's some helpful content...</h3>
<ul>
<li><a href="/docs/tutorials/creating-a-todo-app">Getting Started with Aurelia</a></li>
<li><a href="/docs">Aurelia Guides</a></li>
<li><a href="/docs/api">Aurelia APIs</a></li>
<li><a href="/help">Help</a></li>
</ul>
</article>
</section>
</div>
<footer class="content-footer" id="app-footer">
<div class="links">
<div class="link-column">
<h4>Resources</h4>
<ul>
<li><a href="docs/overview/what-is-aurelia">About</a></li>
<li><a href="blog">Blog</a></li>
<li><a href="http://eepurl.com/ces50j">Newsletter</a></li>
</ul>
</div>
<div class="link-column">
<h4>Help</h4>
<ul>
<li><a href="https://discourse.aurelia.io/">Discourse</a></li>
<li><a href="https://discord.gg/RBtyM6u">Discord</a></li>
<li><a href="https://stackoverflow.com/search?q=aurelia">Stack Overflow</a></li>
</ul>
</div>
<div class="link-column">
<h4>Community</h4>
<ul>
<li><a href="https://github.com/aurelia">GitHub</a></li>
<li><a href="https://twitter.com/aureliaeffect">Twitter</a></li>
<li><a href="https://github.com/orgs/aurelia/people">Team</a></li>
</ul>
</div>
</div>
<p class="copyright">
Copyright © 2010 - 2020 <a href="http://www.bluespire.com">Blue Spire Inc.</a> Code licensed under the MIT License. Content licensed under CC0.
</p>
</footer>
</main>
<side-bar></side-bar>
<nav>
<ul>
<li class="home ${activeTab === 'home' ? 'active' : ''}">
<a href="home">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px"
height="32px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
<g id="Outline_Icons">
<g>
<path d="M20.5,13.5c-0.276,0-0.5,0.224-0.5,0.5v9h-5v-6.5c0-0.276-0.224-0.5-0.5-0.5h-5C9.224,16,9,16.224,9,16.5V23H4v-9.5
C4,13.224,3.776,13,3.5,13S3,13.224,3,13.5v10C3,23.777,3.224,24,3.5,24h6c0.276,0,0.5-0.224,0.5-0.5V17h4v6.5
c0,0.276,0.224,0.5,0.5,0.5h6c0.276,0,0.5-0.224,0.5-0.5V14C21,13.724,20.776,13.5,20.5,13.5z"/>
<path d="M23.854,12.647l-11.5-11.5c-0.195-0.195-0.512-0.195-0.707,0l-11.5,11.5c-0.195,0.195-0.195,0.512,0,0.707
s0.512,0.195,0.707,0L12,2.208l11.146,11.146c0.098,0.098,0.226,0.146,0.354,0.146s0.256-0.049,0.354-0.146
C24.049,13.159,24.049,12.842,23.854,12.647z"/>
<path d="M16,3h3v3c0,0.276,0.224,0.5,0.5,0.5S20,6.277,20,6V2.5C20,2.224,19.776,2,19.5,2H16c-0.276,0-0.5,0.224-0.5,0.5
S15.724,3,16,3z"/>
</g>
</g>
<g id="invisible_shape">
<rect fill="none" width="24" height="24"/>
</g>
</svg>
<div class="label">Home</div>
</a>
</li>
<li class="article ${activeTab === 'article' ? 'active' : ''}">
<a href="docs">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
<g id="Outline_Icons_1_">
<g>
<path d="M23.5,1H12V0.5C12,0.224,11.776,0,11.5,0h-8C3.224,0,3,0.224,3,0.5V1H0.5C0.224,1,0,1.224,0,1.5v22
C0,23.776,0.224,24,0.5,24h23c0.276,0,0.5-0.224,0.5-0.5v-22C24,1.224,23.776,1,23.5,1z M4,1h7v11.293L7.854,9.146
c-0.195-0.195-0.512-0.195-0.707,0L4,12.293V1z M23,23H1V2h2v11.5c0,0.446,0.542,0.668,0.854,0.354L7.5,10.207l3.646,3.646
C11.459,14.166,12,13.948,12,13.5V2h11V23z"/>
<path d="M14.5,8h6C20.776,8,21,7.776,21,7.5S20.776,7,20.5,7h-6C14.224,7,14,7.224,14,7.5S14.224,8,14.5,8z"/>
<path d="M14.5,11h6c0.276,0,0.5-0.224,0.5-0.5S20.776,10,20.5,10h-6c-0.276,0-0.5,0.224-0.5,0.5S14.224,11,14.5,11z"/>
<path d="M20.5,13h-6c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5h6c0.276,0,0.5-0.224,0.5-0.5S20.776,13,20.5,13z"/>
<path d="M20.5,16h-17C3.224,16,3,16.224,3,16.5S3.224,17,3.5,17h17c0.276,0,0.5-0.224,0.5-0.5S20.776,16,20.5,16z"/>
<path d="M16.5,19h-13C3.224,19,3,19.224,3,19.5S3.224,20,3.5,20h13c0.276,0,0.5-0.224,0.5-0.5S16.776,19,16.5,19z"/>
</g>
</g>
<g id="Invisible_Shape">
<rect fill="none" width="24" height="24"/>
</g>
</svg>
<div class="label">Guides</div>
</a>
</li>
<li class="api ${activeTab === 'api' ? 'active' : ''}">
<a href="docs/api">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
<g id="Outline_Icons">
<path d="M21.945,15.283c-0.009-0.02-0.022-0.034-0.034-0.052c-0.031-0.048-0.068-0.089-0.114-0.123
c-0.011-0.008-0.015-0.021-0.026-0.029L17,12.011V7.5c0-0.082-0.024-0.156-0.059-0.224c-0.01-0.02-0.023-0.035-0.036-0.053
c-0.033-0.049-0.072-0.089-0.12-0.124c-0.012-0.007-0.017-0.022-0.028-0.029l-5-3c-0.158-0.095-0.355-0.095-0.514,0l-5,3
C6.231,7.078,6.227,7.093,6.215,7.1c-0.048,0.035-0.087,0.075-0.12,0.124C6.082,7.241,6.068,7.257,6.059,7.276
C6.024,7.344,6,7.418,6,7.5v4.511L1.229,15.08c-0.012,0.007-0.016,0.021-0.026,0.029c-0.046,0.034-0.083,0.075-0.114,0.123
c-0.012,0.018-0.025,0.032-0.034,0.052C1.022,15.349,1,15.421,1,15.5v4.784c0,0.17,0.087,0.329,0.229,0.421l5,3.216
c0.009,0.006,0.021,0.003,0.029,0.009C6.331,23.971,6.411,24,6.5,24s0.169-0.029,0.241-0.07c0.009-0.006,0.021-0.003,0.029-0.009
l4.729-3.042l4.729,3.042c0.009,0.006,0.021,0.003,0.029,0.009C16.331,23.971,16.411,24,16.5,24s0.169-0.029,0.241-0.07
c0.009-0.006,0.021-0.003,0.029-0.009l5-3.216C21.913,20.613,22,20.454,22,20.284V15.5C22,15.421,21.978,15.349,21.945,15.283z
M16.5,17.917l-4.053-2.432l4.053-2.606l4.053,2.606L16.5,17.917z M7,18.783l4-2.4v3.628l-4,2.573V18.783z M16,12.011l-4,2.573
v-3.801l4-2.4V12.011z M11,14.584l-4-2.573V8.383l4,2.4V14.584z M11.5,5.083L15.528,7.5L11.5,9.917L7.472,7.5L11.5,5.083z
M6.5,12.879l4.053,2.606L6.5,17.917l-4.053-2.432L6.5,12.879z M2,16.383l4,2.4v3.801l-4-2.573V16.383z M12,16.383l4,2.4v3.801
l-4-2.573V16.383z M17,22.584v-3.801l4-2.4v3.628L17,22.584z"/>
</g>
<g id="Invisible_Shape">
<rect fill="none" width="24" height="24"/>
</g>
</svg>
<div class="label">APIs</div>
</a>
</li>
<li class="discuss ${activeTab === 'discuss' ? 'active' : ''}">
<a href="https://discourse.aurelia.io">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
<g id="Outline_Icons_1_">
<g id="Outline_Icons">
<g>
<path d="M7.508,14.318c-0.465-0.063-0.923-0.163-1.362-0.297c-0.109-0.034-0.227-0.029-0.331,0.015l-3.669,1.467l1.289-2.255
c0.122-0.214,0.07-0.484-0.122-0.639C1.843,11.434,1,9.729,1,7.935C1,4.387,4.589,1.5,9,1.5s8,2.887,8,6.435
c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5c0-4.1-4.038-7.435-9-7.435S0,3.835,0,7.935c0,1.962,0.855,3.827,2.36,5.178
l-1.794,3.14c-0.105,0.185-0.083,0.416,0.057,0.576C0.72,16.939,0.858,17,1,17c0.062,0,0.125-0.012,0.186-0.036l4.839-1.936
c0.438,0.124,0.891,0.219,1.348,0.28c0.274,0.048,0.526-0.154,0.563-0.428S7.781,14.355,7.508,14.318z"/>
<path d="M22.123,20.627C23.353,19.517,24,18.098,24,16.5c0-3.523-3.435-6.5-7.5-6.5S9,12.977,9,16.5
c0,2.125,1.152,4.144,3.083,5.397c2.073,1.349,4.649,1.582,6.93,0.642l3.812,1.429C22.882,23.989,22.941,24,23,24
c0.139,0,0.275-0.058,0.372-0.165c0.138-0.153,0.167-0.375,0.076-0.559L22.123,20.627z M19.176,21.532
C19.119,21.511,19.06,21.5,19,21.5c-0.069,0-0.139,0.015-0.203,0.043c-2.018,0.898-4.324,0.717-6.169-0.484
C10.982,19.99,10,18.285,10,16.5c0-2.981,2.977-5.5,6.5-5.5s6.5,2.519,6.5,5.5c0,1.433-0.61,2.647-1.812,3.609
c-0.184,0.147-0.24,0.403-0.135,0.614l0.931,1.861L19.176,21.532z"/>
</g>
</g>
<g id="New_icons_1_">
</g>
</g>
<g id="Invisible_Shape">
<rect fill="none" width="24" height="24"/>
</g>
</svg>
<div class="label">Discourse</div>
</a>
</li>
<li class="blog ${activeTab === 'blog' ? 'active' : ''}">
<a href="blog">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
<g id="Outline_Icons_1_">
<g id="Outline_Icons">
<g>
<path d="M14.5,3h-11C3.224,3,3,3.224,3,3.5S3.224,4,3.5,4h11C14.776,4,15,3.776,15,3.5S14.776,3,14.5,3z"/>
<path d="M3.5,13h5C8.776,13,9,12.776,9,12.5v-6C9,6.224,8.776,6,8.5,6h-5C3.224,6,3,6.224,3,6.5v6C3,12.776,3.224,13,3.5,13z
M4,7h4v5H4V7z"/>
<path d="M14.5,8h-3C11.224,8,11,8.224,11,8.5S11.224,9,11.5,9h3C14.776,9,15,8.776,15,8.5S14.776,8,14.5,8z"/>
<path d="M14.5,10h-4c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5h4c0.276,0,0.5-0.224,0.5-0.5S14.776,10,14.5,10z"/>
<path d="M14.5,12h-4c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5h4c0.276,0,0.5-0.224,0.5-0.5S14.776,12,14.5,12z"/>
<path d="M14.5,14h-11C3.224,14,3,14.224,3,14.5S3.224,15,3.5,15h11c0.276,0,0.5-0.224,0.5-0.5S14.776,14,14.5,14z"/>
<path d="M14.5,16h-11C3.224,16,3,16.224,3,16.5S3.224,17,3.5,17h11c0.276,0,0.5-0.224,0.5-0.5S14.776,16,14.5,16z"/>
<path d="M14.5,18h-11C3.224,18,3,18.224,3,18.5S3.224,19,3.5,19h11c0.276,0,0.5-0.224,0.5-0.5S14.776,18,14.5,18z"/>
<path d="M23.5,3H20V2c0-0.276-0.224-0.5-0.5-0.5H18v-1C18,0.224,17.776,0,17.5,0h-17C0.224,0,0,0.224,0,0.5v20
C0,22.43,1.57,24,3.5,24h17c1.93,0,3.5-1.57,3.5-3.5v-17C24,3.224,23.776,3,23.5,3z M20,6h1v14.5c0,0.276-0.225,0.5-0.5,0.5
S20,20.776,20,20.5V6z M3.5,23C2.121,23,1,21.878,1,20.5V1h16v1v2v16.5c0,0.979,0.403,1.865,1.053,2.5H3.5z M23,20.5
c0,1.378-1.121,2.5-2.5,2.5S18,21.878,18,20.5V4V2.5h1v18c0,0.827,0.673,1.5,1.5,1.5s1.5-0.673,1.5-1.5v-15
C22,5.224,21.776,5,21.5,5H20V4h3V20.5z"/>
</g>
</g>
<g id="New_icons_1_">
</g>
</g>
<g id="Invisible_Shape">
<rect fill="none" width="24" height="24"/>
</g>
</svg>
<div class="label">Blog</div>
</a>
</li>
<li class="help ${activeTab === 'support' ? 'active' : ''}">
<a href="support">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
<g id="Filled_Icons_1_">
<g id="Filled_Icons"></g>
<g id="New_icons">
<g>
<path d="M23.5,0h-15C8.224,0,8,0.224,8,0.5v10C8,10.776,8.224,11,8.5,11H11v3c0,0.445,0.54,0.667,0.854,0.354L15.207,11H23.5 c0.276,0,0.5-0.224,0.5-0.5v-10C24,0.224,23.776,0,23.5,0z M16.518,8.729c-0.273,0-0.494-0.222-0.494-0.494 c0-0.273,0.221-0.494,0.494-0.494c0.272,0,0.494,0.221,0.494,0.494C17.012,8.508,16.79,8.729,16.518,8.729z M17.018,5.9v0.6 c0,0.276-0.224,0.5-0.5,0.5c-0.276,0-0.5-0.224-0.5-0.5V5.464c0-0.276,0.224-0.5,0.5-0.5c0.542,0,0.982-0.441,0.982-0.982 C17.5,3.44,17.059,3,16.518,3c-0.541,0-0.982,0.44-0.982,0.982c0,0.276-0.224,0.5-0.5,0.5c-0.276,0-0.5-0.224-0.5-0.5 C14.535,2.89,15.424,2,16.518,2C17.611,2,18.5,2.89,18.5,3.982C18.5,4.902,17.87,5.678,17.018,5.9z"></path>
<g>
<path d="M5.5,14h-5C0.224,14,0,14.224,0,14.5V17c0,1.083,0.336,1.729,1,1.932V23.5C1,23.776,1.224,24,1.5,24h3 C4.776,24,5,23.776,5,23.5v-4.568c0.663-0.202,0.998-0.85,1-1.932v-2.5C6,14.224,5.776,14,5.5,14z"></path>
<circle cx="3" cy="11" r="2"></circle>
</g>
</g>
</g>
</g>
<g id="Invisible_Shape">
<rect fill="none" width="24" height="24"></rect>
</g>
</svg>
<div class="label">Support</div>
</a>
</li>
<li class="help ${activeTab === 'learn' ? 'active' : ''}">
<a href="learn">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
<g id="Filled_Icons">
<path d="M22.5,1.001h-21c-0.827,0-1.5,0.672-1.5,1.5V17.5C0,18.327,0.673,19,1.5,19H10v2H7c-0.276,0-0.5,0.224-0.5,0.5 S6.724,22,7,22h10c0.276,0,0.5-0.224,0.5-0.5S17.276,21,17,21h-3v-2h8.5c0.827,0,1.5-0.673,1.5-1.5V2.501 C24,1.673,23.327,1.001,22.5,1.001z M17,13c0,0.189-0.107,0.362-0.276,0.447l-4,2c-0.07,0.035-0.147,0.053-0.224,0.053 s-0.153-0.018-0.224-0.053l-4-2C8.107,13.362,8,13.189,8,13v-2.297l3.909,1.676c0.189,0.081,0.39,0.121,0.591,0.121 s0.402-0.04,0.591-0.121L17,10.703V13z M19.697,8.46l-7,3c-0.064,0.026-0.13,0.04-0.197,0.04s-0.134-0.014-0.197-0.04L6,8.758v2.66 l0.975,2.924c0.051,0.152,0.025,0.32-0.069,0.451C6.812,14.923,6.661,15,6.5,15h-2c-0.161,0-0.312-0.077-0.405-0.207 C4,14.662,3.975,14.494,4.025,14.342L5,11.418V8c0-0.091,0.031-0.172,0.074-0.246c0.01-0.018,0.02-0.033,0.033-0.051 C5.159,7.636,5.221,7.577,5.3,7.543L5.303,7.54h0.002l0.002-0.001l6.996-2.998c0.127-0.054,0.268-0.054,0.395,0l7,2.999 C19.881,7.619,20,7.8,20,8S19.881,8.381,19.697,8.46z"></path>
</g>
<g id="invisible_shape">
<rect fill="none" width="24" height="24"></rect>
</g>
</svg>
<div class="label">Learn</div>
</a>
</li>
</ul>
</nav>
<search-panel></search-panel>
<script>
window.siteConfig = {"name":"Aurelia","siteUrl":"http://aurelia.io","baseUrl":"/","outDir":"./","trackingID":"UA-38441871-6","appearance":{"logoSrc":"./src/logo.svg"},"header":{"buttons":[{"text":"Get the Newsletter","url":"http://eepurl.com/ces50j"}]},"home":{"name":"Home","description":"Aurelia is a JavaScript client framework for web, mobile and desktop that leverages simple conventions to empower your creativity.","src":"./src/home.html","dest":"home"},"blog":{"name":"The Aurelia Blog","description":"The official blog of the Aurelia project and Core Team.","dest":"blog","src":"../blog","postsPerPage":7,"author":"AureliaEffect","social":{"name":"Aurelia Channels","twitter":"https://twitter.com/aureliaeffect","github":"https://github.com/aurelia/framework","vimeo":"https://vimeo.com/channels/867847","discord":"https://discord.gg/RBtyM6u"},"sponsorLevels":[{"name":"Gold Sponsors","sponsors":[{"name":"Hogia","href":"https://www.hogia.com/","imageSrc":"styles/images/logos/hogia.svg"}]},{"name":"Silver Sponsors","sponsors":[{"name":"Movavi - Screen Recorder","href":"https://www.movavi.com/screen-recorder","imageSrc":"styles/images/logos/movavi-screen-recorder.svg"}]}],"migration":{"src":"../blog/aurelia.ghost.2018-01-15.json"}},"forum":{"url":"https://discourse.aurelia.io","name":"Discourse"},"learn":{"name":"Learn","src":"./src/learn.md","dest":"learn","items":[{"id":"training","name":"Training"},{"id":"books","name":"Books"},{"id":"videos","name":"Videos"},{"id":"aurelia-university-coming-soon","name":"Aurelia University (coming soon)"}]},"support":{"name":"Support","src":"./src/support.md","dest":"support","items":[{"id":"live-support","name":"Live Support"},{"id":"guidance-tickets","name":"Guidance Tickets"},{"id":"code-reviews","name":"Code Reviews"},{"id":"pricing","name":"Pricing"},{"id":"consulting","name":"Consulting"}]},"pages":[{"name":"Get in Touch","src":"./src/contact.html","dest":"contact"},{"name":"Thank You","src":"./src/thanks.html","dest":"thanks"}],"notFound":{"name":"404","description":"Not Found","links":[{"href":"/docs/tutorials/creating-a-todo-app","text":"Getting Started with Aurelia"},{"href":"/docs","text":"Aurelia Guides"},{"href":"/docs/api","text":"Aurelia APIs"},{"href":"/help","text":"Help"}]},"docs":{"articleSrc":"./dep_repos/documentation/current/en-us","api":[{"name":"aurelia-binding","package":"./node_modules/aurelia-binding/package.json","src":"./node_modules/aurelia-binding/dist/aurelia-binding.d.ts","dest":"docs/api/binding","exampleSrc":"./node_modules/aurelia-binding/doc/example-dist","exampleDest":"example"},{"name":"aurelia-bootstrapper","package":"./node_modules/aurelia-bootstrapper/package.json","src":"./node_modules/aurelia-bootstrapper/dist/types/aurelia-bootstrapper.d.ts","dest":"docs/api/bootstrapper"},{"name":"aurelia-dependency-injection","package":"./node_modules/aurelia-dependency-injection/package.json","src":"./node_modules/aurelia-dependency-injection/dist/aurelia-dependency-injection.d.ts","dest":"docs/api/dependency-injection"},{"name":"aurelia-dialog","package":"./node_modules/aurelia-dialog/package.json","src":"./node_modules/aurelia-dialog/dist/types/aurelia-dialog.d.ts","dest":"docs/api/dialog"},{"name":"aurelia-event-aggregator","package":"./node_modules/aurelia-event-aggregator/package.json","src":"./node_modules/aurelia-event-aggregator/dist/aurelia-event-aggregator.d.ts","dest":"docs/api/event-aggregator"},{"name":"aurelia-fetch-client","package":"./node_modules/aurelia-fetch-client/package.json","src":"./node_modules/aurelia-fetch-client/dist/aurelia-fetch-client.d.ts","dest":"docs/api/fetch-client"},{"name":"aurelia-framework","package":"./node_modules/aurelia-framework/package.json","src":"./node_modules/aurelia-framework/dist/types/aurelia-framework.d.ts","dest":"docs/api/framework"},{"name":"aurelia-history","package":"./node_modules/aurelia-history/package.json","src":"./node_modules/aurelia-history/dist/aurelia-history.d.ts","dest":"docs/api/history"},{"name":"aurelia-history-browser","package":"./node_modules/aurelia-history-browser/package.json","src":"./node_modules/aurelia-history-browser/dist/aurelia-history-browser.d.ts","dest":"docs/api/history-browser"},{"name":"aurelia-i18n","package":"./node_modules/aurelia-i18n/package.json","src":"./node_modules/aurelia-i18n/dist/aurelia-i18n.d.ts","dest":"docs/api/i18n"},{"name":"aurelia-loader","package":"./node_modules/aurelia-loader/package.json","src":"./node_modules/aurelia-loader/dist/aurelia-loader.d.ts","dest":"docs/api/loader"},{"name":"aurelia-loader-default","package":"./node_modules/aurelia-loader-default/package.json","src":"./node_modules/aurelia-loader-default/dist/aurelia-loader-default.d.ts","dest":"docs/api/loader-default"},{"name":"aurelia-logging","package":"./node_modules/aurelia-logging/package.json","src":"./node_modules/aurelia-logging/dist/aurelia-logging.d.ts","dest":"docs/api/logging"},{"name":"aurelia-logging-console","package":"./node_modules/aurelia-logging-console/package.json","src":"./node_modules/aurelia-logging-console/dist/aurelia-logging-console.d.ts","dest":"docs/api/logging-console"},{"name":"aurelia-metadata","package":"./node_modules/aurelia-metadata/package.json","src":"./node_modules/aurelia-metadata/dist/aurelia-metadata.d.ts","dest":"docs/api/metadata"},{"name":"aurelia-pal","package":"./node_modules/aurelia-pal/package.json","src":"./node_modules/aurelia-pal/dist/aurelia-pal.d.ts","dest":"docs/api/pal"},{"name":"aurelia-pal-browser","package":"./node_modules/aurelia-pal-browser/package.json","src":"./node_modules/aurelia-pal-browser/dist/aurelia-pal-browser.d.ts","dest":"docs/api/pal-browser"},{"name":"aurelia-path","package":"./node_modules/aurelia-path/package.json","src":"./node_modules/aurelia-path/dist/types/index.d.ts","dest":"docs/api/path"},{"name":"aurelia-route-recognizer","package":"./node_modules/aurelia-route-recognizer/package.json","src":"./node_modules/aurelia-route-recognizer/dist/aurelia-route-recognizer.d.ts","dest":"docs/api/route-recognizer"},{"name":"aurelia-router","package":"./node_modules/aurelia-router/package.json","src":"./node_modules/aurelia-router/dist/aurelia-router.d.ts","dest":"docs/api/router"},{"name":"aurelia-task-queue","package":"./node_modules/aurelia-task-queue/package.json","src":"./node_modules/aurelia-task-queue/dist/aurelia-task-queue.d.ts","dest":"docs/api/task-queue"},{"name":"aurelia-templating","package":"./node_modules/aurelia-templating/package.json","src":"./node_modules/aurelia-templating/dist/types/aurelia-templating.d.ts","dest":"docs/api/templating"},{"name":"aurelia-templating-binding","package":"./node_modules/aurelia-templating-binding/package.json","src":"./node_modules/aurelia-templating-binding/dist/types/aurelia-templating-binding.d.ts","dest":"docs/api/templating-binding"},{"name":"aurelia-templating-resources","package":"./node_modules/aurelia-templating-resources/package.json","src":"./node_modules/aurelia-templating-resources/dist/types/aurelia-templating-resources.d.ts","dest":"docs/api/templating-resources"},{"name":"aurelia-templating-router","package":"./node_modules/aurelia-templating-router/package.json","src":"./node_modules/aurelia-templating-router/dist/aurelia-templating-router.d.ts","dest":"docs/api/templating-router"},{"name":"aurelia-testing","package":"./node_modules/aurelia-testing/package.json","src":"./node_modules/aurelia-testing/dist/types/aurelia-testing.d.ts","dest":"docs/api/testing"},{"name":"aurelia-validation","package":"./node_modules/aurelia-validation/package.json","src":"./node_modules/aurelia-validation/dist/aurelia-validation.d.ts","dest":"docs/api/validation"}],"article":[{"name":"Overview","description":"Discover what Aurelia is along with its business and technical advantages.","dest":"docs/overview","items":[{"name":"What is Aurelia?","description":"Aurelia is a modern front-end framework for building browser, mobile and desktop applications.","src":"dep_repos/documentation/current/en-us/1. overview/1. what-is-aurelia.md","dest":"docs/overview/what-is-aurelia","featured":true,"items":[{"id":"what-is-aurelia","name":"What is Aurelia?"},{"id":"why-choose-aurelia","name":"Why choose Aurelia?"}]},{"name":"Technical Benefits","description":"There are many technical advantages to using Aurelia. In this article, you will find a list of points we think are interesting. Taken together, there is no other SPA framework today that can match Aurelia.","src":"dep_repos/documentation/current/en-us/1. overview/2. technical-benefits.md","dest":"docs/overview/technical-benefits","featured":false,"items":[{"id":"modern-javascript","name":"Modern JavaScript"},{"id":"modern-dom","name":"Modern DOM"},{"id":"modern-tooling","name":"Modern Tooling"},{"id":"code-quality","name":"Code Quality"},{"id":"web-component-standards","name":"Web Component Standards"},{"id":"modularity","name":"Modularity"},{"id":"platform-support","name":"Platform Support"},{"id":"capabilities","name":"Capabilities"}]},{"name":"Business Advantages","description":"Aurelia is open source platform with commercial backing. If your business is going to spend significant money building software, you want to do it on a platform that's committed to you as a customer. You want to be able to form a relationship with your technology provider to ensure that you and your developers have a solid platform upon which to build your business now and in the years to come.","src":"dep_repos/documentation/current/en-us/1. overview/3. business-advantages.md","dest":"docs/overview/business-advantages","featured":false,"items":[{"id":"commercially-backed","name":"Commercially Backed"},{"id":"commercial-products-and-services","name":"Commercial Products and Services"},{"id":"strategic-partnerships","name":"Strategic Partnerships"},{"id":"broad-customer-reach","name":"Broad Customer Reach"}]}]},{"name":"Tutorials","description":"Step-by-step tutorials teaching you how to build your first Aurelia applications.","dest":"docs/tutorials","items":[{"name":"Quick Start","description":"Welcome to Aurelia! This quick start guide will take you through creating a Todo app using Aurelia and briefly explain its main concepts. We assume you are familiar with JavaScript, HTML, and CSS.","src":"dep_repos/documentation/current/en-us/2. tutorials/1. creating-a-todo-app.md","dest":"docs/tutorials/creating-a-todo-app","featured":false,"items":[{"id":"setup","name":"Setup"},{"id":"creating-a-new-aurelia-project","name":"Creating A New Aurelia Project"},{"id":"the-app-class","name":"The App Class"},{"id":"rendering-the-app","name":"Rendering the App"},{"id":"conclusion","name":"Conclusion"}]},{"name":"Contact Manager Tutorial","description":"Now that you've got the basics down, you need to learn how to use the CLI, build a more complex app and get a solid knowledge foundation for real-world work. In this tutorial we'll build a small contact manager app and demonstrate a variety of Aurelia's features as well as learn some useful techniques.","src":"dep_repos/documentation/current/en-us/2. tutorials/2. creating-a-contact-manager.md","dest":"docs/tutorials/creating-a-contact-manager","featured":false,"items":[{"id":"setting-up-your-machine","name":"Setting Up Your Machine"},{"id":"creating-a-new-aurelia-project","name":"Creating A New Aurelia Project"},{"id":"adding-required-assets","name":"Adding Required Assets"},{"id":"building-the-application-shell","name":"Building the Application Shell"},{"id":"building-out-the-default-route","name":"Building Out the Default Route"},{"id":"building-out-the-contact-list","name":"Building Out the Contact List"},{"id":"building-out-the-contact-detail-screen","name":"Building Out the Contact Detail Screen"},{"id":"adding-pubsub-messaging","name":"Adding Pub/Sub Messaging"},{"id":"adding-a-loading-indicator","name":"Adding A Loading Indicator"},{"id":"next-steps","name":"Next Steps"},{"id":"conclusion","name":"Conclusion"}]}]},{"name":"Fundamentals","description":"After you've completed the quick starts, learn more about Aurelia's app model, components, dependency injection and more.","dest":"docs/fundamentals","items":[{"name":"App Configuration and Startup","description":"In this article you'll learn the various ways to bootstrap and configure Aurelia, along with different mechanisms for controlling the initial render strategy.","src":"dep_repos/documentation/current/en-us/3. fundamentals/1. app-configuration-and-startup.md","dest":"docs/fundamentals/app-configuration-and-startup","featured":false,"items":[{"id":"bootstrapping-aurelia","name":"Bootstrapping Aurelia"},{"id":"rendering-the-root-component","name":"Rendering the Root Component"},{"id":"bootstrapping-older-browsers","name":"Bootstrapping Older Browsers"},{"id":"manual-bootstrapping","name":"Manual Bootstrapping"},{"id":"making-resources-global","name":"Making Resources Global"},{"id":"organizing-your-app-with-features","name":"Organizing Your App with Features"},{"id":"installing-plugins","name":"Installing Plugins"},{"id":"leveraging-progressive-enhancement","name":"Leveraging Progressive Enhancement"},{"id":"customizing-conventions","name":"Customizing Conventions"},{"id":"logging","name":"Logging"}]},{"name":"Creating Components","description":"Components are the basic building blocks of all Aurelia applications. In this article you'll learn how to build basic components using dependency injection and the component lifecycle.","src":"dep_repos/documentation/current/en-us/3. fundamentals/2. creating-components.md","dest":"docs/fundamentals/creating-components","featured":false,"items":[{"id":"creating-a-component","name":"Creating A Component"},{"id":"component-instantiation-through-dependency-injection-di","name":"Component Instantiation Through Dependency Injection (DI)"},{"id":"the-component-lifecycle","name":"The Component Lifecycle"}]},{"name":"Dependency Injection: Basics","description":"Learn about how to leverage Aurelia's dependency injection container, the power behind all object creation in Aurelia applications.","src":"dep_repos/documentation/current/en-us/3. fundamentals/3. dependency-injection.md","dest":"docs/fundamentals/dependency-injection","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"injection","name":"Injection"},{"id":"object-lifetime-child-containers-and-default-behavior","name":"Object Lifetime, Child Containers and Default Behavior"},{"id":"how-aurelia-uses-containers","name":"How Aurelia Uses Containers"},{"id":"explicit-configuration","name":"Explicit Configuration"},{"id":"resolvers","name":"Resolvers"}]},{"name":"Securing Your App","description":"It's important to secure your application. This article will address a couple of simple things you can do to improve the security of your application.","src":"dep_repos/documentation/current/en-us/3. fundamentals/4. security.md","dest":"docs/fundamentals/security","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"authentication-and-authorization","name":"Authentication and Authorization"},{"id":"validation-and-sanitization","name":"Validation and Sanitization"},{"id":"secret-data","name":"Secret Data"},{"id":"deployment","name":"Deployment"},{"id":"prepare-for-the-inevitable","name":"Prepare for the Inevitable"},{"id":"do-not-be-nice-to-bad-guys","name":"Do Not Be Nice to Bad Guys"}]},{"name":"Cheat Sheet","description":"Forgot the syntax for bindings? Need to know how to create a custom attribute? This article contains answers to questions like those as well as a bunch of quick snippets for common tasks.","src":"dep_repos/documentation/current/en-us/3. fundamentals/5. cheat-sheet.md","dest":"docs/fundamentals/cheat-sheet","featured":false,"items":[{"id":"configuration-and-startup","name":"Configuration and Startup"},{"id":"creating-components","name":"Creating Components"},{"id":"dependency-injection","name":"Dependency Injection"},{"id":"templating-basics","name":"Templating Basics"},{"id":"databinding","name":"Databinding"},{"id":"templating-view-resources","name":"Templating View Resources"},{"id":"routing","name":"Routing"},{"id":"custom-attributes","name":"Custom Attributes"},{"id":"custom-elements","name":"Custom Elements"},{"id":"the-event-aggregator","name":"The Event Aggregator"}]}]},{"name":"Binding","description":"Learn all about Aurelia's powerful data-binding engine.","dest":"docs/binding","items":[{"name":"Binding: Basics","description":"The basics of data-binding with Aurelia.","src":"dep_repos/documentation/current/en-us/4. binding/1. basics.md","dest":"docs/binding/basics","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"html-and-svg-attributes","name":"HTML and SVG Attributes"},{"id":"dom-events","name":"DOM Events"},{"id":"function-references","name":"Function References"},{"id":"referencing-elements","name":"Referencing Elements"},{"id":"string-interpolation","name":"String Interpolation"},{"id":"element-content","name":"Element Content"},{"id":"contextual-properties","name":"Contextual Properties"},{"id":"expression-syntax","name":"Expression Syntax"}]},{"name":"Binding: Class and Style","description":"Data-binding class and style attributes with Aurelia.","src":"dep_repos/documentation/current/en-us/4. binding/2. class-and-style.md","dest":"docs/binding/class-and-style","featured":false,"items":[{"id":"class","name":"Class"},{"id":"style","name":"Style"}]},{"name":"Binding: Checkboxes","description":"Data-binding checkbox inputs with Aurelia.","src":"dep_repos/documentation/current/en-us/4. binding/3. checkboxes.md","dest":"docs/binding/checkboxes","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"booleans","name":"Booleans"},{"id":"array-of-numbers","name":"Array of Numbers"},{"id":"array-of-objects","name":"Array of Objects"},{"id":"array-of-objects-with-matcher","name":"Array of Objects with Matcher"},{"id":"array-of-strings","name":"Array of Strings"}]},{"name":"Binding: Radios","description":"Data-binding radio inputs with Aurelia.","src":"dep_repos/documentation/current/en-us/4. binding/4. radios.md","dest":"docs/binding/radios","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"numbers","name":"Numbers"},{"id":"objects","name":"Objects"},{"id":"objects-with-matcher","name":"Objects with Matcher"},{"id":"booleans","name":"Booleans"},{"id":"strings","name":"Strings"}]},{"name":"Binding: Selects","description":"Data-binding select elements with Aurelia.","src":"dep_repos/documentation/current/en-us/4. binding/5. selects.md","dest":"docs/binding/selects","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"select-number","name":"Select Number"},{"id":"select-object","name":"Select Object"},{"id":"select-object-with-matcher","name":"Select Object with Matcher"},{"id":"select-boolean","name":"Select Boolean"},{"id":"select-string","name":"Select String"},{"id":"multiple-select-numbers","name":"Multiple Select Numbers"},{"id":"multiple-select-objects","name":"Multiple Select Objects"},{"id":"multiple-select-strings","name":"Multiple Select Strings"}]},{"name":"Binding: Delegate vs Trigger","description":"When to use delegate and when to use trigger.","src":"dep_repos/documentation/current/en-us/4. binding/6. delegate-vs-trigger.md","dest":"docs/binding/delegate-vs-trigger","featured":false,"items":[{"id":"delegate-vs-trigger","name":"Delegate vs Trigger"},{"id":"event-delegation-with-capture","name":"Event delegation with Capture"}]},{"name":"Binding: Computed Properties","description":"Data-binding computed properties with Aurelia.","src":"dep_repos/documentation/current/en-us/4. binding/7. computed-properties.md","dest":"docs/binding/computed-properties","featured":false,"items":[{"id":"introduction","name":"Introduction"}]},{"name":"Binding: Value Converters","description":"An overview of the Aurelia binding engine's value converter functionality. Value converters are used to transform data during the data-binding process, both to and from the view.","src":"dep_repos/documentation/current/en-us/4. binding/8. value-converters.md","dest":"docs/binding/value-converters","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"value-converters","name":"Value Converters"},{"id":"simple-converters","name":"Simple Converters"},{"id":"converter-parameters","name":"Converter Parameters"},{"id":"binding-converter-parameters","name":"Binding Converter Parameters"},{"id":"multiple-parameters-composing-converters","name":"Multiple Parameters / Composing Converters"},{"id":"object-parameters","name":"Object Parameters"},{"id":"bi-directional-value-converters","name":"Bi-directional Value Converters"},{"id":"globally-accessible-value-converters","name":"Globally Accessible Value Converters"},{"id":"signalable-value-converters","name":"Signalable Value Converters"}]},{"name":"Binding: Binding Behaviors","description":"An overview of the Aurelia binding engine's binding behavior functionality. Binding Behaviors are used to plug into a binding instance's lifecycle and change the way it operates.","src":"dep_repos/documentation/current/en-us/4. binding/9. binding-behaviors.md","dest":"docs/binding/binding-behaviors","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"throttle","name":"throttle"},{"id":"debounce","name":"debounce"},{"id":"updatetrigger","name":"updateTrigger"},{"id":"signal","name":"signal"},{"id":"onetime","name":"oneTime"},{"id":"self","name":"self"},{"id":"custom-binding-behaviors","name":"Custom binding behaviors"}]},{"name":"Binding: Observables","description":"Using observables with Aurelia.","src":"dep_repos/documentation/current/en-us/4. binding/10. observable-properties.md","dest":"docs/binding/observable-properties","featured":false,"items":[{"id":"observable-properties","name":"Observable Properties"},{"id":"observing-collections","name":"Observing Collections"}]},{"name":"Binding: How it Works","description":"How data-binding works in Aurelia.","src":"dep_repos/documentation/current/en-us/4. binding/11. how-it-works.md","dest":"docs/binding/how-it-works","featured":false,"items":[{"id":"end-to-end","name":"End to End"},{"id":"abstract-syntax-tree","name":"Abstract Syntax Tree"},{"id":"binding-context-scope","name":"Binding Context / Scope"}]},{"name":"Binding: The Binding Engine","description":"How data-binding works in Aurelia.","src":"dep_repos/documentation/current/en-us/4. binding/12. binding-engine.md","dest":"docs/binding/binding-engine","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"how-to-install","name":"How to install"},{"id":"observing-a-property-on-an-object","name":"Observing a property on an object"},{"id":"observing-a-collection-mutation","name":"Observing a collection mutation"},{"id":"observing-an-expression-on-an-object","name":"Observing an expression on an object"}]}]},{"name":"Templating","description":"Learn all about Aurelia's powerful templating engine.","dest":"docs/templating","items":[{"name":"Templating: Basics","description":"A basic guide to using Aurelia's templating engine.","src":"dep_repos/documentation/current/en-us/5. templating/1. basics.md","dest":"docs/templating/basics","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"a-simple-template","name":"A Simple Template"},{"id":"binding","name":"Binding"},{"id":"composition","name":"Composition"},{"id":"the-as-element-attribute","name":"The as-element Attribute"},{"id":"the-view-resource-pipeline","name":"The View Resource Pipeline"},{"id":"view-and-compilation-spies","name":"View and Compilation Spies"},{"id":"conditionals","name":"Conditionals"},{"id":"repeaters","name":"Repeaters"}]},{"name":"Templating: HTML Behaviors Introduction","description":"An overview of the Aurelia templating engine's custom attribute and custom element functionality, including not only how to create basic versions, but how to use them both locally and globally in your application.","src":"dep_repos/documentation/current/en-us/5. templating/2. html-behaviors.md","dest":"docs/templating/html-behaviors","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"what-is-an-html-behavior","name":"What is an HTML Behavior?"},{"id":"getting-the-dom-element-for-your-behavior","name":"Getting the DOM Element for your Behavior"},{"id":"making-an-html-behavior-available-in-a-view","name":"Making an HTML Behavior Available in a View"},{"id":"global-resources","name":"Global Resources"},{"id":"creating-bindable-properties-on-an-html-behavior","name":"Creating Bindable Properties on an HTML Behavior"},{"id":"inheritance-with-html-behaviors","name":"Inheritance with HTML Behaviors"},{"id":"html-only-custom-elements","name":"HTML-Only Custom Elements"},{"id":"html-behavior-lifecycle","name":"HTML Behavior Lifecycle"},{"id":"conclusion","name":"Conclusion"}]},{"name":"Templating: Custom Attributes","description":"An overview of the Aurelia templating engine's custom attribute functionality. Custom Attributes are used to add custom behaviors to DOM elements.","src":"dep_repos/documentation/current/en-us/5. templating/3. custom-attributes.md","dest":"docs/templating/custom-attributes","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"simple-custom-attribute","name":"Simple Custom Attribute"},{"id":"explicit-attribute-naming","name":"Explicit Attribute Naming"},{"id":"single-value-binding","name":"Single Value Binding"},{"id":"options-binding","name":"Options Binding"},{"id":"default-option","name":"Default Option"},{"id":"dynamic-options-binding","name":"Dynamic Options Binding"},{"id":"globally-accessible-custom-attributes","name":"Globally Accessible Custom Attributes"}]},{"name":"Templating: Custom Elements Basics","description":"An overview of the Aurelia templating engine's custom element functionality basics. Custom Elements are used to add custom components to Aurelia applications.","src":"dep_repos/documentation/current/en-us/5. templating/4. custom-elements.md","dest":"docs/templating/custom-elements","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"html-only-custom-element","name":"HTML Only Custom Element"},{"id":"custom-element-basics","name":"Custom Element Basics"},{"id":"bindable-properties","name":"Bindable Properties"},{"id":"declarative-computed-values","name":"Declarative Computed Values"},{"id":"surrogate-behaviors","name":"Surrogate behaviors"},{"id":"basic-content-projection","name":"Basic Content Projection"},{"id":"decorators-for-customizing-aurelia-custom-element-processing","name":"Decorators for Customizing Aurelia Custom Element Processing"}]},{"name":"Templating: Content Projection","description":"An overview of the Aurelia templating engine's custom element content projection functionality.","src":"dep_repos/documentation/current/en-us/5. templating/5. content-projection.md","dest":"docs/templating/content-projection","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"basic-content-projection","name":"Basic Content Projection"},{"id":"named-slots","name":"Named Slots"},{"id":"fallback-slots","name":"Fallback Slots"},{"id":"slot-implementation-limitations","name":"Slot Implementation Limitations"}]},{"name":"Templating: Dynamic UI Composition","description":"An overview of Aurelia's dynamic template composition functionality.","src":"dep_repos/documentation/current/en-us/5. templating/6. dynamic-ui-composition.md","dest":"docs/templating/dynamic-ui-composition","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"basic-composition","name":"Basic Composition"},{"id":"composing-without-a-view-model","name":"Composing Without a View-Model"},{"id":"passing-through-data","name":"Passing Through Data"}]}]},{"name":"Routing","description":"Learn how to setup and configure Aurelia's router.","dest":"docs/routing","items":[{"name":"Router Configuration","description":"This article covers Aurelia's router configuration.","src":"dep_repos/documentation/current/en-us/6. routing/1. configuration.md","dest":"docs/routing/configuration","featured":false,"items":[{"id":"basic-configuration","name":"Basic Configuration"},{"id":"options","name":"Options"},{"id":"dynamically-specify-route-components","name":"Dynamically Specify Route Components"},{"id":"adding-additional-data-to-a-route","name":"Adding Additional Data To A Route"},{"id":"case-sensitive-routes","name":"Case Sensitive Routes"},{"id":"handling-unknown-routes","name":"Handling Unknown Routes"},{"id":"redirecting-routes","name":"Redirecting Routes"},{"id":"pipelines","name":"Pipelines"},{"id":"router-events","name":"Router Events"},{"id":"rendering-view-ports","name":"Rendering View Ports"},{"id":"layouts","name":"Layouts"},{"id":"view-swapping-and-animation","name":"View Swapping and Animation"},{"id":"internationalizing-titles","name":"Internationalizing Titles"},{"id":"configuring-a-fallback-route","name":"Configuring a Fallback Route"},{"id":"reusing-an-existing-view-model","name":"Reusing an Existing View Model"}]},{"name":"Handling Links","description":"This article covers Aurelia's default behavior on handling links.","src":"dep_repos/documentation/current/en-us/6. routing/2. handling-links.md","dest":"docs/routing/handling-links","featured":false,"items":[{"id":"basic-concept","name":"Basic Concept"},{"id":"skipping-click-hijacking","name":"Skipping Click Hijacking"},{"id":"conditional-skipping-click-hijacking","name":"Conditional Skipping Click Hijacking"}]}]},{"name":"Plugins","description":"Learn about Aurelia's officially supported plugins and how to use them.","dest":"docs/plugins","items":[{"name":"HTTP Services","description":"Usually JavaScript applications need to get their data from or communicate with various web services. In this article we'll take a look at the options Aurelia makes available to you.","src":"dep_repos/documentation/current/en-us/7. plugins/1. http-services.md","dest":"docs/plugins/http-services","featured":false,"items":[{"id":"options","name":"Options"},{"id":"aurelia-fetch-client","name":"aurelia-fetch-client"},{"id":"aurelia-http-client","name":"aurelia-http-client"}]},{"name":"Managing App State","description":"Using the Aurelia Store plugin for predictable state management.","src":"dep_repos/documentation/current/en-us/7. plugins/2. store.md","dest":"docs/plugins/store","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"getting-started","name":"Getting Started"},{"id":"what-is-the-state","name":"What is the State?"},{"id":"configuring-your-app","name":"Configuring your app"},{"id":"subscribing-to-the-stream-of-states","name":"Subscribing to the stream of states"},{"id":"subscribing-with-the-connectto-decorator","name":"Subscribing with the connectTo decorator"},{"id":"what-are-actions","name":"What are actions?"},{"id":"async-actions","name":"Async actions"},{"id":"dispatching-actions","name":"Dispatching actions"},{"id":"piping-multiple-actions-as-one","name":"Piping multiple actions as one"},{"id":"using-the-dispatchify-higher-order-function","name":"Using the dispatchify higher order function"},{"id":"resetting-the-store-to-a-specific-state","name":"Resetting the store to a specific state"},{"id":"two-way-binding-and-state-management","name":"Two-way binding and state management"},{"id":"recording-a-navigable-history-of-the-stream-of-states","name":"Recording a navigable history of the stream of states"},{"id":"making-our-app-history-aware","name":"Making our app history-aware"},{"id":"limiting-the-number-of-history-items","name":"Limiting the number of history items"},{"id":"handling-side-effects-with-middleware","name":"Handling side-effects with middleware"},{"id":"accessing-the-original-unmodified-state-in-a-middleware","name":"Accessing the original (unmodified) state in a middleware"},{"id":"defining-settings-for-middlewares","name":"Defining settings for middlewares"},{"id":"reference-to-the-calling-action-for-middlewares","name":"Reference to the calling action for middlewares"},{"id":"error-propagation-with-middlewares","name":"Error propagation with middlewares"},{"id":"default-middlewares","name":"Default middlewares"},{"id":"execution-order","name":"Execution order"},{"id":"tracking-overall-performance","name":"Tracking overall performance"},{"id":"debugging-with-the-redux-devtools-extension","name":"Debugging with the Redux DevTools extension"},{"id":"defining-custom-devtoolsoptions","name":"Defining custom devToolsOptions"},{"id":"defining-custom-loglevels","name":"Defining custom LogLevels"},{"id":"comparison-to-other-state-management-libraries","name":"Comparison to other state management libraries"}]},{"name":"Validation","description":"The basics of validation with Aurelia.","src":"dep_repos/documentation/current/en-us/7. plugins/3. validation.md","dest":"docs/plugins/validation","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"defining-rules","name":"Defining Rules"},{"id":"customizing-messages","name":"Customizing Messages"},{"id":"validation-controller","name":"Validation Controller"},{"id":"validator","name":"Validator"},{"id":"validate-binding-behavior","name":"Validate Binding Behavior"},{"id":"displaying-errors","name":"Displaying Errors"},{"id":"custom-renderers","name":"Custom Renderers"},{"id":"entity-validation","name":"Entity Validation"},{"id":"custom-rules","name":"Custom Rules"},{"id":"multiple-validation-controllers","name":"Multiple Validation Controllers"},{"id":"integration-with-other-libraries","name":"Integration With Other Libraries"},{"id":"integrating-with-aurelia-i18n","name":"Integrating with Aurelia-I18N"},{"id":"server-side-validation","name":"Server-Side Validation"}]},{"name":"I18N","description":"Getting started with I18N in your Aurelia app.","src":"dep_repos/documentation/current/en-us/7. plugins/4. i18n.md","dest":"docs/plugins/i18n","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"installing-the-plugin","name":"Installing the Plugin"},{"id":"setting-up-the-plugin","name":"Setting up the Plugin"},{"id":"typescript-support","name":"TypeScript Support"},{"id":"using-the-plugin","name":"Using the Plugin"},{"id":"bundle-translation-files","name":"Bundle Translation Files"},{"id":"internationalization-api-polyfill","name":"Internationalization API Polyfill"}]},{"name":"Dialogs","description":"The basics of the dialog plugin for Aurelia.","src":"dep_repos/documentation/current/en-us/7. plugins/5. dialog.md","dest":"docs/plugins/dialog","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"installing-the-plugin","name":"Installing The Plugin"},{"id":"configuring-the-plugin","name":"Configuring The Plugin"},{"id":"using-the-plugin","name":"Using The Plugin"},{"id":"default-resourcescustom-elementsattributes","name":"Default Resources(custom elements/attributes)"},{"id":"settings","name":"Settings"},{"id":"accessing-the-dialogcontroller-api","name":"Accessing The DialogController API"},{"id":"styling-the-dialog","name":"Styling The Dialog"},{"id":"lifecycle-hooks","name":"Lifecycle Hooks"}]},{"name":"Animation","description":"The basics of using the animation plugin for Aurelia.","src":"dep_repos/documentation/current/en-us/7. plugins/6. animation.md","dest":"docs/plugins/animation","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"installing-the-plugin","name":"Installing The Plugin"},{"id":"configuring-the-plugin","name":"Configuring The Plugin"},{"id":"demo","name":"Demo"},{"id":"using-the-plugin","name":"Using The Plugin"},{"id":"working-with-default-animation-triggers","name":"Working with Default Animation Triggers"},{"id":"summary","name":"Summary"}]},{"name":"Virtualization","description":"The basics of using the ui-virtualization plugin for Aurelia.","src":"dep_repos/documentation/current/en-us/7. plugins/7. virtualization.md","dest":"docs/plugins/virtualization","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"installing-the-plugin","name":"Installing The Plugin"},{"id":"configuring-the-plugin","name":"Configuring The Plugin"},{"id":"using-the-plugin","name":"Using The Plugin"},{"id":"infinite-scroll","name":"Infinite Scroll"},{"id":"caveats","name":"Caveats"}]},{"name":"Write New Plugin","description":"A tutorial on how to write a new Aurelia plugin.","src":"dep_repos/documentation/current/en-us/7. plugins/8.write-new-plugin.md","dest":"docs/plugins/write-new-plugin","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"setup","name":"Setup"},{"id":"structure-of-plugin","name":"Structure of Plugin"},{"id":"develop-plugin","name":"Develop Plugin"},{"id":"advanced-usage","name":"Advanced Usage"}]}]},{"name":"Integration","description":"Learn how to integrate Aurelia with various other libraries and frameworks.","dest":"docs/integration","items":[{"name":"Integrating with Polymer","description":"Polymer is a library for creating reusable web components declaratively with extra features like data binding and property observation. In many ways, it is similar to Aurelia's component support. However, Polymer also includes an extensive catalog of custom elements for everything from material design to credit card forms to embedding Google services like Google Maps and YouTube. With a bit of work, these components can be incorporated into Aurelia applications as well.","src":"dep_repos/documentation/current/en-us/8. integration/1. polymer.md","dest":"docs/integration/polymer","featured":false,"items":[{"id":"setup","name":"Setup"},{"id":"importing-elements","name":"Importing Elements"},{"id":"data-binding","name":"Data Binding"},{"id":"forms-and-two-way-binding","name":"Forms and Two-Way Binding"},{"id":"how-the-plugin-works","name":"How the Plugin Works"}]}]},{"name":"Testing","description":"Learn all about testing Aurelia apps, including component testing and e2e testing.","dest":"docs/testing","items":[{"name":"Testing Components","description":"An overview of how to unit test Custom Elements and Custom Attributes.","src":"dep_repos/documentation/current/en-us/9. testing/1. components.md","dest":"docs/testing/components","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"getting-started","name":"Getting Started"},{"id":"testing-a-custom-element","name":"Testing a Custom Element"},{"id":"manually-handling-lifecycle","name":"Manually handling lifecycle"},{"id":"testing-a-custom-attribute","name":"Testing a Custom Attribute"},{"id":"testing-custom-component-with-a-real-view-model","name":"Testing custom component with a real view-model"},{"id":"using-a-real-parent-view-model","name":"Using a Real Parent View-model"},{"id":"improving-readability-with-multi-line-strings","name":"Improving Readability with Multi-line Strings"},{"id":"helpful-properties-and-functions","name":"Helpful Properties and Functions"},{"id":"testing-complex-components","name":"Testing complex components"}]},{"name":"End to End Testing","description":"Testing front-end applications has become an important task for today's developers. Not only do you want to ensure that your application's internal code operates correctly, but you also want to validate the in-browser behavior. This article will show you how to achieve this by combining Aurelia and Protractor.","src":"dep_repos/documentation/current/en-us/9. testing/2. end-to-end.md","dest":"docs/testing/end-to-end","featured":false,"items":[{"id":"what-is-e2e-testing","name":"What is E2E testing?"},{"id":"how-are-e2e-tests-different","name":"How are E2E tests different?"},{"id":"protractor","name":"Protractor"},{"id":"a-basic-example","name":"A Basic Example"},{"id":"accessing-dom-elements","name":"Accessing DOM Elements"},{"id":"interacting-with-forms","name":"Interacting with Forms"},{"id":"protractor-and-aurelia","name":"Protractor and Aurelia"},{"id":"testing-the-aurelia-skeleton-navigation-app","name":"Testing the Aurelia Skeleton Navigation App"},{"id":"page-objects","name":"Page Objects"},{"id":"test-specification","name":"Test Specification"},{"id":"summary","name":"Summary"}]}]},{"name":"Server Side Rendering","description":"Learn about Server Side Rendering with Aurelia and how to configure your project.","dest":"docs/ssr","items":[{"name":"Server Side Rendering","description":"An introduction to server-side rendering with Aurelia.","src":"dep_repos/documentation/current/en-us/10. ssr/1. introduction.md","dest":"docs/ssr/introduction","featured":false,"items":[{"id":"what-is-server-side-rendering","name":"What is Server Side Rendering?"},{"id":"caveats","name":"Caveats"},{"id":"how-it-works","name":"How It Works"},{"id":"isomorphic-code","name":"Isomorphic Code"},{"id":"memory-management","name":"Memory Management"},{"id":"different-main-entry-points","name":"Different Main Entry Points"},{"id":"404-pages","name":"404 pages"},{"id":"skeleton-with-ssr-pre-configured","name":"Skeleton with SSR Pre-Configured"}]}]},{"name":"CLI","description":"Learn how to create, build, bundle and test your apps using all your favorite tools, facilitated by the Aurelia CLI.","dest":"docs/cli","items":[{"name":"Basics","description":"The basics of the Aurelia CLI.","src":"dep_repos/documentation/current/en-us/11. cli/1. basics.md","dest":"docs/cli/basics","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"machine-setup","name":"Machine Setup"},{"id":"creating-a-new-aurelia-project","name":"Creating A New Aurelia Project"},{"id":"creating-a-new-aurelia-plugin-project","name":"Creating A New Aurelia Plugin Project"},{"id":"running-your-aurelia-app","name":"Running Your Aurelia App"},{"id":"environments","name":"Environments"},{"id":"building-your-app","name":"Building Your App"},{"id":"generators","name":"Generators"},{"id":"aureliajson","name":"Aurelia.json"},{"id":"webpack-vs-built-in-bundler","name":"Webpack vs Built-in Bundler"},{"id":"what-if-i-need-help","name":"What if I need help?"}]},{"name":"Gulp Tasks","description":"Gulp tasks using the Aurelia CLI.","src":"dep_repos/documentation/current/en-us/11. cli/2. tasks.md","dest":"docs/cli/tasks","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"task-execution","name":"Task execution"},{"id":"creating-a-new-task","name":"Creating a new task"},{"id":"task-metadata","name":"Task metadata"}]},{"name":"Webpack","description":"Webpack and the Aurelia CLI.","src":"dep_repos/documentation/current/en-us/11. cli/3. webpack.md","dest":"docs/cli/webpack","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"platformmodulename","name":"PLATFORM.moduleName"},{"id":"running-the-application","name":"Running the application"},{"id":"simplified-webpack","name":"Simplified Webpack"},{"id":"deploying-your-app","name":"Deploying Your App"},{"id":"build-options","name":"Build options"},{"id":"installing-3rd-party-dependencies","name":"Installing 3rd party dependencies"},{"id":"unit-testing","name":"Unit Testing"},{"id":"aspnet-core","name":"ASP.NET Core"}]},{"name":"Built-in Bundler","description":"The CLI Built-in Bundler is an alternative bundler to Webpack. It provides similar capabilities but with much simpler configuration. If you have little or no experience with Webpack, we recommend our built-in bundler.","dest":"docs/cli/cli-bundler","items":[{"name":"CLI's built-in Bundler","description":"Basics features of the Aurelia CLI's built-in Bundler.","src":"dep_repos/documentation/current/en-us/11. cli/4. cli-bundler/1. basics.md","dest":"docs/cli/cli-bundler/basics","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"aspnet-core","name":"ASP.NET Core"},{"id":"running-the-application","name":"Running the application"},{"id":"deploying-your-app","name":"Deploying Your App"},{"id":"unit-testing","name":"Unit Testing"},{"id":"build-revisions","name":"Build Revisions"},{"id":"caching","name":"Caching"},{"id":"bundling-and-code-splitting","name":"Bundling And Code Splitting"},{"id":"adding-client-libraries-to-your-project","name":"Adding Client Libraries to Your Project"},{"id":"copy-other-files-eg-fonts","name":"Copy Other Files (e.g. fonts)"},{"id":"setting-the-baseurl","name":"Setting the baseUrl"},{"id":"styling-your-application","name":"Styling your Application"},{"id":"updating-a-single-library","name":"Updating A Single Library"},{"id":"updating-multiple-libraries","name":"Updating Multiple Libraries"},{"id":"javascript-minification","name":"Javascript Minification"},{"id":"path-mappings","name":"Path mappings"}]},{"name":"CLI's built-in Bundler Dependency Management","description":"Dependency Management of the CLI built-in Bundler.","src":"dep_repos/documentation/current/en-us/11. cli/4. cli-bundler/2. dependency-management.md","dest":"docs/cli/cli-bundler/dependency-management","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"auto-tracing","name":"Auto Tracing"},{"id":"manual-tracing","name":"Manual Tracing"},{"id":"prepend","name":"Prepend"},{"id":"shim","name":"Shim"},{"id":"au-run-auto-install","name":"au run --auto-install"}]},{"name":"CLI + built-in Bundler Advanced","description":"Advanced Usage of the CLI built-in Bundler.","src":"dep_repos/documentation/current/en-us/11. cli/4. cli-bundler/3. advanced.md","dest":"docs/cli/cli-bundler/advanced","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"onrequiringmodule","name":"onRequiringModule"},{"id":"global-wrapshim","name":"Global wrapShim"},{"id":"npm-package-alias","name":"Npm package alias"},{"id":"local-copy-of-npm-package","name":"Local copy of npm package"},{"id":"lazy-bundling-of-main-file","name":"Lazy bundling of main file"}]},{"name":"CLI's built-in Bundler Cookbook","description":"Recipes for common usage of CLI's built-in bundler","src":"dep_repos/documentation/current/en-us/11. cli/4. cli-bundler/4. cook-book.md","dest":"docs/cli/cli-bundler/cook-book","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"jquery","name":"jQuery"},{"id":"normalizecss","name":"normalize.css"},{"id":"bootstrap-css-v4","name":"Bootstrap CSS v4"},{"id":"customize-bootstrap-css-v4","name":"Customize Bootstrap CSS v4"},{"id":"bootstrap-css-v3-legacy","name":"Bootstrap CSS v3 (legacy)"},{"id":"font-awesome-v5-free","name":"Font Awesome v5 Free"},{"id":"font-awesome-v4","name":"Font Awesome v4"},{"id":"foundation-css-v6","name":"Foundation CSS v6"},{"id":"materialize-css-v1","name":"Materialize CSS v1"},{"id":"typeorm-with-shimmed-decorators","name":"TypeORM with shimmed decorators"}]}]},{"name":"Migrating","description":"Migrate from CLI built-in bundler to Webpack, or from old built-in bundler to new auto-tracing bundler.","src":"dep_repos/documentation/current/en-us/11. cli/5. migrating.md","dest":"docs/cli/migrating","featured":false,"items":[{"id":"from-cli-bundler-to-webpack","name":"From CLI Bundler to Webpack"},{"id":"upgrade-to-auto-tracing-bundler-100-beta1-or-above","name":"Upgrade to Auto-Tracing Bundler (1.0.0-beta.1 or above)"},{"id":"update-3rd-party-plugin-installation-guide","name":"Update 3rd party plugin installation guide"}]},{"name":"Updating","description":"The process of updating the Aurelia CLI.","src":"dep_repos/documentation/current/en-us/11. cli/6. updating.md","dest":"docs/cli/updating","featured":false,"items":[{"id":"updating-the-aurelia-cli","name":"Updating the Aurelia CLI"}]},{"name":"Recipes & known issues","description":"In this section you can find examples of particular setups, known issues and possible workarounds","src":"dep_repos/documentation/current/en-us/11. cli/7. recipes.md","dest":"docs/cli/recipes","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"aurelia-cli-bundler-docker","name":"Aurelia-CLI bundler + Docker"},{"id":"npm-uninstalling-packages","name":"NPM uninstalling packages"},{"id":"building-with-tfs","name":"Building with TFS"}]}]},{"name":"Build Systems","description":"Various systems for building and bundling Aurelia apps.","dest":"docs/build-systems","items":[{"name":"Webpack","description":"Setup and bundling using the Webpack system.","dest":"docs/build-systems/webpack","items":[{"name":"A Basic Example","description":"If you're interested in setting up Webpack from scratch to build projects, this article will give you everything you need to know.","src":"dep_repos/documentation/current/en-us/12. build-systems/1. webpack/1. a-basic-example.md","dest":"docs/build-systems/webpack/a-basic-example","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"platformmodulename","name":"PLATFORM.moduleName"},{"id":"webpack-documentation","name":"Webpack Documentation"},{"id":"basic-config-example","name":"Basic Config Example"},{"id":"other-files-used","name":"Other Files Used"}]}]},{"name":"JSPM","description":"Setup and bundling using the JSPM system.","dest":"docs/build-systems/jspm","items":[{"name":"Setup with JSPM","description":"If you're interested in getting setup with JSPM to build projects, this article will take you through setting up both your machine and a production quality starter project.","src":"dep_repos/documentation/current/en-us/12. build-systems/2. jspm/1. setup.md","dest":"docs/build-systems/jspm/setup","featured":false,"items":[{"id":"configuring-your-environment","name":"Configuring Your Environment"},{"id":"setting-up-the-project-structure-and-build","name":"Setting up the Project Structure and Build"},{"id":"running-the-app","name":"Running The App"},{"id":"running-the-unit-tests","name":"Running The Unit Tests"},{"id":"running-the-e2e-tests","name":"Running The E2E Tests"}]},{"name":"Bundling with JSPM","description":"Before deploying your app to production, you'll want to bundle the assets for efficient use of the network.","src":"dep_repos/documentation/current/en-us/12. build-systems/2. jspm/2. bundling.md","dest":"docs/build-systems/jspm/bundling","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"bundling","name":"Bundling "},{"id":"bundling-an-aurelia-jspm-application","name":"Bundling an Aurelia JSPM Application"},{"id":"multiple-bundles","name":"Multiple Bundles"},{"id":"bundling-a-jspm-v017-app","name":"Bundling a JSPM v0.17 App"},{"id":"duplicate-modules-in-multiple-bundles","name":"Duplicate Modules in Multiple Bundles"},{"id":"bundle-configuration","name":"Bundle Configuration"},{"id":"bundling-html-imports","name":"Bundling HTML Imports"},{"id":"conclusion","name":"Conclusion"}]}]},{"name":"Docker","description":"Setup and run an Aurelia application using Docker containers.","dest":"docs/build-systems/docker","items":[{"name":"Setup Docker","description":"If you're interested in getting started with Docker to build projects, this article will take you through setting up both your machine and a production quality starter project.","src":"dep_repos/documentation/current/en-us/12. build-systems/3. docker/1. setup.md","dest":"docs/build-systems/docker/setup","featured":false,"items":[{"id":"introduction","name":"Introduction"},{"id":"configuring-your-environment","name":"Configuring Your Environment"},{"id":"basic-sample","name":"Basic Sample"},{"id":"a-more-real-world-scenario","name":"A More Real World Scenario"}]}]}]}]},"search":true,"footer":{"copyright":"Copyright © 2010 - 2020 <a href=\"http://www.bluespire.com\">Blue Spire Inc.</a> Code licensed under the MIT License. Content licensed under CC0.","columns":[{"name":"Resources","links":[{"href":"docs/overview/what-is-aurelia","text":"About"},{"href":"blog","text":"Blog"},{"href":"http://eepurl.com/ces50j","text":"Newsletter"}]},{"name":"Help","links":[{"href":"https://discourse.aurelia.io/","text":"Discourse"},{"href":"https://discord.gg/RBtyM6u","text":"Discord"},{"href":"https://stackoverflow.com/search?q=aurelia","text":"Stack Overflow"}]},{"name":"Community","links":[{"href":"https://github.com/aurelia","text":"GitHub"},{"href":"https://twitter.com/aureliaeffect","text":"Twitter"},{"href":"https://github.com/orgs/aurelia/people","text":"Team"}]}]}};
</script>
<script src="scripts/aurelia-docs-1882c78c11.js" data-main="aurelia-bootstrapper"></script>
</body>
</html>