Netlify 初体验——真就是几秒部署呗

Hexo 部署依赖 node 环境就让很多专注写作的人放弃这个框架,劝退萌新,并且难以随时随地写作。好在其 CLI 比较简单,前面我也介绍过如何利用免费的微软 Azure 持续部署博客

不过今天看 Ant Design Pro 官网的 footer 的时候发现了 Netlify 这个东西,试了以后,强烈安利!!!

来到它的首页,里面有这么几段话——

大字:

在几秒钟内部署您的网站*

小字:

*不,这里没有陷阱。
真的只需点击几下。

嗯……嗯?哼哼……有免费套餐,试试吧!

  1. 首先用 GitHub 授权登录
  2. 选择 New site from Git
  3. 选择项目托管的位置:GitHub
  4. 授权 GitHub 访问私有项目
  5. 输入构建命令……等等,你怎么给我自动输入了啊喂?
  6. 点 Deploy site

然后构建就启动了,1分钟后我的站点就到了 Netlify 上。

当时我的表情是 (⊙o⊙)?

我连部署命令都没打;
我连环境都没提供;
我甚至全程没有摸一下键盘……(你要问我注册登录不摸键盘?真就没摸,GitHub 是已登录的状态,点一下授权按钮就登录了。)
敢情 hexo 的部署配置,Azure 的 CICD 都白写了呗?

……

😓,流批……

这个网站还支持绑定域名,自动申请 HTTPS,配 Web Hook(就不用手动点部署了),还有很多很多真 · 自动化的功能,大家一起发掘吧!

如何给 Icarus 增加夜间模式

此篇针对 Icarus 2 版本,Icarus 3 请参考:Icarus 夜间模式支持 3.0 了

Preview

Live Preview

https://www.imaegoo.com/

Attention

This extension is NOT FULLY TESTED, so it may not fully cover the theme styles, if you find something wrong (such as bright things in night mode), please report it in this issue, do not open new issue.

Usage

  1. Merge night branch from imaegoo/hexo-theme-icarus into your icarus theme folder, or dowmload zip.
  2. If you configured an image logo, you should prepare a logo for night mode, then apply them in themes/icarus/_config.yml.
    1
    2
    3
    logo:
    light: /images/logo.png
    dark: /images/logo-dark.png

  1. night 分支(imaegoo/hexo-theme-icarus)合并到你的主题分支中。如果你不懂,并且你对主题没有自己修改,直接下载修改好压缩包
  2. 如果你的网站 LOGO 是图片,你可能需要准备一黑一白两个版本的 LOGO,并在主题 themes/icarus/_config.yml 中配置。
    1
    2
    3
    logo:
    light: /images/logo.png
    dark: /images/logo-dark.png

Modify

If you want to customize your theme, you can modify night mode part in themes/icarus/source/css/style.styl.

Thanks

Universe background from https://github.com/fan-lv/Fan

域名邮箱由 QQ邮箱 移到 Yandex

用腾讯的域名邮箱服务主要为了方便国内访问,但一直有漏邮件的烦恼,所以一直没有作为主邮箱使用。直到前一段时间开始爆发式的漏,连验证码邮件都收不到了,于是我用 outlook 尝试给域名邮箱发了一封测试邮件,果然被退信了。

上网对比了一下,换成了网易的,结果设置MX记录验证过不去,让等48小时,等不了,再换。

现在换到了俄罗斯的 Yandex,初期体验还不错。

优点:

  1. 支持接收未注册地址的邮件(相当于发到 *@imaegoo.com 我都能收到)
  2. 支持配置全局转发,但不支持垃圾邮件转发
  3. 国内访问速度还不错
  4. 域名验证速度快,10分钟就能完成自助验证
  5. 支持从自己的域名(mail.imaegoo.com)进登录界面

缺点:

  1. 界面没有中文,英文界面下还经常出现俄文,国际化不够
阅读更多

van-list 一直触发加载问题的排查

移动端分页一般都是向下滑动加载更多,Vant 组件库提供了 van-list 来实现这一功能。

List 组件通过loadingfinished两个变量控制加载状态,当组件滚动到底部时,会触发load事件并将loading设置成true。此时可以发起异步操作并更新数据,数据更新完毕后,将loading设置成false即可。若数据已全部加载完毕,则直接将finished设置成true即可。

实际应用中发现,即使内部元素已经填满一整屏,仍然会触发加载,直到我模拟的20多页全部加载完才停下来。

我没有给这个问题写专门的 CodePen demo,比较麻烦,碰到的人也不一定多。

结论

van-list 会在内容之后增加一个 placeholder,通过 placeholder 的位置判断内容是否已填充满屏。
van-list 本身为 flex 布局时,flex-direction 必须是 column(或 column-reverse)。

过程

首先我的用法是这样的:

template
1
2
3
4
5
6
7
<van-list> <!-- flex -->
<van-grid>
<van-grid-item />
<van-grid-item />
<van-grid-item />
</van-grid>
</van-list>

首先看文档,英文文档没有提到,但中文文档有以下一段话:

使用 float 布局后一直触发加载?
若 List 的内容使用了 float 布局,可以在容器上添加van-clearfix类名来清除浮动,使得 List 能正确判断元素位置

检查了一下,我没有在使用 float 布局呀。

阅读更多
工作两年之余翻起高中写的代码……

工作两年之余翻起高中写的代码……

许久没再打开过的QQ空间突然有了提示,打开看到是母亲在翻我的软件相册,里面是些高中做出来的东西。

学业那么紧张的情况下,有时间接触手机电脑,甚至还写代码,在我们那个年代,绝对不是随便哪个学生都有的经历。

有初中时候写收菜脚本的基础,我对逻辑有了一定的理解并逐渐着迷,但又没有系统的教学,写出来的东西甚是粗糙。那时候学习 VB 仅仅是看一张名为开天辟地的电脑速成光盘,早期甚至都没有宽带网。
不知道如何解析 HTML,就用字符串查找函数;
不知道如何模块化编程,就一个文件写 800 多行;
不知道如何定位异常,就给每一行代码开头加行号;
不知道怎么做安装程序,就写 bat 脚本用 RAR 打自解压包;
不知道怎么读写配置文件,就用基本输入输出 txt;
甚至一开始连缩进都不懂,代码直上直下的……

虽然走过这么多的弯路,还影响了高中学习险些没有考上本科,但收获了许多课堂里学不来的东西。

这月初的时候,我在整理一块老硬盘,把高中写的 班班通助手班班通助手2.0 传到了 Github 上保存。我终究还是怕在硬盘里哪一天它就那样丢失了。

失去理智注意力涣散 的时候,想想曾经为之着迷的自己,至少还是很励志的。

阅读更多

Icarus 夜间模式(实验中)

更新了 Icarus 主题代码,右上角增加了夜间模式切换按钮,是实验中的功能,欢迎体验。

通过向 body 添加名为 night 的 class 实现,状态记在浏览器 localstorage 中。

已知问题:

  1. 样式可能没有全面覆盖。
  2. 夜间模式在低性能浏览器上导致页面响应缓慢,需要优化性能。

目前还没有做成插件,仅在自己的博客使用,后期如果有时间的话,会考虑做成 extension。


更新:已经发布了——

Icarus 2 请参考:如何给 Icarus 增加夜间模式
Icarus 3 请参考:Icarus 夜间模式支持 3.0 了

粘性布局之粘底效果(position sticky, bottom 0)

粘性布局之粘底效果(position sticky, bottom 0)

经常在查资料时访问各种 CSDN 博客会发现,当 屏幕高度 < 左边栏的高度 < 内容的高度 时,滚动屏幕,左边栏会随着内容一同滚动,当滚动到左边栏底部时,左边栏会停止滚动,而内容会继续滚动。

这种设计的优势在于,用户既能够滚动左边栏,又不会在左边栏不够长时,造成页面左侧大片空白的尴尬,这种布局模式,叫做 粘性布局(sticky)

粘性布局在元素满足显示条件时,表现与普通布局没什么不同,但当元素随着页面滚动而无法显示时,会转为 fixed 布局效果,主流浏览器已经全部支持粘性布局(IE不支持)。

通俗一点讲,类似于 Excel 中的“冻结窗格”。

绝大多数网上的教程材料都用 position: sticky; top: 0; 这样的组合来举例,但为了实现 CSDN 左边栏效果,position: sticky; bottom: 0; 似乎不能和想象一样的起作用。

先说结论吧

  1. sticky 的确是无法直接粘底的……
  2. CSDN 使用 JS 动态计算实现,当计算到左边栏底部即将滚上屏幕时,立即对左边栏添加 position: fixed; bottom: 0; 样式,把左边栏定死,延时较为明显,快速上下滚动时能看到闪烁
  3. 我使用 position: sticky; 实现,通过 JS 计算 屏幕高度 - 左边栏高度 得到 top 的值,快速滚动时没有闪烁
阅读更多