Hexo添加Scratch Block.js

本文最后更新于:1 个月前

感谢Frank_782

  1. https://scratchblocks.github.io/js/scratchblocks-v3.4-min.js下载js

并放入hexo\theme\主题文件夹\source\js

  1. 修改jquery为国内cdn

hexo\theme\主题文件夹\layout\_partialscript.ejsafter-footer.ejs

//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js

替换为https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js

  1. hexo\theme\主题文件夹\layout\_partialscript.ejsafter-footer.ejs内引入scratchblocks-v3.4-min.js
1
<%- js('js/scratchblocks-v3.4-min') %>

  1. 修改hexo\themes\主题文件夹\source\js\script.js

在末尾添加

1
2
3
scratchblocks.renderMatching('pre.blocks', {
style:'scratch3'
})

  1. 完工

现在刷新您的hexo博客 就会发现已经能正常显示了

附赠一篇scratch blocks教程 可以用来测试您的hexo是否正常显示scratch blocks

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
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
有喜欢的就复制走吧,已把canvas扩展复刻完

Made by [森林公园](https://aerfaying.com/Users/1089631)

# ⚠️可能有些错误,敬请谅解

<pre class='blocks'>
当@greenFlag被点击时::events hat
在((2::list)+(3::variables)::operators)秒内滑行到(随机位置 v)::motion//我是注释
</pre>

## 运动

<pre class='blocks'>
移动(10)步::motion//移动(10)步::motion
右转@turnRight(15)度::motion//右转@turnRight(15)度::motion
左转@turnLeft(15)度::motion//左转@turnLeft(15)度::motion
移到(随机位置 v)::motion//移到(随机位置 v)::motion
移到 x:(0)y:(0)::motion//移到 x:(0)y:(0)::motion
在(1)秒内滑行到(随机位置 v)::motion//在(1)秒内滑行到(随机位置 v)::motion
在(1)秒内滑行到 x:(0)y:(0)::motion//在(1)秒内滑行到 x:(0)y:(0)::motion
面向(90)方向::motion//面向(90)方向::motion
面向(鼠标指针 v)::motion//面向(鼠标指针 v)::motion
将x坐标增加(10)::motion//将x坐标增加(10)::motion
将x坐标设为(0)::motion//将x坐标设为(0)::motion
将y坐标增加(10)::motion//将y坐标增加(10)::motion
将y坐标设为(0)::motion//将y坐标设为(0)::motion
碰到边缘就反弹::motion//碰到边缘就反弹::motion
将旋转方式设为[左右翻转 v]::motion//将旋转方式设为[左右翻转 v]::motion
x 坐标::reporter motion//x 坐标::reporter motion
y 坐标::reporter motion//y 坐标::reporter motion
方向::reporter motion//方向::reporter motion
</pre>

## 外观

<pre class='blocks'>
说[你好!](2)秒::looks//说[你好!](2)秒::looks
说[你好!]::looks//说[你好!]::looks
思考[嗯……](2)秒::looks//思考[嗯……](2)秒::looks
思考[嗯……]::looks//思考[嗯……]::looks
换成(造型1 v)造型::looks//换成(造型1 v)造型::looks
下一个造型::looks//下一个造型::looks
换成(背景1 v)背景::looks//换成(背景1 v)背景::looks
下一个背景::looks//下一个背景::looks
将大小增加(10)::looks//将大小增加(10)::looks
将大小设为(100)::looks//将大小设为(100)::looks
将[颜色 v]特效增加(25)::looks//将[颜色 v]特效增加(25)::look
将[颜色 v]特效设为(0)::looks//将[颜色 v]特效设为(0)::looks
清除图形特效::looks//清除图形特效::looks
显示::looks//显示::looks
隐藏::looks//隐藏::looks
移到最[前面 v]::looks//移到最[前面 v]::looks
[前移 v](1)层::looks//[前移 v](1)层::looks
造型[编号 v]::reporter looks //造型[编号 v]::reporter looks
背景[编号 v]::reporter looks //背景[编号 v]::reporter looks
大小::reporter looks //大小::reporter looks
</pre>

## 声音

<pre class='blocks'>
播放声音(啵 v)等待播完::sound//播放声音(啵 v)等待播完::sound
播放声音(啵 v)::sound//播放声音(啵 v)::sound
停止所有声音::sound//停止所有声音::sound
将[音调 v]音效增加(10)::sound//将[音调 v]音效增加(10)::sound
将[音调 v]音效设为(10)::sound//将[音调 v]音效设为(10)::sound
清除音效::sound//清除音效::sound
将音量增加(-10)::sound//将音量增加(-10)::sound
将音量设为(100)%::sound//将音量设为(100)%::sound
音量::reporter sound//音量::reporter sound
</pre>

## 事件

<pre class='blocks'>
当@greenFlag被点击::hat events//当@greenFlag被点击::hat events
当按下[空格 v]键::hat events//当按下[空格 v]键::hat events
当角色被点击::hat events//当角色被点击::hat events
当背景换成[背景1 v]::hat events//当背景换成[背景1 v]::hat events
当[响度 v]>(10)::hat events//当[响度 v]>(10)::hat events
当接收到[消息1 v]::hat events//当接收到[消息1 v]::hat events
广播(消息1 v)::events//广播(消息1 v)::events
广播(消息1 v)并等待::events//广播(消息1 v)并等待::events
</pre>

## 控制

<pre class='blocks'>
等待(1)秒::control//等待(1)秒::control
重复执行(10)次{
}::loop control//重复执行(10)次{}::loop control
重复执行{
}::cap loop control//重复执行{}::cap loop control
如果<>那么{
}::control//如果<>那么{}::control
如果<>那么{
}否则{
}::control//如果<>那么{}否则{}::control
等待<>::control//等待<>::control
重复执行直到<>{
}::loop control//重复执行直到<>{}::loop control
停止[角色的其他脚本 v]::control//停止[角色的其他脚本 v]::control
停止[全部脚本 v]::cap control//停止[全部脚本 v]::cap control
当作为克隆体启动时::hat control//当作为克隆体启动时::hat control
克隆(自己 v)::control//克隆(自己 v)::control
删除此克隆体::cap control//删除此克隆体::cap control
</pre>

## 侦测

<pre class='blocks'>
碰到(鼠标指针 v)?::boolean sensing//碰到(鼠标指针 v)?::boolean sensing
碰到颜色[#ffffff]?::boolean sensing//碰到颜色[#ffffff]?::boolean sensing
颜色[#ffffff]碰到颜色[#ffffff]?::boolean sensing//颜色[#ffffff]碰到颜色[#ffffff]?::boolean sensing
到(鼠标指针 v)的距离::reporter sensing//到(鼠标指针 v)的距离::reporter sensing
询问[你叫什么名字]并等待::sensing//询问[你叫什么名字]并等待::sensing
回答::reporter sensing//回答::reporter sensing
按下(空格 v)键?::boolean sensing//按下(空格 v)键?::boolean sensing
按下鼠标?::boolean sensing//按下鼠标?::boolean sensing
鼠标的x坐标::reporter sensing//鼠标的x坐标::reporter sensing
鼠标的y坐标::reporter sensing//鼠标的y坐标::reporter sensing
将拖动模式设为[可拖动 v]::sensing//将拖动模式设为[可拖动 v]::sensing
响度::reporter sensing//响度::reporter sensing
计时器::reporter sensing//计时器::reporter sensing
计时器归零::sensing//计时器归零::sensing
(舞台 v)的(背景编号 v)::reporter sensing//(舞台 v)的(背景编号 v)::reporter sensing
当前的时间(年 v)::reporter sensing//当前的时间(年 v)::reporter sensing
2000年至今的天数::reporter sensing//2000年至今的天数::reporter sensing
用户名::reporter sensing//用户名::reporter sensing
</pre>

## 运算

<pre class='blocks'>
()+()::reporter operators//()+()::reporter operators
()-()::reporter operators//()-()::reporter operators
()*()::reporter operators//()*()::reporter operators
()/()::reporter operators//()/()::reporter operators
在(1)和(10)之间取随机数::reporter operators//在(1)和(10)之间取随机数::reporter operators
()>(50)::boolean operators//()>(50)::boolean operators
()<(50)::boolean operators//()<(50)::boolean operators
()=(50)::boolean operators//()=(50)::boolean operators
<>与<>::boolean operators//<>与<>::boolean operators
<>或<>::boolean operators//<>或<>::boolean operators
<>不成立::boolean operators//<>不成立::boolean operators
连接[苹果]和[香蕉]::reporter operators//连接[苹果]和[香蕉]::reporter operators
[苹果]的第(1)个字符::reporter operators//[苹果]的第(1)个字符::reporter operators
[苹果]的字符数::reporter operators//[苹果]的字符数::reporter operators
[苹果]包含[果]?::boolean operators//[苹果]包含[果]?::boolean operators
()除以()的余数::reporter operators//()除以()的余数::reporter operators
四舍五入()::reporter operators//四舍五入()::reporter operators
[绝对值 v]()::reporter operators//[绝对值 v]()::reporter operators
</pre>

## 变量

<pre class='blocks'>
i::reporter variables//i::reporter variables
将[i v]设为(0)::variables//将[i v]设为(0)::variables
将[i v]增加(1)::variables//将[i v]增加(1)::variables
显示变量[i v]::variables//显示变量[i v]::variables
隐藏变量[i v]::variables//隐藏变量[i v]::variables
load variables[i v]from[共享空间 v]::variables//load variables[i v]from[共享空间 v]::variables
save variables[i v]to[共享空间 v]::variables//save variables[i v]to[共享空间 v]::variables
l::reporter list//l::reporter list
将[东西]加入[l v]::list//将[东西]加入[l v]::list
删掉[l v]的第(1)项::list//删掉[l v]的第(1)项::list
删掉[l v]的全部项目::list//删掉[l v]的全部项目::list
[l v]的第(1)项::reporter list//[l v]的第(1)项::reporter list
[l v]中第一个[东西]的编号::reporter list//[l v]中第一个[东西]的编号::reporter list
[l v]的项目数::reporter list//[l v]的项目数::reporter list
[l v]包含[东西]?::boolean list//[l v]包含[东西]?::boolean list
显示列表[l v]::list//显示列表[l v]::list
隐藏列表[l v]::list//隐藏列表[l v]::list
load list[l v]from[共享空间 v]::list//load list[l v]from[共享空间 v]::list
save list[l v]to[共享空间 v]::list//save list[l v]to[共享空间 v]::list
</pre>

## 自制积木

<pre class='blocks'>
定义[例子1]::hat custom-arg//定义[例子1]::hat custom-arg
[例子1]::custom-arg//[例子1]::custom-arg
[例子1]::reporter custom-arg//[例子1]::reporter custom-arg
定义(例子2::custom-arg)::hat custom-arg//定义(例子2::custom-arg)::hat custom-arg
(例子2::custom-arg)::custom-arg//(例子2::custom-arg)::custom-arg
(例子2::custom-arg)//(例子2::custom-arg)
定义<例子3::custom-arg>::hat custom-arg//定义<例子3::custom-arg>::hat custom-arg
<例子3::custom-arg>::custom-arg//<例子3::custom-arg>::custom-arg
<例子3::custom-arg>//<例子3::custom-arg>
定义[例子4 v]::hat custom-arg//定义[例子4 v]::hat custom-arg
[例子4 v]::custom-arg//[例子4 v]::custom-arg
[例子4 v]::reporter custom-arg//[例子4 v]::reporter custom-arg
[例子4 v]::boolean custom-arg//[例子4 v]::boolean custom-arg
定义(例子5 v)::hat custom-arg/定义(例子5 v)::hat custom-arg
(例子5 v)::custom-arg//(例子5 v)::custom-arg
(例子5 v)::reporter custom-arg//(例子5 v)::reporter custom-arg
(例子5 v)::boolean custom-arg//(例子5 v)::boolean custom-arg
定义[#ffffff]::hat custom-arg//定义[#ffffff]::hat custom-arg
[#ffffff]::reporter custom-arg//[#ffffff]::reporter custom-arg
</pre>

## 音乐

<pre class='blocks'>
击打(\(1\) 小军鼓 v)(0.25)拍::music//击打(\(1\) 小军鼓 v)(0.25)拍::music
休止(0.25)拍::music//休止(0.25)拍::music
演奏音符(60)(0.25)拍::music//演奏音符(60)(0.25)拍::music
将乐器设为(\(1\) 钢琴 v)::music//将乐器设定为(\(1\) 钢琴 v)::music
将演奏速度设定为(60)::music//将演奏速度设为(60)::music
将演奏速度增加(20)::music//将演奏速度增加(20)::music
演奏速度::reporter music//演奏速度::reporter music
</pre>

## 画笔

<pre class='blocks'>
打印[Hello world!]::pen//打印[Hello world!]::pen
将落笔模式设为[point v]::pen//将落笔模式设为[point v]::pen
全部擦除::pen//全部擦除::pen
图章::pen//图章::pen
落笔::pen//落笔::pen
抬笔::pen//抬笔::pen
将笔的颜色设为[#ffffff]::pen//将笔的颜色设为[#ffffff]::pen
将笔的(颜色 v)增加(10)::pen//将笔的(颜色 v)增加(10)::pen
将笔的(颜色 v)设为(50)::pen//将笔的(颜色 v)设为(50)::pen
将笔的粗细增加(1)::pen//将笔的粗细增加(1)::pen
将笔的粗细设为(1)::pen//将笔的粗细设为(1)::pen
</pre>

## Canvas

<pre class='blocks'>
beginPath::pen//beginPath::pen
closePath::pen//closePath::pen
moveTo\((0),(0)\)::pen//moveTo\((0),(0)\)::pen
lineTo\((0),(0)\)::pen//lineTo\((0),(0)\)::pen
arc\((0),(0),(100),(0),(3.1415926)\)::pen//arc\((0),(0),(100),(0),(3.1415926)\)::pen
rect\((0),(0),(100),(100)\)::pen//rect\((0),(0),(100),(100)\)::pen
clip::pen//clip::pen
setLineWidth\((1)\)::pen//setLineWidth\((1)\)::pen
setLineCap\([round]\)::pen//setLineCap\([round]\)::pen
setStrokeStyle\([#ffffff]\)::pen//setStrokeStyle\([#ffffff]\)::pen
setFillStyle\([#ffffff]\)::pen//setFillStyle\([#ffffff]\)::pen
stroke::pen//stroke::pen
fill::pen//fill::pen
clearRect\((0),(0),(480),(360)\)::pen//clearRect\((0),(0),(480),(360)\)::pen
setFont\([30px Arial]\)::pen//setFont\([30px Arial]\)::pen
strokeText\([hello world],(0),(0)\)::pen//strokeText\([hello world],(0),(0)\)::pen
fillText\([hello world],(0),(0)\)::pen//fillText\([hello world],(0),(0)\)::pen
measureText\([hello world]\)::reporter pen//measureText\([hello world]\)::reporter pen
loadIamge\([bcaaa8547a07cfe572c0967ba829e99d.svg]\)::pen//loadIamge\([bcaaa8547a07cfe572c0967ba829e99d.svg]\)::pen
drawIamge\([bcaaa8547a07cfe572c0967ba829e99d.svg]\)::pen//drawIamge\([bcaaa8547a07cfe572c0967ba829e99d.svg]\)::pen
scale\((1.0),(1.0)\)::pen//scale\((1.0),(1.0)\)::pen
rotate\((0)\)::pen//rotate\((0)\)::pen
translate\((0),(0)\)::pen//translate\((0),(0)\)::pen
clearTransform::pen//clearTransform::pen
save::pen//save::pen
restore::pen//restore::pen
setGlobalAlpha\((1.0)\)::pen//setGlobalAlpha\((1.0)\)::pen
setGlobalCompositeOperation\([source-over]\)::pen//setGlobalCompositeOperation\([source-over]\)::pen
switchCanvas\((0)\)::pen//switchCanvas\((0)\)::pen
stampOnStage::pen//stampOnStage::pen
</pre>

## Community

(因为scratch-blocks没有这个图标所以用pen代替)

<pre class='blocks'>
[user level v]::reporter pen//[user level v]::reporter pen
is follower?::boolean pen//is follower?::boolean pen
love this project?::boolean pen//love this project?::boolean pen
open [http://mozhua.aerfaying.com]::pen//open [http://mozhua.aerfaying.com]::pen
redirect [http://mozhua.aerfaying.com]::pen//redirect [http://mozhua.aerfaying.com]::pen
pay [10] for []::pen//pay [10] for []::pen
error::reporter pen//error::reporter pen
</pre>

## LazyAudio

<pre class='blocks'>
load\([6ac484e97c1c1fe1384642e26a125e70.wav]\)::music//load\([6ac484e97c1c1fe1384642e26a125e70.wav]\)::music
playAndWait\([6ac484e97c1c1fe1384642e26a125e70.wav]\)::music//playAndWait\([6ac484e97c1c1fe1384642e26a125e70.wav]\)::music
</pre>

## 文字朗读

<pre class='blocks'>
朗读[Hello]::tts//朗读[Hello]::tts
使用(中音 v)嗓音::tts//使用(中音 v)嗓音::tts
将朗读语言设置为(中文 v)::tts//将朗读语言设置为(中文 v)::tts
</pre>

## 翻译

<pre class='blocks'>
将[你好]译为(English v)::translate//将[你好]译为(English v)::translate
访客语言::reporter translate//访客语言::reporter translate
</pre>

## 注释

<pre class='blocks'>
//你好,这是条注释 //你好,这是条注释
</pre>

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处