把 Win11 的文件资源管理器改回 Win10 的 Ribbon 风格

Windows 11 快速预览通道经过几个小版本更新后,修复了不少 bug,已经成为了我的主力系统。但是,作为平常使用最多的文件资源管理器,其新界面对性能的影响很大,尤其是在使用方向键切换选中的文件的时候,卡顿感严重。经过一番搜索,我找到了改回 Ribbon 风格文件资源管理器的方法,后者更稳定,性能更好。

阅读更多

集成 Twikoo 与 lightGallery 插件,实现评论图片的点击放大

Twikoo 文档页和本站的评论区,支持评论图片点击放大,你现在就可以就下拉到本文评论区试一试!

为什么 Twikoo 没有官方支持图片点击放大?

  1. 会增加包体大小
  2. 涉及 body DOM 节点操作,为了不影响在不同主题下的显示效果,需要杜绝这类操作
  3. lightGallery 库是 GPLv3 协议的

我就想要实现图片点击放大功能!

首先需要你拥有修改博客主题的能力。

阅读更多

关闭 Ubuntu 20 桌面版动画,使应用程序菜单不再卡顿

Ubuntu Desktop 应用程序菜单带有从屏幕底角到屏幕中心的动画。虽然这看起来很酷,但我感觉它很卡,优化很差,尤其是在集成显卡和虚拟机的环境中。如果你的想法和我一样,有一种方法可以关闭此动画,从而可以更快地从“应用程序”菜单中启动应用程序。

  1. 打开“终端”
  2. 执行以下命令,关闭动画,立即生效
    1
    gsettings set org.gnome.desktop.interface enable-animations false

想要重新开启动画,只需要执行

1
gsettings set org.gnome.desktop.interface enable-animations true

看看百度的答案都是些啥,还需要安装 compizconfig-settings-manager,其实一行命令就解决啦。

Twikoo 多个页面共用一个评论区

有时候博主希望多个页面共用一个评论区,我们可以自定义 path 做到这一点。

首先要确定自己所用的博客主题支持 Twikoo path 配置,否则需要自己修改主题源码添加 path 配置。

设置主题的 Twikoo path 配置为 window.TWIKOO_MAGIC_PATH||window.location.pathname

然后在所有需要共用评论区的页面正文中增加以下代码 <script>window.TWIKOO_MAGIC_PATH="评论区名称"</script>

把中间的“评论区名称”替换为你指定的名称,共用的页面请起 相同的 评论区名称,其他页面不做改动即可。

试试看!

阅读更多

Cloudflare Worker 无服务器追查 Git 仓库代码泄露

大部分 Git 平台,如 Github、Gitlab 等,会在打开仓库时自动渲染 README.md,而我们利用这一特性,通过对 README.md 中的图片访问日志加以记录,可以实现追查代码泄露的目的。

如果你还没有 Cloudflare 账号,可以申请一个

登录 Cloudflare 后,进入 Workers 页面,点击 KV。

阅读更多

体验 VitePress:文档编译还能这么快!

基于 VuePress 的项目文档的编译速度一直让我很苦恼,启动一次 dev server 要大约半分钟的时间,而且哪怕只有一个 Hello World,速度也是这么慢。相比之下,Hexo 都比它快。这当然不只是 VuePress 本身的问题,要说还得归咎于 Webpack。

于是 Vite 诞生了,一起诞生的还有 VitePress。好耶!虽然 VitePress 仍处于 WIP 阶段,告诉我们不要在任何地方使用,但我们可以提前对比一下,它究竟能比 VuePress 快多少?我们使用基于 VuePress 的 Twikoo 文档测试一下。

安装

1
yarn add -D vitepress
阅读更多

腾讯云云开发云函数 之 异步执行,提前返回

云函数的特性是,当 main 函数 return 时,执行进程会被立即冻结。这一点在官方文档Node.js 8 的异步行为中有提到。

对于异步函数,主流程执行完成后,函数实例进程会被冻结,进程中的所有异步任务会暂停执行,直到这个进程被再次唤起。
另一方面,如果函数实例进程由于某些原因没被复用(例如更新了函数代码),这个异步流程中的代码就永远不会被执行

但是有些场景下,云函数需要很长的执行时间,例如,Twikoo 通过 Akismet 检测垃圾评论的过程。按照特性,在检测过程结束前,就不能异步检测,提前返回结果给前端,否则检测进程就会被冻结,导致检测失败。我们只能 await 同步检测,造成请求响应慢,用户体验差。

按照 Java 的习惯,我们会启动新的线程执行长时间的任务,在云函数中怎样实现?

阅读更多

腾讯云云开发云函数 之 文件导入功能

背景

Twikoo 评论系统要实现导入功能,导入,就需要上传文件。

通过调用云函数,我们能够传递 string、number 等简单的参数,想要上传文件?不太行。

想到云开发环境有一块默认开通的 COS 空间,这块空间允许登录用户上传文件,只要利用这片空间,就可以实现将文件上传给云函数的功能了。

主要思路

  1. 前端调用 js-sdk 上传文件,获取到 fileID
  2. 前端将 fileID 作为参数,调用云函数
  3. 云函数通过 fileID 获取到文件,并解析
阅读更多

解决微信小程序在 iPhone iOS 上 text 宽度只有一半导致的不居中等种种问题

现象

当小程序中使用第三方字体时,在 iPhone 11 和 iPhone 12 机型下

  • 中文字正常
  • 英文字和数字,居中和右对齐异常

这个问题只能在几个特定的机型下出现,不用第三方字体也没有这个问题,安卓机型和开发者工具也重现不了,甚至 iPhone 12 mini 用同一版本也不能重现。

微信版本:7.0.18
小程序基础库:2.14.0
iOS:14.2

这未免也太奇怪了。

阅读更多

腾讯云云开发云函数 之 代码共用

腾讯云云开发云函数的文档中写道——

不同的云函数可以共用代码文件(目录)吗
未上线

如果是简单的云函数,这一点还能接受,在开发 Twikoo 评论系统的过程中,云函数要实现的 API 越来越多,逐渐让我发现了它的弊端:

  1. 大量的代码复制!
  2. 版本管理非常不便!
  3. 依赖管理非常不便!
  4. 一次要部署十来个云函数,很麻烦!
  5. 每个云函数都有独立的冷启动时间,很慢!

显然违反了开发的 DRY 原则,这迫使我开始思考解决方案。

正常的思维是,一个 API 写一个云函数,如果将云函数合并,用一个云函数实现不同的功能,能否解决这样的问题呢?

阅读更多