william.chan's blog

done is better than perfect

重学前端

f ff

halo主题开发流程

仅三行halo主题开发流程命令即可完成

先阅读下面3个文档 准备工作 开发环境运行 主题开发-准备工作 运行服务 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 # clone halo 项目到本地 mkdir ~/halo2-dev cd ~/halo2-dev git clone git@g...

Git仓库迁移,包括所有的分支、标签、日志

仅三行命令即可完成

操作 1 2 3 4 5 6 git clone --bare http://域名/分组/仓库名称.git cd 仓库名称.git git push --mirror http://新域名/新分组/新仓库名称.git git branch -a 查看所有分支 git branch -r 查看所有远程分支 参考 Git仓库迁移,包括所有的分支、标签、日志

Vue route running on github pages

vue3 github-pages 404.html

demo zhuanlan cwy007.github.io/spaDir/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 <script type="text/javascript"> // Single Page Apps f...

3x3魔方-七步法

3x3魔方-七步法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 第一步,底棱归位(又称底部架十字,底层四个棱块正确复原的过程) 第二步,底角归位(复原魔方第一层四个角块) 第三步,中棱归位(复原魔方中层棱块的步骤) 第四步,顶棱面位(也称顶层架十字,顶层四个棱块的顶面颜色和顶层中心块颜色一样) R'U'F'UFR 第五步,顶角面位(魔方的四个顶角的顶面色全部...

概念: 什么是框架 framework

类比 Vue, React, koa, ruby on rails

什么是框架 封装原生代码的API 规范流程和格式 让开发人员更加专注于业务代码,提高开发效率 学习套路 找准范围 刻意练习 即时反馈

Node.js: 50行代码学会koa2中间件原理

koa: Next generation web framework for Node.js

Koa 是 nodejs 开发的下一代 web 开发框架,可参考 Koa 官网 。说是“下一代”,其实在实际开发中早就用在项目中了。特别是 nodejs 新版本开始正式支持 async/await 语法之后,Koa2 正在被大量使用。 实现官网中的一段中间件示例,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23...

JavaScript: async函数

async函数是使用async关键字声明的函数。

async函数是AsyncFunction构造函数的实例, 并且其中允许使用await关键字。async和await关键字让我们可以用一种更简洁的方式写出基于Promise的异步行为,而无需刻意地链式调用promise。 语法 1 2 3 async function name([param[, param[, ... param]]]) { statements } ...

JavaScript: 关于类型,有哪些你不知道的细节?

从运行时的角度去看 JavaScript 的类型系统

运行时类型是代码实际执行过程中我们用到的类型。所有的类型数据都会属于 7 个类型之一。从变量、参数、返回值到表达式中间结果,任何 JavaScript 代码运行过程中产生的数据,都具有运行时类型。 问题 为什么有的编程规范要求用 void 0 代替 undefined? 字符串有最大长度吗? 0.1 + 0.2 不是等于 0.3 么?为什么 JavaScript 里...

JavaScript: bind,apply,call三者的区别

bind,call,apply的作用都是用来改变this指向的

为什么要改变this指向? 1 2 3 4 5 6 7 8 9 10 var name = "lucy"; let obj = { name: "martin", say: function () { console.log(this.name); } }; obj.say(); //martin,this指向obj对象 set...