Browse Source

Update contents

Track3 6 years ago
parent
commit
f88aa09755
2 changed files with 14 additions and 14 deletions
  1. 5 5
      content/posts/2019/quicklink.md
  2. 9 9
      content/posts/2019/wsl-my-exp.md

+ 5 - 5
content/posts/2019/quicklink.md

@@ -9,7 +9,7 @@ tags:
   - Hugo
 ---
 
-很久很久以前,还是功能机时代,手机能装`.jar`格式的应用,我记得UC浏览器有个很厉害的功能:智能预加载——即它能够检测出页面中的翻页导航,然后提前为你加载下一页,然后你点击“下一页”这个链接时页面秒开。在那个乌龟网速的2G时代,这个功能可以说极大地提升了刷网页的畅快感(尤其是看网络小说的时候😳)。只是当时流量贵,5元30M,有时候都有点舍不得开这个功能。现如今网速快了,流量也便宜了,这个功能很少再出现在我的视线中。
+很久很久以前,还是功能机时代,手机能装`.jar`格式的应用,我记得UC浏览器有个很厉害的功能:智能预加载——即它能够检测出页面中的翻页导航,然后提前为你加载下一页,然后你点击“下一页”这个链接时页面秒开。在那个乌龟网速的2G时代,这个功能可以说极大地提升了刷网页的畅快感(尤其是看网络小说的时候🙄)。只是当时流量贵,5元30M,有时候都有点舍不得开这个功能。现如今网速快了,流量也便宜了,这个功能很少再出现在我的视线中。
 
 几个月之前Google Chrome Labs开源了一个由[Addy Osmani](https://github.com/addyosmani)发起的项目[quicklink](https://github.com/GoogleChromeLabs/quicklink),它可以让浏览器在空闲时预加载视区内的链接以提升后续页面的响应速度,这跟以前的UC浏览器自动缓存下一页功能多少有点像。得知消息我倒是把GitHub地址记下了,却一直没有尝试用一下,最近突然想起这个于是我就在博客上用上了。
 
@@ -30,13 +30,13 @@ quicklink的使用超级简单,只需引用`quicklink.umd.js`这个gzip后不
 {{ $script := slice $mainjs $quicklinkjs | resources.Concat "js/bundle.js" | minify | fingerprint -}}
 <script src="{{ $script.Permalink }}" {{ printf "integrity=%q" $script.Data.Integrity | safeHTMLAttr }}></script>
 <script>
-    quicklink({
-        ignores: [uri => uri.includes('index.xml')]
-    });
+  quicklink({
+    ignores: [uri => uri.includes('index.xml')]
+  });
 </script>
 ```
 
-兼容性方面,quicklink只支持较新版本的浏览器(Safari除外,最新的也不支持),但是无所谓,你可以把它当作一个渐进性特性([progressive enhancement](https://www.smashingmagazine.com/2009/04/progressive-enhancement-what-it-is-and-how-to-use-it/)),就是说浏览器不支持也不影响网站的正常浏览,也就少一个体验加分的功能而已。~~谁让你用那么旧的浏览器,怪我咯?~~想让IE11和Safari也支持的话你完全可以引入一个polyfill,相当于给旧浏览器打个补丁,就像刷墙的时候抹一层腻子粉。引入的这个polyfill经gzip压缩后大概有6KB,就看你介意不介意了
+兼容性方面,quicklink只支持较新版本的浏览器(Safari除外,最新的也不支持),但是无所谓,你可以把它当作一个渐进性特性([progressive enhancement](https://www.smashingmagazine.com/2009/04/progressive-enhancement-what-it-is-and-how-to-use-it/)),就是说浏览器不支持也不影响网站的正常浏览,也就少一个体验加分的功能而已。~~谁让你用那么旧的浏览器,怪我咯?~~想让IE11和Safari也支持的话你完全可以引入一个6KB(gzipped)的polyfill,给旧浏览器打个补丁。
 
 本站是静态站点,启用quicklink只会增加服务器的带宽开销,对CPU占用等几乎无影响。而如果你是动态网站,用这个你就不得不考虑下性能方面的问题。如果你觉得直接缓存所有可见链接有点粗暴,你可以看看[instant.page](https://instant.page/)这个项目,它是当你把鼠标光标悬浮在链接上时才开始预加载,类似于InstantClick。说真心的,InstantClick的确有些年头了,它的原理是把整个网站变成单页应用,浏览器不会转圈圈,而是脚本自己在页面顶部加了个进度条,地址的更新也是依赖于`history.pushState()`这个API实现的。这样就有一个问题,网页上的其他js有时会依赖于窗口加载事件(比较常见的就是百度统计、谷歌统计等),加了InstantClick之后用户点击一个链接,虽然表面上好像导航到了一个新的页面,但是窗口加载事件并不存在,所以你必须把依赖窗口加载的这些function像这样重新调用一遍:
 

+ 9 - 9
content/posts/2019/wsl-my-exp.md

@@ -72,7 +72,7 @@ alias start="cmd.exe /c start"
 
 字体我用的是[更纱黑体(Sarasa Gothic)](https://github.com/be5invis/Sarasa-Gothic),是一套支持中文的等宽字体。值得注意的是conhost对字体极为挑剔,要是你选的字体兼容性不够,当你在WSL下运行`nano`等命令的时候字体会变成新宋体。配色的话,微软出了一个官方工具[ColorTool.exe](https://github.com/Microsoft/console),支持直接读取iTerm2的`.itermcolors`格式配置文件,可以让你方便地改终端配色。配色直接去[Iterm2-color-schemes](https://iterm2colorschemes.com/)打包下载即可,我用的是`Neutron`。配置了90%的透明度,再加上从Win10 19H1开始支持的全局暗色主题,最终效果如下:
 
-![Win10 19H1系统默认终端](https://assets.xxxlbox.com/images/2019/img027.jpg)
+{{< figure src="https://assets.xxxlbox.com/images/2019/img027.jpg" alt="Win10 19H1系统自带终端" caption="Win10 19H1系统自带终端" class="big" width="1455" height="919" >}}
 
 说不上好看,但是最起码不像以前那样丑得刺痛双眼。如果说这个外观还有什么要亟待改进的,我认为就是内边距了,用CSS里的话说就是`padding`。Win10窗口没有像Win7、Win8那样较宽的边框,最终终端的文字是挨着边显示的,总让人觉得有点不舒服。但是总体上来说,新版Win10终端已经是能让我满意了(差强人意),毕竟性能真的无敌,启动贼快……
 
@@ -80,7 +80,7 @@ alias start="cmd.exe /c start"
 
 说完了自带终端,再来聊一下第三方终端模拟器。[Fluent Terminal](https://github.com/felixse/FluentTerminal)绝对是我心目中Windows上最漂亮的终端,它应用了微软流畅设计风格,亚克力半透明效果真的很赞,我个人认为这就是未来Win10上终端该有的样子。
 
-![Fluent Terminal](https://assets.xxxlbox.com/images/2019/img028.jpg)
+{{< figure src="https://assets.xxxlbox.com/images/2019/img028.jpg" alt="Fluent Terminal" caption="Fluent Terminal" class="big" width="1357" height="888" >}}
 
 但是目前Fluent Terminal并不是十分完善,有些小bug。它基于UWP构建,但是因闪退问题没能通过应用商店的测试而无法上架,所以安装起来相对要麻烦一点。你需要导入作者的证书,然后开启Win10旁加载模式,不过作者有提供一键安装脚本并且支持从[Chocolatey](https://chocolatey.org/)安装。除了Fluent Terminal之外,[Terminus](https://github.com/Eugeny/terminus)也非常好用,是我现在的主力终端模拟器,ssh模块用起来很方便。
 
@@ -123,7 +123,7 @@ Docker利用了Linux kernel的一些比较高端的特性,这些特性WSL还
 
 ### 其他问题
 
-目前就想到一个,hosts文件的共享。Windows的hosts文件位于`C:\Windows\System32\drivers\etc\hosts`,Linux的位于`/etc/hosts`,默认情况下,WSL会自动用Windows的hosts文件生成Linux的hosts,所以如果你要改WSL中的hosts文件,可以直接改Win下的,让后注销重登即可。如果你想让Win与Linux的hosts不同,你可以编辑`/ect/wsl.conf`加上这些:
+关于hosts文件的共享的问题。Windows的hosts文件位于`C:\Windows\System32\drivers\etc\hosts`,Linux的位于`/etc/hosts`,默认情况下,WSL会自动用Windows的hosts文件生成Linux的hosts,所以如果你要改WSL中的hosts文件,可以直接改Win下的,让后注销重登即可。如果你想让Win与Linux的hosts不同,你可以编辑`/ect/wsl.conf`加上这些:
 
 ```ini
 [network]
@@ -140,9 +140,9 @@ generateHosts = false
 
 诚然,WSL还有许多不完善的地方,比如I/O性能不够理想,直观感受就是`npm install`的时候有点慢,更重要的是Windows上的第三方软件支持度还不够,有时候无法避免地要在Win与Linux两侧都装上某些软件。不过我真的很期待WSL的进一步完善,什么时候能直接跑docker那就真的nb了。我的期待总结起来就是:
 
-* 完善内核
-* 提高性能
-* 第三方应用支持
+* 完善内核
+* 提高性能
+* 第三方应用支持
 
 ## 相关参考
 
@@ -153,6 +153,6 @@ generateHosts = false
 
 
 [^1]: 这篇文章起草于2019年1月5日。
-[^2]: 来源于https://stackoverflow.com/questions/44245721/launching-explorer-from-wsl。
-[^3]:以我自己的亲身体验来看,在19H1以前,改“默认值”没用,保存重开还是原样,只能改“属性”才行。也不清楚这是真的有bug还是我的打开方式不对。
-[^4]: https://florianbrinkmann.com/en/3436/ssh-key-and-the-windows-subsystem-for-linux/#comment-3109
+[^2]: 来源于<https://stackoverflow.com/questions/44245721/launching-explorer-from-wsl>
+[^3]: 以我自己的亲身体验来看,在19H1以前,改“默认值”没用,保存重开还是原样,只能改“属性”才行。也不清楚这是真的有bug还是我的打开方式不对。
+[^4]: <https://florianbrinkmann.com/en/3436/ssh-key-and-the-windows-subsystem-for-linux/#comment-3109>。