forked from easychen/lean-side-bussiness
-
Notifications
You must be signed in to change notification settings - Fork 0
/
040212.html
242 lines (218 loc) · 25.9 KB
/
040212.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
<!DOCTYPE HTML>
<html lang="zh-cn" class="sidebar-visible no-js light">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>屏幕录制类课程片段的制作 - 精益副业</title>
<!-- Custom HTML head -->
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff" />
<link rel="icon" href="favicon.svg">
<link rel="shortcut icon" href="favicon.png">
<link rel="stylesheet" href="css/variables.css">
<link rel="stylesheet" href="css/general.css">
<link rel="stylesheet" href="css/chrome.css">
<link rel="stylesheet" href="css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="highlight.css">
<link rel="stylesheet" href="tomorrow-night.css">
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
<body>
<!-- Provide site root to javascript -->
<script type="text/javascript">
var path_to_root = "";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "navy" : "light";
</script>
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
html.classList.remove('light')
html.classList.add(theme);
html.classList.add('js');
</script>
<!-- Hide / unhide sidebar before it is displayed -->
<script type="text/javascript">
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<div class="sidebar-scrollbox">
<ol class="chapter"><li class="chapter-item expanded "><a href="index.html"><strong aria-hidden="true">1.</strong> 精益副业</a></li><li class="chapter-item expanded "><a href="01.html"><strong aria-hidden="true">2.</strong> 为什么副业特别重要</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="0101.html"><strong aria-hidden="true">2.1.</strong> 职业可能性</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="010101.html"><strong aria-hidden="true">2.1.1.</strong> 职业的四大象限</a></li><li class="chapter-item expanded "><a href="010102.html"><strong aria-hidden="true">2.1.2.</strong> 没有副业的职业</a></li><li class="chapter-item expanded "><a href="010103.html"><strong aria-hidden="true">2.1.3.</strong> 副业带来的可能性</a></li></ol></li><li class="chapter-item expanded "><a href="0102.html"><strong aria-hidden="true">2.2.</strong> 职业自由度</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="010201.html"><strong aria-hidden="true">2.2.1.</strong> 从中指备用金说起</a></li><li class="chapter-item expanded "><a href="010202.html"><strong aria-hidden="true">2.2.2.</strong> PlanB和反脆弱</a></li><li class="chapter-item expanded "><a href="010203.html"><strong aria-hidden="true">2.2.3.</strong> 全新的工作自由度</a></li></ol></li><li class="chapter-item expanded "><a href="0103.html"><strong aria-hidden="true">2.3.</strong> 职业成长性</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="010301A.html"><strong aria-hidden="true">2.3.1.</strong> 新技术练兵场</a></li><li class="chapter-item expanded "><a href="010302.html"><strong aria-hidden="true">2.3.2.</strong> 业务敏感度</a></li></ol></li></ol></li><li class="chapter-item expanded "><a href="02.html"><strong aria-hidden="true">3.</strong> 如何优雅地做副业</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="0201.html"><strong aria-hidden="true">3.1.</strong> 想明白核心资源和核心优势</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="020101.html"><strong aria-hidden="true">3.1.1.</strong> 副业的核心资源</a></li><li class="chapter-item expanded "><a href="020102.html"><strong aria-hidden="true">3.1.2.</strong> 副业的核心优势</a></li></ol></li><li class="chapter-item expanded "><a href="0202.html"><strong aria-hidden="true">3.2.</strong> 时间片</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="020201.html"><strong aria-hidden="true">3.2.1.</strong> 时间片的销售</a></li><li class="chapter-item expanded "><a href="020202.html"><strong aria-hidden="true">3.2.2.</strong> 时间片的优化</a></li><li class="chapter-item expanded "><a href="020203.html"><strong aria-hidden="true">3.2.3.</strong> 突破时间片限制</a></li></ol></li><li class="chapter-item expanded "><a href="0203.html"><strong aria-hidden="true">3.3.</strong> 资产和被动收入</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="020301.html"><strong aria-hidden="true">3.3.1.</strong> 什么是资产</a></li><li class="chapter-item expanded "><a href="020302.html"><strong aria-hidden="true">3.3.2.</strong> 资产的获得方式</a></li><li class="chapter-item expanded "><a href="020303.html"><strong aria-hidden="true">3.3.3.</strong> 资产的量化评估</a></li></ol></li></ol></li><li class="chapter-item expanded "><a href="03.html"><strong aria-hidden="true">4.</strong> 优选资产</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="0301.html"><strong aria-hidden="true">4.1.</strong> 知识和人脉的变现</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="030101.html"><strong aria-hidden="true">4.1.1.</strong> 付费视频课</a></li><li class="chapter-item expanded "><a href="030102.html"><strong aria-hidden="true">4.1.2.</strong> 付费专栏</a></li><li class="chapter-item expanded "><a href="030103.html"><strong aria-hidden="true">4.1.3.</strong> 付费社群</a></li><li class="chapter-item expanded "><a href="030104.html"><strong aria-hidden="true">4.1.4.</strong> 图书出版</a></li></ol></li><li class="chapter-item expanded "><a href="0302.html"><strong aria-hidden="true">4.2.</strong> 自有产品和服务</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="030201.html"><strong aria-hidden="true">4.2.1.</strong> 应用市场卖APP</a></li></ol></li></ol></li><li class="chapter-item expanded "><a href="04.html"><strong aria-hidden="true">5.</strong> 精益副业</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="0401.html"><strong aria-hidden="true">5.1.</strong> 精益副业流程</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="040104.html"><strong aria-hidden="true">5.1.1.</strong> 商业模式画布</a></li><li class="chapter-item expanded "><a href="040105.html"><strong aria-hidden="true">5.1.2.</strong> 最小可行产品和产品市场契合</a></li></ol></li><li class="chapter-item expanded "><a href="0403.html"><strong aria-hidden="true">5.2.</strong> 精益独立开发实践</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="040301.html"><strong aria-hidden="true">5.2.1.</strong> 独立开发的精益流程</a></li><li class="chapter-item expanded "><a href="040302.html"><strong aria-hidden="true">5.2.2.</strong> 福利单词项目简介</a></li><li class="chapter-item expanded "><a href="040303.html"><strong aria-hidden="true">5.2.3.</strong> 福利单词的商业模式画布</a></li><li class="chapter-item expanded "><a href="040304.html"><strong aria-hidden="true">5.2.4.</strong> 通过用户画像细化客户</a></li><li class="chapter-item expanded "><a href="040305.html"><strong aria-hidden="true">5.2.5.</strong> 画像→场景→功能和分期</a></li><li class="chapter-item expanded "><a href="040306.html"><strong aria-hidden="true">5.2.6.</strong> 什么是好的商业设计</a></li><li class="chapter-item expanded "><a href="040307.html"><strong aria-hidden="true">5.2.7.</strong> 人人能用的四大原则</a></li><li class="chapter-item expanded "><a href="040308.html"><strong aria-hidden="true">5.2.8.</strong> 独特Logo解决方案</a></li><li class="chapter-item expanded "><a href="040309.html"><strong aria-hidden="true">5.2.9.</strong> 使用AdobeXD设计界面</a></li><li class="chapter-item expanded "><a href="040310.html"><strong aria-hidden="true">5.2.10.</strong> 个人支付解决方案</a></li><li class="chapter-item expanded "><a href="040311.html"><strong aria-hidden="true">5.2.11.</strong> 使用「兔小巢」处理用户反馈</a></li><li class="chapter-item expanded "><a href="040312.html"><strong aria-hidden="true">5.2.12.</strong> 2A3R漏斗和增长优化</a></li></ol></li><li class="chapter-item expanded "><a href="0402.html"><strong aria-hidden="true">5.3.</strong> 精益网课变现实践</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="040207.html"><strong aria-hidden="true">5.3.1.</strong> 大纲的注意点</a></li><li class="chapter-item expanded "><a href="040209.html"><strong aria-hidden="true">5.3.2.</strong> 通过预售验证销量</a></li><li class="chapter-item expanded "><a href="040210.html"><strong aria-hidden="true">5.3.3.</strong> 常见的课程片段类型</a></li><li class="chapter-item expanded "><a href="040211.html"><strong aria-hidden="true">5.3.4.</strong> 文稿讲义类课程片段的制作</a></li><li class="chapter-item expanded "><a href="040212.html" class="active"><strong aria-hidden="true">5.3.5.</strong> 屏幕录制类课程片段的制作</a></li><li class="chapter-item expanded "><a href="040213.html"><strong aria-hidden="true">5.3.6.</strong> 真人出镜类课程片段的制作</a></li><li class="chapter-item expanded "><a href="040214.html"><strong aria-hidden="true">5.3.7.</strong> 虚拟形象类课程片段的制作</a></li><li class="chapter-item expanded "><a href="040215.html"><strong aria-hidden="true">5.3.8.</strong> 最常用的视频剪辑操作</a></li><li class="chapter-item expanded "><a href="040216.html"><strong aria-hidden="true">5.3.9.</strong> 最常用的音频处理操作</a></li><li class="chapter-item expanded "><a href="040217.html"><strong aria-hidden="true">5.3.10.</strong> 字幕的制作和自动生成</a></li><li class="chapter-item expanded "><a href="040218.html"><strong aria-hidden="true">5.3.11.</strong> 流量池和二次购买</a></li><li class="chapter-item expanded "><a href="040219.html"><strong aria-hidden="true">5.3.12.</strong> 如何有效地反盗版</a></li></ol></li><li class="chapter-item expanded "><a href="0404.html"><strong aria-hidden="true">5.4.</strong> 进一步提升副业的鲁棒性</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="040401.html"><strong aria-hidden="true">5.4.1.</strong> 网课+独立开发的双引擎副业模式</a></li></ol></li></ol></li></ol>
</div>
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky bordered">
<div class="left-buttons">
<button id="sidebar-toggle" class="icon-button" type="button" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</button>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light (default)</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">精益副业</h1>
<div class="right-buttons">
<a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script type="text/javascript">
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="屏幕录制类课程片段的制作"><a class="header" href="#屏幕录制类课程片段的制作">屏幕录制类课程片段的制作</a></h1>
<h2 id="屏幕录制的原理"><a class="header" href="#屏幕录制的原理">屏幕录制的原理</a></h2>
<p>屏幕录制软件的原理,是不停地截取屏幕画面,然后和音频合成为最终视频。屏幕录制的优点是可以把电脑屏幕上显示的所有东西都录下来,不管你在哪个应用里边,不受应用本身功能的限制。所以可以非常直观地向学员展示完整的操作。</p>
<h2 id="屏幕录制的软件"><a class="header" href="#屏幕录制的软件">屏幕录制的软件</a></h2>
<p>在试用了很多屏幕录制软件以后,我们选择了 OBS 。它的优点主要有:</p>
<ol>
<li>功能强大</li>
<li>开源免费</li>
<li>跨平台</li>
</ol>
<h3 id="功能强大"><a class="header" href="#功能强大">功能强大</a></h3>
<p>OBS 不但可以录制屏幕,还有一个非常强大的功能就是直播。现在很多视频网站的直播都支持用 OBS 来进行推流。所以学会了它,不但可以录制屏幕,而且可以进行直播,一箭双雕、非常划算。</p>
<p>然后,OBS 可以非常容易地进行屏幕之间的叠加,比如画中画模式,这就非常适合我们马上要讲到的「真人出镜」和「虚拟形象」类型的课程片段。</p>
<p>同时呢,OBS 还支持通过快捷键在各个场景之间来回切换,在录制课程的时候可以非常方便的进行转场,这个功能不少收费软件都没有。</p>
<h3 id="开源免费"><a class="header" href="#开源免费">开源免费</a></h3>
<p>和那些昂贵的收费软件不同,OBS 是开源而且免费的,这意味着使用它没有任何版权风险。我们在制作付费课程的时候,需要特别留意版权方面的问题。因为平时以个人身份在免费文章和视频中用一些字体、图片是没问题的;但在收费的商业课程中,就可能面临被起诉索赔的风险。</p>
<h3 id="跨平台"><a class="header" href="#跨平台">跨平台</a></h3>
<p>再来说一下,为什么跨平台的特性非常重要。在课程中,尤其是编程类课程中,我们经常会遇到需要讲解某个工具软件在各个操作系统上的安装和使用的情况,这时候就需要在多个平台上录屏。</p>
<p>如果使用一个特有平台上的录屏软件,在录制其他平台上的课程内容时,就不能使用了。只能重新购买和学习一个新的录屏软件。这不但浪费钱,更浪费时间和精力。</p>
<p>而使用 OBS 就没有这种困扰,它不但支持 Windows 和 Mac 系统,连主流 Linux 系统都是支持的。</p>
<p>所以,在我们后续课程中,将以 OBS 为例进行讲解。</p>
<h2 id="obs-的层次逻辑"><a class="header" href="#obs-的层次逻辑">OBS 的层次逻辑</a></h2>
<p>OBS 的功能非常强大,还有包含了直播相关的功能,所以需要理解它特有的一些概念后,用起来才会更加顺手。</p>
<p>像一般的屏幕录制软件,只需要启动后点击录制按钮,进行录制就完了。但 OBS 中,它有自己的层次逻辑。</p>
<p><img src="images/fe7d68123882cd29c483d63148609c52c3e2819f350c0ff110e4c8cc0c32647f.png" alt="picture 73" /></p>
<h3 id="场景"><a class="header" href="#场景">场景</a></h3>
<p>OBS 的第一个层次叫做「场景」,你可以把它理解为一种预设。</p>
<p>为什么需要场景?比如我们一个讲师,他每天上午要进行直播,这个时候视频的来源是摄像头和电脑屏幕;然后他每天下午要录制课程,这时视频的来源就只需要电脑屏幕,但他有两块屏幕,他希望都录进去。</p>
<p>如果没有场景这个概念,那我们每天上午到下午的时候,就需要不停的修改配置,非常麻烦。而有了场景以后,我们只需要把上午和下午定义成两个场景,使用的时候切换下就OK了。</p>
<p>你可能会想为什么要叫「场景」而不是直接叫「预设」呢?因为 OBS 中场景比预设更为常用和强大,它是可以实时切换的。</p>
<p>也就是说,如果我们有三个显示器ABC,可以在场景一里显示A;在场景二中显示BC;然后根据需求通过键盘快捷键来切换,甚至还能给它添加转场特效。</p>
<h3 id="来源"><a class="header" href="#来源">来源</a></h3>
<p><img src="images/c3487826ec95078a4402aa2385f0c298a0592022125125ff74d13800b61c1912.png" alt="picture 74" /></p>
<p>在定义好「场景」以后,就可以往里面添加「来源」。最常用的来源其实就两类,也就是视频和音频。视频最主要的是显示器,也就是电脑屏幕,偶尔还有摄像头。音频的话主要就是麦克风。</p>
<p><img src="images/b48a709dcb64709426028df2286538024e9d87ade24217508db8dda346f79c4a.png" alt="picture 75" /> </p>
<p>来看一下 OBS 的来源菜单。</p>
<p>首先它提供了「图像」和「图像幻灯片放映」,如果我们想在视频上面显示一张固定的图片或者图片轮播可以用它。</p>
<p>比较有意思的是,我们还可以把一个场景指定为来源,这样就可以非常容易地实现场景嵌套。也可以把媒体作为一个来源,这样就会在画面上面播放另外一个视频。</p>
<p>文本来源这里可以输入一些文字,指定它的颜色、字号和字体,然后它就会显示到屏幕上方。可用来显示我们机构的品牌名称之类的。可以看到,一些本来是后期才进行处理的功能,在 OBS 里都可以通过来源来实现。</p>
<p>显示器采集也就是我们的屏幕;视频采集设备通常就是指摄像头;音频输入采集这里通常就是耳机、麦克风或者外接的USB声卡之类。</p>
<p>这里还有一个音频输出采集,可以用来做多层次的音频加工。比如说我们电脑上有一个软件,就像柯南的蝴蝶结一样,可以对输入的声音进行变声,那我们就可以把这个软件的输出作为来源接入到 OBS 里边,录制下来的声音就是变声后的效果。</p>
<h3 id="来源的层次"><a class="header" href="#来源的层次">来源的层次</a></h3>
<p>在多个来源之间,其实是有上下层级的概念的。打开 OBS 的来源小窗口,我们可以看见当前已经添加的所有来源。</p>
<p>来源是从上至下进行覆盖的。也就是说来源窗口的最上边一层,在最终视频中也会显示到最上面,上一层的内容会压住下边各层的内容。</p>
<p><img src="images/884e244f190702f1689ea4861962d1b910169673f70f4b17a663a57c26c8273d.png" alt="picture 77" /></p>
<p>这个对于我们制作真人出镜类型的课程片段很重要,因为它通常是通过摄像头和显示器两个来源叠加得到的。摄像头的画面小、通常显示在右下角;显示器的画面大,往往覆盖整个视频画面。在来源窗口里,摄像头需要在显示器上层才看得见,不然会被显示器画面完全挡住。</p>
<h3 id="滤镜"><a class="header" href="#滤镜">滤镜</a></h3>
<p><img src="images/9a0f431f3b458776b65e37def67af4ad744972b41c994217c04b5146e82cc9bd.png" alt="picture 78" /></p>
<p>如果通过来源采集的信息不是百分之百符合我们的需求,还可以通过滤镜来进行进一步加工。OBS带有两类滤镜,一类叫做「音视频滤镜」,可以对音视频进行处理,比如进行噪音的抑制或者把音量放大;另一类叫「效果滤镜」,包括各种各样的特效,比如「色度键」可以用来抠背景。</p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="040211.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next" href="040213.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="040211.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next" href="040213.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<!-- Livereload script (if served using the cli tool) -->
<script type="text/javascript">
var socket = new WebSocket("ws://localhost:3000/__livereload");
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};
window.onbeforeunload = function() {
socket.close();
}
</script>
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="elasticlunr.min.js" type="text/javascript" charset="utf-8"></script>
<script src="mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="searcher.js" type="text/javascript" charset="utf-8"></script>
<script src="clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="book.js" type="text/javascript" charset="utf-8"></script>
<!-- Custom JS scripts -->
</body>
</html>