感谢Frank_782
- 从https://scratchblocks.github.io/js/scratchblocks-v3.4-min.js下载js
并放入hexo\theme\主题文件夹\source\js
内

- 修改jquery为国内cdn
hexo\theme\主题文件夹\layout\_partial
内script.ejs
或after-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
- 在
hexo\theme\主题文件夹\layout\_partial
内script.ejs
或after-footer.ejs
内引入scratchblocks-v3.4-min.js
| <%- js('js/scratchblocks-v3.4-min') %>
|

- 修改
hexo\themes\主题文件夹\source\js\script.js
在末尾添加
| scratchblocks.renderMatching('pre.blocks', { style:'scratch3' })
|

- 完工
现在刷新您的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>
|