ovto 0.4.1 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/.gitmodules +3 -0
- data/CHANGELOG.md +15 -2
- data/Gemfile +2 -2
- data/Gemfile.lock +23 -27
- data/README.md +2 -2
- data/book/SUMMARY.md +3 -1
- data/book/api/actions.md +1 -1
- data/book/api/fetch.md +3 -3
- data/book/api/middleware.md +99 -0
- data/book/api/pure_component.md +30 -0
- data/book/guides/install.md +76 -0
- data/book/guides/tutorial.md +3 -3
- data/book/ovtologo.png +0 -0
- data/docs/api/Array.html +190 -0
- data/docs/api/Hash.html +196 -0
- data/docs/api/Ovto/Actions.html +132 -40
- data/docs/api/Ovto/App.html +254 -40
- data/docs/api/Ovto/Component/MoreThanOneNode.html +6 -6
- data/docs/api/Ovto/Component.html +102 -27
- data/docs/api/Ovto/Middleware/Actions.html +428 -0
- data/docs/api/Ovto/Middleware/Base.html +606 -0
- data/docs/api/Ovto/Middleware/Component.html +355 -0
- data/docs/api/Ovto/Middleware.html +288 -0
- data/docs/api/Ovto/PureComponent/StateIsNotAvailable.html +124 -0
- data/docs/api/Ovto/PureComponent.html +368 -0
- data/docs/api/Ovto/Runtime.html +7 -7
- data/docs/api/Ovto/State/MissingValue.html +6 -6
- data/docs/api/Ovto/State/{UnknownKey.html → UnknownStateKey.html} +11 -11
- data/docs/api/Ovto/State.html +59 -43
- data/docs/api/Ovto/WiredActionSet.html +636 -0
- data/docs/api/Ovto/WiredActions.html +78 -35
- data/docs/api/Ovto.html +226 -29
- data/docs/api/_index.html +99 -11
- data/docs/api/actions.html +36 -10
- data/docs/api/app.html +35 -9
- data/docs/api/class_list.html +3 -3
- data/docs/api/component.html +37 -11
- data/docs/api/css/style.css +2 -2
- data/docs/api/fetch.html +40 -14
- data/docs/api/file.README.html +8 -8
- data/docs/api/file_list.html +2 -2
- data/docs/api/frames.html +2 -2
- data/docs/api/index.html +8 -8
- data/docs/api/js/app.js +14 -3
- data/docs/api/method_list.html +318 -22
- data/docs/api/middleware.html +498 -0
- data/docs/api/pure_component.html +428 -0
- data/docs/api/state.html +35 -9
- data/docs/api/top-level-namespace.html +9 -7
- data/docs/gitbook/gitbook.js +2 -2
- data/docs/gitbook/theme.js +1 -1
- data/docs/guides/debugging.html +35 -9
- data/docs/guides/development.html +35 -9
- data/docs/guides/install.html +452 -0
- data/docs/guides/tutorial.html +101 -66
- data/docs/index.html +37 -17
- data/docs/ovtologo.png +0 -0
- data/docs/search_index.json +1 -1
- data/examples/sinatra/Gemfile +2 -0
- data/examples/sinatra/Gemfile.lock +33 -31
- data/examples/sinatra/app.rb +1 -4
- data/examples/sinatra/config.ru +6 -6
- data/examples/static/Gemfile.lock +10 -14
- data/lib/ovto/actions.rb +11 -0
- data/lib/ovto/app.rb +37 -13
- data/lib/ovto/component.rb +149 -73
- data/lib/ovto/fetch.rb +1 -1
- data/lib/ovto/middleware.rb +121 -0
- data/lib/ovto/pure_component.rb +22 -0
- data/lib/ovto/state.rb +13 -5
- data/lib/ovto/version.rb +1 -1
- data/lib/ovto/wired_action_set.rb +40 -0
- data/lib/ovto/wired_actions.rb +49 -11
- data/lib/ovto.rb +27 -0
- data/ovto.gemspec +1 -1
- metadata +35 -9
data/docs/guides/tutorial.html
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
<title>Getting Started · GitBook</title>
|
8
8
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
9
9
|
<meta name="description" content="">
|
10
|
-
<meta name="generator" content="GitBook 3.2.
|
10
|
+
<meta name="generator" content="GitBook 3.2.2">
|
11
11
|
|
12
12
|
|
13
13
|
|
@@ -57,6 +57,8 @@
|
|
57
57
|
<link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">
|
58
58
|
|
59
59
|
|
60
|
+
<link rel="next" href="install.html" />
|
61
|
+
|
60
62
|
|
61
63
|
<link rel="prev" href="../" />
|
62
64
|
|
@@ -100,12 +102,12 @@
|
|
100
102
|
|
101
103
|
</li>
|
102
104
|
|
103
|
-
<li class="chapter " data-level="1.2" data-path="
|
105
|
+
<li class="chapter active" data-level="1.2" data-path="tutorial.html">
|
104
106
|
|
105
|
-
<a href="
|
107
|
+
<a href="tutorial.html">
|
106
108
|
|
107
109
|
|
108
|
-
|
110
|
+
Getting Started
|
109
111
|
|
110
112
|
</a>
|
111
113
|
|
@@ -113,12 +115,12 @@
|
|
113
115
|
|
114
116
|
</li>
|
115
117
|
|
116
|
-
<li class="chapter
|
118
|
+
<li class="chapter " data-level="1.3" data-path="install.html">
|
117
119
|
|
118
|
-
<a href="
|
120
|
+
<a href="install.html">
|
119
121
|
|
120
122
|
|
121
|
-
|
123
|
+
Install
|
122
124
|
|
123
125
|
</a>
|
124
126
|
|
@@ -192,7 +194,33 @@
|
|
192
194
|
|
193
195
|
</li>
|
194
196
|
|
195
|
-
<li class="chapter " data-level="1.4.5" data-path="../api/
|
197
|
+
<li class="chapter " data-level="1.4.5" data-path="../api/pure_component.html">
|
198
|
+
|
199
|
+
<a href="../api/pure_component.html">
|
200
|
+
|
201
|
+
|
202
|
+
Ovto::PureComponent
|
203
|
+
|
204
|
+
</a>
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
</li>
|
209
|
+
|
210
|
+
<li class="chapter " data-level="1.4.6" data-path="../api/middleware.html">
|
211
|
+
|
212
|
+
<a href="../api/middleware.html">
|
213
|
+
|
214
|
+
|
215
|
+
Ovto::Middleware
|
216
|
+
|
217
|
+
</a>
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
</li>
|
222
|
+
|
223
|
+
<li class="chapter " data-level="1.4.7" data-path="../api/fetch.html">
|
196
224
|
|
197
225
|
<a href="../api/fetch.html">
|
198
226
|
|
@@ -304,50 +332,51 @@
|
|
304
332
|
<p>This is a tutorial of making an Ovto app. We create a static app (.html + .js) here,
|
305
333
|
but you can embed Ovto apps into a Rails or Sinatra app (See <code>./examples/*</code>).</p>
|
306
334
|
<p>This is the final Ruby code.</p>
|
307
|
-
<pre><code>require
|
308
|
-
|
309
|
-
class MyApp < Ovto::App
|
310
|
-
class State < Ovto::State
|
311
|
-
item
|
312
|
-
|
313
|
-
def fahrenheit
|
314
|
-
(celsius * 9 / 5.0) + 32
|
315
|
-
end
|
316
|
-
end
|
317
|
-
|
318
|
-
class Actions < Ovto::Actions
|
319
|
-
def set_celsius(value
|
320
|
-
return {celsius
|
321
|
-
end
|
322
|
-
|
323
|
-
def set_fahrenheit(value
|
324
|
-
new_celsius = (value - 32) * 5 / 9.0
|
325
|
-
return {celsius
|
326
|
-
end
|
327
|
-
end
|
328
|
-
|
329
|
-
class MainComponent < Ovto::Component
|
330
|
-
def render
|
331
|
-
o
|
332
|
-
o
|
333
|
-
o
|
334
|
-
type
|
335
|
-
onchange
|
336
|
-
value
|
335
|
+
<pre><code class="lang-rb"><span class="hljs-keyword">require</span> <span class="hljs-string">'ovto'</span>
|
336
|
+
|
337
|
+
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MyApp</span> < Ovto::App</span>
|
338
|
+
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">State</span> < Ovto::State</span>
|
339
|
+
item <span class="hljs-symbol">:celsius</span>, <span class="hljs-symbol">default:</span> <span class="hljs-number">0</span>
|
340
|
+
|
341
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">fahrenheit</span></span>
|
342
|
+
(celsius * <span class="hljs-number">9</span> / <span class="hljs-number">5.0</span>) + <span class="hljs-number">32</span>
|
343
|
+
<span class="hljs-keyword">end</span>
|
344
|
+
<span class="hljs-keyword">end</span>
|
345
|
+
|
346
|
+
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Actions</span> < Ovto::Actions</span>
|
347
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">set_celsius</span><span class="hljs-params">(<span class="hljs-symbol">value:</span>)</span></span>
|
348
|
+
<span class="hljs-keyword">return</span> {<span class="hljs-symbol">celsius:</span> value}
|
349
|
+
<span class="hljs-keyword">end</span>
|
350
|
+
|
351
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">set_fahrenheit</span><span class="hljs-params">(<span class="hljs-symbol">value:</span>)</span></span>
|
352
|
+
new_celsius = (value - <span class="hljs-number">32</span>) * <span class="hljs-number">5</span> / <span class="hljs-number">9.0</span>
|
353
|
+
<span class="hljs-keyword">return</span> {<span class="hljs-symbol">celsius:</span> new_celsius}
|
354
|
+
<span class="hljs-keyword">end</span>
|
355
|
+
<span class="hljs-keyword">end</span>
|
356
|
+
|
357
|
+
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MainComponent</span> < Ovto::Component</span>
|
358
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">render</span></span>
|
359
|
+
o <span class="hljs-string">'div'</span> <span class="hljs-keyword">do</span>
|
360
|
+
o <span class="hljs-string">'span'</span>, <span class="hljs-string">'Celcius:'</span>
|
361
|
+
o <span class="hljs-string">'input'</span>, {
|
362
|
+
<span class="hljs-symbol">type:</span> <span class="hljs-string">'text'</span>,
|
363
|
+
<span class="hljs-symbol">onchange:</span> ->(e){ actions.set_celsius(<span class="hljs-symbol">value:</span> e.target.value.to_i) },
|
364
|
+
<span class="hljs-symbol">value:</span> state.celsius
|
337
365
|
}
|
338
|
-
o
|
339
|
-
o
|
340
|
-
type
|
341
|
-
onchange
|
342
|
-
value
|
366
|
+
o <span class="hljs-string">'span'</span>, <span class="hljs-string">'Fahrenheit:'</span>
|
367
|
+
o <span class="hljs-string">'input'</span>, {
|
368
|
+
<span class="hljs-symbol">type:</span> <span class="hljs-string">'text'</span>,
|
369
|
+
<span class="hljs-symbol">onchange:</span> ->(e){ actions.set_fahrenheit(<span class="hljs-symbol">value:</span> e.target.value.to_i) },
|
370
|
+
<span class="hljs-symbol">value:</span> state.fahrenheit
|
343
371
|
}
|
344
|
-
end
|
345
|
-
end
|
346
|
-
end
|
347
|
-
end
|
372
|
+
<span class="hljs-keyword">end</span>
|
373
|
+
<span class="hljs-keyword">end</span>
|
374
|
+
<span class="hljs-keyword">end</span>
|
375
|
+
<span class="hljs-keyword">end</span>
|
348
376
|
|
349
|
-
MyApp.run(id
|
350
|
-
</code></pre
|
377
|
+
MyApp.run(<span class="hljs-symbol">id:</span> <span class="hljs-string">'ovto'</span>)
|
378
|
+
</code></pre>
|
379
|
+
<p>Let's take a look step-by-step.</p>
|
351
380
|
<h2 id="prerequisites">Prerequisites</h2>
|
352
381
|
<ul>
|
353
382
|
<li>Ruby</li>
|
@@ -355,10 +384,11 @@ MyApp.run(id: 'ovto')
|
|
355
384
|
</ul>
|
356
385
|
<h2 id="setup">Setup</h2>
|
357
386
|
<p>Make a Gemfile:</p>
|
358
|
-
<pre><code>source
|
359
|
-
gem
|
360
|
-
gem
|
361
|
-
</code></pre
|
387
|
+
<pre><code class="lang-rb">source <span class="hljs-string">"https://rubygems.org"</span>
|
388
|
+
gem <span class="hljs-string">"ovto"</span>, <span class="hljs-symbol">github:</span> <span class="hljs-string">'yhara/ovto'</span> <span class="hljs-comment"># Use git master because ovto gem is not released yet</span>
|
389
|
+
gem <span class="hljs-string">'rake'</span>
|
390
|
+
</code></pre>
|
391
|
+
<p>Run <code>bundle install</code>.</p>
|
362
392
|
<h2 id="html">HTML</h2>
|
363
393
|
<p>Make an index.html:</p>
|
364
394
|
<pre><code class="lang-html"><span class="hljs-meta"><!doctype html></span>
|
@@ -450,17 +480,18 @@ convert.</p>
|
|
450
480
|
<span class="hljs-keyword">end</span>
|
451
481
|
</code></pre>
|
452
482
|
<p>Now you can know the value by <code>state.fahrenheit</code>. Update <code>MainComponent</code> to show the value too.</p>
|
453
|
-
<pre><code> class MainComponent < Ovto::Component
|
454
|
-
def render
|
455
|
-
o
|
456
|
-
o
|
457
|
-
o
|
458
|
-
o
|
459
|
-
o
|
460
|
-
end
|
461
|
-
end
|
462
|
-
end
|
463
|
-
</code></pre
|
483
|
+
<pre><code class="lang-rb"> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MainComponent</span> < Ovto::Component</span>
|
484
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">render</span></span>
|
485
|
+
o <span class="hljs-string">'div'</span> <span class="hljs-keyword">do</span>
|
486
|
+
o <span class="hljs-string">'span'</span>, <span class="hljs-string">'Celcius:'</span>
|
487
|
+
o <span class="hljs-string">'input'</span>, <span class="hljs-symbol">type:</span> <span class="hljs-string">'text'</span>, <span class="hljs-symbol">value:</span> state.celsius
|
488
|
+
o <span class="hljs-string">'span'</span>, <span class="hljs-string">'Fahrenheit:'</span>
|
489
|
+
o <span class="hljs-string">'input'</span>, <span class="hljs-symbol">type:</span> <span class="hljs-string">'text'</span>, <span class="hljs-symbol">value:</span> state.fahrenheit
|
490
|
+
<span class="hljs-keyword">end</span>
|
491
|
+
<span class="hljs-keyword">end</span>
|
492
|
+
<span class="hljs-keyword">end</span>
|
493
|
+
</code></pre>
|
494
|
+
<h2 id="add-an-action">Add an action</h2>
|
464
495
|
<p>Now we know 0 degrees Celsius is 32 degrees Fahrenheit. But how about 10 degrees or
|
465
496
|
100 degrees Celsius? Let's update the app to we can specify a Celsius value.</p>
|
466
497
|
<p>You may think that you can change the value with <code>state.celsius = 100</code>, but this is
|
@@ -546,11 +577,15 @@ Fahrenheit degree into Celsius and set it to the global state.</p>
|
|
546
577
|
|
547
578
|
|
548
579
|
|
549
|
-
<a href="../" class="navigation navigation-prev
|
580
|
+
<a href="../" class="navigation navigation-prev " aria-label="Previous page: Introduction">
|
550
581
|
<i class="fa fa-angle-left"></i>
|
551
582
|
</a>
|
552
583
|
|
553
584
|
|
585
|
+
<a href="install.html" class="navigation navigation-next " aria-label="Next page: Install">
|
586
|
+
<i class="fa fa-angle-right"></i>
|
587
|
+
</a>
|
588
|
+
|
554
589
|
|
555
590
|
|
556
591
|
</div>
|
@@ -558,7 +593,7 @@ Fahrenheit degree into Celsius and set it to the global state.</p>
|
|
558
593
|
<script>
|
559
594
|
var gitbook = gitbook || [];
|
560
595
|
gitbook.push(function() {
|
561
|
-
gitbook.page.hasChanged({"page":{"title":"Getting Started","level":"1.
|
596
|
+
gitbook.page.hasChanged({"page":{"title":"Getting Started","level":"1.2","depth":1,"next":{"title":"Install","level":"1.3","depth":1,"path":"guides/install.md","ref":"guides/install.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"readme.md","ref":"readme.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"guides/tutorial.md","mtime":"2019-04-19T07:38:37.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2020-02-29T14:26:27.632Z"},"basePath":"..","book":{"language":""}});
|
562
597
|
});
|
563
598
|
</script>
|
564
599
|
</div>
|
data/docs/index.html
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
<title>Introduction · GitBook</title>
|
8
8
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
9
9
|
<meta name="description" content="">
|
10
|
-
<meta name="generator" content="GitBook 3.2.
|
10
|
+
<meta name="generator" content="GitBook 3.2.2">
|
11
11
|
|
12
12
|
|
13
13
|
|
@@ -60,8 +60,6 @@
|
|
60
60
|
<link rel="next" href="guides/tutorial.html" />
|
61
61
|
|
62
62
|
|
63
|
-
<link rel="prev" href="./" />
|
64
|
-
|
65
63
|
|
66
64
|
</head>
|
67
65
|
<body>
|
@@ -89,7 +87,7 @@
|
|
89
87
|
|
90
88
|
|
91
89
|
|
92
|
-
<li class="chapter " data-level="1.1" data-path="./">
|
90
|
+
<li class="chapter active" data-level="1.1" data-path="./">
|
93
91
|
|
94
92
|
<a href="./">
|
95
93
|
|
@@ -102,12 +100,12 @@
|
|
102
100
|
|
103
101
|
</li>
|
104
102
|
|
105
|
-
<li class="chapter
|
103
|
+
<li class="chapter " data-level="1.2" data-path="guides/tutorial.html">
|
106
104
|
|
107
|
-
<a href="
|
105
|
+
<a href="guides/tutorial.html">
|
108
106
|
|
109
107
|
|
110
|
-
|
108
|
+
Getting Started
|
111
109
|
|
112
110
|
</a>
|
113
111
|
|
@@ -115,12 +113,12 @@
|
|
115
113
|
|
116
114
|
</li>
|
117
115
|
|
118
|
-
<li class="chapter " data-level="1.3" data-path="guides/
|
116
|
+
<li class="chapter " data-level="1.3" data-path="guides/install.html">
|
119
117
|
|
120
|
-
<a href="guides/
|
118
|
+
<a href="guides/install.html">
|
121
119
|
|
122
120
|
|
123
|
-
|
121
|
+
Install
|
124
122
|
|
125
123
|
</a>
|
126
124
|
|
@@ -194,7 +192,33 @@
|
|
194
192
|
|
195
193
|
</li>
|
196
194
|
|
197
|
-
<li class="chapter " data-level="1.4.5" data-path="api/
|
195
|
+
<li class="chapter " data-level="1.4.5" data-path="api/pure_component.html">
|
196
|
+
|
197
|
+
<a href="api/pure_component.html">
|
198
|
+
|
199
|
+
|
200
|
+
Ovto::PureComponent
|
201
|
+
|
202
|
+
</a>
|
203
|
+
|
204
|
+
|
205
|
+
|
206
|
+
</li>
|
207
|
+
|
208
|
+
<li class="chapter " data-level="1.4.6" data-path="api/middleware.html">
|
209
|
+
|
210
|
+
<a href="api/middleware.html">
|
211
|
+
|
212
|
+
|
213
|
+
Ovto::Middleware
|
214
|
+
|
215
|
+
</a>
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
</li>
|
220
|
+
|
221
|
+
<li class="chapter " data-level="1.4.7" data-path="api/fetch.html">
|
198
222
|
|
199
223
|
<a href="api/fetch.html">
|
200
224
|
|
@@ -342,12 +366,8 @@
|
|
342
366
|
|
343
367
|
|
344
368
|
|
345
|
-
<a href="./" class="navigation navigation-prev " aria-label="Previous page: Introduction">
|
346
|
-
<i class="fa fa-angle-left"></i>
|
347
|
-
</a>
|
348
|
-
|
349
369
|
|
350
|
-
<a href="guides/tutorial.html" class="navigation navigation-next " aria-label="Next page: Getting Started">
|
370
|
+
<a href="guides/tutorial.html" class="navigation navigation-next navigation-unique" aria-label="Next page: Getting Started">
|
351
371
|
<i class="fa fa-angle-right"></i>
|
352
372
|
</a>
|
353
373
|
|
@@ -358,7 +378,7 @@
|
|
358
378
|
<script>
|
359
379
|
var gitbook = gitbook || [];
|
360
380
|
gitbook.push(function() {
|
361
|
-
gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.
|
381
|
+
gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"Getting Started","level":"1.2","depth":1,"path":"guides/tutorial.md","ref":"guides/tutorial.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"readme.md","mtime":"2018-12-23T17:33:22.000Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2020-02-29T14:26:27.632Z"},"basePath":".","book":{"language":""}});
|
362
382
|
});
|
363
383
|
</script>
|
364
384
|
</div>
|
data/docs/ovtologo.png
ADDED
Binary file
|