-
Notifications
You must be signed in to change notification settings - Fork 99
/
Copy pathindex.html
240 lines (203 loc) · 10.4 KB
/
index.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
<!DOCTYPE html>
<html lang="en" class="home">
<head>
<meta charset="UTF-8">
<title>Mavo: A new, approachable way to create Web applications</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://get.mavo.io/stable/mavo.min.css" />
<link rel="stylesheet" href="./css/style.css" />
<link rel="icon" href="/favicon.ico">
<link rel='stylesheet' href='style.css'>
<script src="https://get.mavo.io/stable/mavo.es5.min.js"></script>
</head>
<body>
<header>
<div class="masthead">
<h1 class="logo"><img src="logo.svg" alt="Mavo"></h1>
<nav>
<a href="./docs/primer">Get started</a>
<a href="./docs">Docs</a>
<a href="./demos">Demos</a>
<a href="./faq">FAQ</a>
<a href="https://plugins.mavo.io">Plugins</a>
<a href="./get">Get Mavo</a>
<a href="https://play.mavo.io">Play!</a>
<a class="github-button" href="https://github.com/mavoweb/mavo" data-icon="octicon-star" data-size="large" data-show-count="true" aria-label="Star mavoweb/mavo on GitHub">Star</a>
</nav>
</div>
<div class="promo">
<strong class="tagline">A new, approachable way to create Web applications</strong>
<p>Create complex, reactive, persistent web applications by just writing HTML & CSS, without a single line of JavaScript and no server backend.
<br />Developed in the <a href="http://haystack.csail.mit.edu">Haystack Group</a> at <a href="http://csail.mit.edu">MIT CSAIL</a> and led by <a href="http://lea.verou.me">Lea Verou</a>.
</p>
<a href="/get" class="call-to-action button">Get Mavo</a>
</div>
</header>
<section id="what">
<h1>What is Mavo?</h1>
<ul>
<li>Mavo extends the syntax of HTML to describe Web applications that manage, store, and transform data.</li>
<li>Store data in the cloud, locally, or not at all by just changing <a href="/docs/primer/#mv-storage">an HTML attribute</a></li>
<li><a href="/docs/primer/#property">Edit data</a> right in the website, with an intuitive, auto-generated, customizable interface. No more wrestling with CMSes and servers!</li>
<li>Multimedia uploads in your page via drag & drop, pasting, or browsing, without a single line of code.</li>
<li>Perform <a href="/docs/primer/#expressions">calculations</a> right in the HTML, that update when needed. No need to write JavaScript!</li>
</ul>
</section>
<section id="pros">
<article>
<h1>Approachable</h1>
<p>Mavo uses familiar <strong>HTML-based syntax</strong> and can be used even by people with no programming experience.
This is not wishful thinking; <a href="http://dl.acm.org/citation.cfm?id=2984551">it’s published, peer-reviewed research</a>.</p>
</article>
<article>
<h1>Learnable</h1>
<p>Mavo’s core functionality can be learned in <a href="docs">a few minutes</a>, and is enough to create a vast variety of applications that manage, store, and transform small-scale data.</p>
</article>
<article>
<h1>Flexible</h1>
<p>Design your application with the <strong>same design freedom and tools as a static webpage</strong>. Mavo works with your markup, not against it.</p>
</article>
<article>
<h1>Extensible</h1>
<p>Mavo has been designed for extensibility from the ground up. <a href="https://plugins.mavo.io">Plugins</a> can modify almost every aspect of its behavior and add new powerful functionality.</p>
</article>
<article>
<h1>Accessible</h1>
<p>Mavo apps are keyboard accessible and screen reader friendly out of the box.</p>
</article>
<article>
<h1>Free and Open Source</h1>
<p>We created Mavo because we thought that creating Web applications should be easier than it is today. Monetization is not among our priorities.</p>
</article>
</section>
<section class="language-markup" id="at-a-glance">
<h1>Mavo at a glance</h1>
<h2 id="homepage"><a href="/demos/homepage">Editable homepage</a></h2>
<p>To try out editing, log in to GitHub or watch the <a href="/demos/homepage/video.mp4" target="_blank">video</a>.</p>
<section class="manual example side-by-side">
<div class="demo-container">
<pre><code>
<main <a href="/docs/primer/#mv-app" aria-label="Give your app a name and tell Mavo to be active on this portion of the page.">mv-app="homepage"</a>
<a href="/docs/primer/#mv-storage" aria-label="mv-storage tells Mavo where to store the data, in this case on GitHub.">mv-storage="https://github.com/mavoweb/data"</a>
<a href="http://plugins.mavo.io/plugin/tinymce" aria-label="Load the TinyMCE plugin for rich text editing">mv-plugins="tinymce"</a>>
<h1>
<img <a href="/docs/primer/#property" aria-label="Name important elements. Makes elements editable and saveable when that makes sense.">property</a>="image" alt="">
<span property="name">Your Name</span>
</h1>
<p property="description" <a href="http://plugins.mavo.io/plugin/tinymce" aria-label="This tells the TinyMCE plugin to be active on this property, i.e. that this property should be edited as rich text.">class="tinymce"</a>></p>
<div class="links">
<a <a href="/docs/primer/#property" aria-label="Note that property doesn’t need a value if it’s the same as its first class (or id, or name, or itemprop)">property</a> class="twitter" title="Twitter">🐦</a>
<a property class="facebook" title="Facebook">f</a>
<a property class="wikipedia" title="Wikipedia">W</a>
</div>
</main>
</code></pre>
<div class="example-container embedded">
<iframe src="/demos/homepage/?lite"></iframe>
</div>
</div>
</section>
<h2 id="todo"><a href="/demos/todo/">Simple To-Do list</a></h2>
<p><a href="/demos/todo/video.mp4" target="_blank">Watch Video</a>.</p>
<section class="manual example side-by-side">
<div class="demo-container">
<pre><code>
<main mv-app="todo" <a href="/docs/primer/#mv-storage" aria-label="Store data locally, in the browser">mv-storage="local"</a> <a href="/docs/properties/#mv-mode" aria-label="Make entire app always editable, no need for a separate editing mode here" class="right">mv-mode="edit"</a>>
<header>
<h1>My tasks</h1>
<p><a href="/docs/primer/#expressions" aria-label="Use brackets to refer to current values of properties and perform calculations. Mavo will automatically update this every time the “done” property changes in any item.">[count(done)]</a> done out of [count(task)] total</p>
</header>
<ul>
<li property="task" <a href="docs/primer/#mv-multiple" aria-label="mv-multiple turns an element into an editable collection of items, complete with controls to add and delete items, reorder items via drag and drop, and even keyboard shortcuts for all these!">mv-multiple</a>>
<label>
<input property="done" type="checkbox" />
<span property="taskTitle">Do stuff</span>
</label>
</li>
<button <a href="/docs/actions" aria-label="When this button is pressed, delete all tasks whose done property is checked">mv-action="delete(task where done)"</a>>
Clear Completed
</button>
</ul>
</main>
</code></pre>
<div class="example-container embedded">
<iframe src="/demos/todo/?lite"></iframe>
</div>
</div>
</section>
<h2 id="portfolio"><a href="/demos/portfolio">Editable portfolio</a></h2>
<p>To try out editing, log in to GitHub or watch the <a href="/demos/portfolio/video.mp4" target="_blank">video</a>.</p>
<section class="manual example side-by-side">
<div class="demo-container">
<pre><code>
<main mv-app="portfolio"
mv-storage="http://github.com/mavoweb/data/portfolio">
<header>
<h1><a href="http://julesmuck.com">muck</a></h1>
</header>
<div>
<a property="painting" mv-multiple mv-attribute="none">
<img property="image" />
<p property="name"
<a aria-label="mv-default allows setting default values for properties. As evidenced here, these could be dynamic, set via expressions.">mv-default</a>="<a href="" aria-label="Expression that uses Mavo functions to extract a default description for the image from its URL">[readable(to(filename(image), '.'))]</a>">
</p>
</a>
</div>
</main>
</code></pre>
<div class="example-container embedded">
<iframe src="/demos/portfolio/?lite"></iframe>
</div>
</div>
</section>
<p class="buttons">
<a href="/docs/primer" class="call-to-action button">Learn More</a>
<a href="/demos" class="call-to-action button">More Demos</a>
</p>
</section>
<footer>
<p>
Made with ♥ by <a href="https://lea.verou.me">Lea Verou</a> and <a href="https://github.com/mavoweb/mavo/graphs/contributors">all these awesome people</a>.
Proudly hosted by <a href="https://www.netlify.com" class="netlify">Netlify</a>.
</p>
<article>
<h1>Explore</h1>
<ul>
<li><a href="./docs/primer">Get started</a></li>
<li><a href="./docs">Docs</a></li>
<li><a href="./demos">Demos</a></li>
<li><a href="./faq">FAQ</a></li>
<li><a href="https://plugins.mavo.io">Plugins</a></li>
<li><a href="./get">Get Mavo</a></li>
<li><a href="https://test.mavo.io">Testsuite</a></li>
<li><a href="./credits">Credits</a></li>
<li><a href="./privacy.html">Privacy Policy</a></li>
</ul>
</article>
<article>
<h1>Social Mavo</h1>
<ul>
<li><a href="https://twitter.com/mavoweb">Follow @mavoweb on Twitter</a></li>
<li><a href="https://gitter.im/mavoweb">Chat with us on Gitter</a></li>
<li>
<a href="https://github.com/mavoweb/mavo">Github</a>
<a class="github-button" href="https://github.com/mavoweb/mavo" data-icon="octicon-star" data-size="large" data-show-count="true" aria-label="Star mavoweb/mavo on GitHub">Star</a>
</li>
</ul>
</article>
<a href="https://mit.edu" class="logo"><img src="./img/logo-mit.svg" alt="MIT" /></a>
<a href="https://csail.mit.edu" class="logo"><img src="./img/logo-csail.svg" alt="CSAIL" /></a>
</footer>
<script src="./js/prism.js"></script>
<script src="/sitewide.js"></script>
<script async defer src="https://buttons.github.io/buttons.js"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-96752780-1', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>