前段时间 React 团队发布了一项用于解决 React 页面在多接口请求下的性能问题的解决方案 React Server Components。当然该方案目前还在草案阶段,官方也只是发了视频和一个示例 demo 来说明这个草案。 Server Components 官方在视频和 RFC 中说明了产生这个方案的主要原因是因为大量的 React 组件依赖数据请求才能做渲染。如果每个组件自己去请求数据的话会出现子组件要等父组件数据请求完成渲…
🌏 前言 我们知道,静态博客由于不带有动态功能,所以针对评论这种动态需求比较大众的做法就是使用第三方评论系统。第三方评论的本质其实就是使用 JS 去调取第三方服务接口获取评论后动态渲染到页面中。虽然它很好的解决了这个问题,但是由于需要请求接口,在体验上远比动态博客的直出效果要差很多。所以当我把博客从动态博客 Typecho 迁移到静态博客 Hugo 上来时,就一直在思考这个问题。直到我看到了 Hugo 的 getJSON 方法,发现原来…
今日,有多位同学反馈说我在他们的网站上大量发送垃圾评论。本人特此声明,该事情绝非本人所为。由于反馈过来的同学都是使用 Valine 评论系统,该评论系统是支持匿名和自定义信息评论的。我的个人信息基本是公开的,所以冒用我的身份进行垃圾评论发布是非常容易的。就我个人而言,没有时间也没有必要去做这种事情,希望各位投诉的同学保持理智。 同时我也在此告诫始作俑者,你的行为已经不仅给我本人甚至给广大博主造成了非常恶劣的影响。不管你是处于什么目的,请…
声明:《关于被人恶意冒用身份发送垃圾评论的声明》 Valine 是一款样式精美,部署简单的评论系统, 第一次接触便被它精美的样式,无服务端的特性给吸引了。它最大的特色是基于 LeanCloud 直接在前端进行数据库操作而无需服务端,极大的缩减了部署流程,仅需要在静态页引入 Valine SDK 即可。 👨💻 初识 Valine 以下是 Valine 官网提供的快速部署脚本,其中 appId 和 appKey 是你在 LeanClo…
前几天我为了降低成本把博客迁移到了 Hugo,具体可见《博客迁移至 Hugo》。文章我基于前人的脚本自制了 Export2Hugo 插件进行导出,但是发现评论居然没有相关的同学折腾过。大部分都是使用了 ByeTyp 和 TypExport 插件将数据导出成 WordPress ,然后再通过 Disqus 桥接到 Valine,非常的麻烦。 Valine 使用的 LeanCloud 存储服务是支持文件导入的,于是我写了个 Node.js …
前几天我为了降低成本把博客迁移到了 Hugo,具体可见《博客迁移至 Hugo》。在迁移的过程中找到了 @eallion 的这篇文章《Typecho 迁移到 Hugo》 ,里面使用一个 PHP 脚本将数据导出成 Markdown 文件存储到本地。当时使用了下发现有这么一些不足的地方: 因为不是插件,所以需要人工编辑配置数据库信息 脚本会把所有的 Markdown 文件生成在 Typecho 根目录下 会导出一些附件信息等额外的文件 …
Drone 是一款开源的 CI/CD 工具,基于容器提供了强大的插件系统。多年前我有写过《基于Docker的CI工具——Drone》中有详细的介绍它的优点。Drone 采用的是 Server/Agent 架构,Server 端用来处理请求派发任务给 Agent,最终在 Agent 上执行任务。 Drone 整体是使用 Golang 写的,drone/drone-ui 是它的前端页面仓库,采用 Vue.js 进行开发(很早之前是使用 Re…







