轶哥

妄图改变世界的全栈程序员。

Office表格转HTML Table
  •   更新:2022-08-22 22:50:13
  •   首发:2022-08-22 22:50:13
  •   WEB
  •   334

这个程序大约写于5年前,在3年前开源。这是一篇3年前就应该写的文章,一直沉睡在TODO List,由于优先级过低,竟然拖到今天才写。

office2table.png

这个小工具诞生的原因背景:

Office的Excel是目前最优秀的表格工具,Office三套件经久不衰,无疑是职场最具影响力的生产力软件。而World与Excel中的表格直接复制到网页(HTML组件)中会遗留非常多的额外标签,这些标签在浏览器中有的是无法识别的,有的是能识别但是会出现显示异常的。

在Web2.0时代,出现了“所见即所得”的HTML富文本编辑器。与此同时,Web前端飞速发展,出现了多种自适应布局方式,可以让Web页面兼容不同大小和分辨率的显示器。

由于Office新版协议采用了和HTML类似的标记语言来表达富文本内容,使得WPS等第三方Office软件得以在不破解协议的情况下修改Office文件。然而World、Excel和PowerPoint的表格内容直接复制出来粘贴到HTML富文本编辑器是可以使用的,但是多余的标签会衍生出各种问题。

这个 Office Table 转 HTML Table 就是为了解决此问题开发的纯前段处理数据的Web小程序。

Win11设置默认浏览器的方法
  •   更新:2022-04-01 11:22:14
  •   首发:2021-10-09 18:31:18
  •   WEB
  •   4727

在win11正式版中,设置默认浏览器的方法被微软修改了,更加精细,以至于一开始我竟没有找到在哪里设置。

以前在win10中,设置默认浏览器只需要进入设置-应用-默认应用,对Web浏览器进行选择即可调整默认应用程序。但是在win11中居然开了个倒车,没有提供这样的默认选项,取而代之的是精细化的默认应用设置。

虽然精细化的设置能够最大程度的把管理权交给用户,但是win10的快捷设置方式也不失为一个值得保留的选项。两者完全可以共存。摒弃简单方案提高了用户切换默认浏览器的难度,在第一次启动Edge的时候不小心点了介绍界面的确定按钮,win11就把默认浏览器设置一键为Edge了,还不晓得杂个改回去,就这实在是有点流氓。

Win10中通过WSL2开发基于Electron的Ubuntu应用程序
  •   更新:2021-10-05 22:13:43
  •   首发:2021-04-11 23:12:18
  •   WEB
  •   3813

本文将介绍如何在Windows 10操作系统中借助WSL2开发基于Electron的Ubuntu窗口应用程序,可以实现在win10中编写代码并查看linux应用的运行效果。

借助此方法,仅需一台MacOS设备和一台Win10的设备,即可通过Electron开发和测试主流操作系统(Windows、Linux、MacOS)下桌面应用程序并可以有差异化的调用操作系统的原生API。

通过MacOS系统可以编译几乎所有平台的应用程序,例如可以在MacOS中编译Win10 x64Linux ARM64等平台的应用程序。但是在win10ubuntu中无法编译MacOS应用程序(可以借助虚拟机或者带有MacOS系统的Docker镜像实现MacOS平台应用程序的编译,但是可能无法正常进行签名)。关于Electron自动编译及自动更新、分发,可以参阅此视频教程

CryptoJS PBKDF2 AES对称加密
  •   更新:2020-10-18 23:58:23
  •   首发:2020-10-18 23:50:55
  •   WEB
  •   2350

CryptoJS提供了和OpenSSL加密命令一致的AES对称加密方法,此方法基于EvpKDFSecret Passphrase 进行计算(This key derivation function is meant to conform with EVP_BytesToKey.),确保进行AES加密计算的key符合长度标准并提升AES加密的安全性。CryptoJS没有直接提供基于PBKDF2的AES加密方法,但在OpenSSL中提供了-pbkdf2参数并将该参数作为AES加密的推荐选项。

PHP实现Github头像缓存
  •   更新:2020-08-07 13:56:57
  •   首发:2020-07-21 14:56:34
  •   WEB
  •   2063

在开发博客Github登录功能,缓存Github头像的时候,发现下载头像是个很费劲的事情。

利用位于HK的PHP虚拟主机,可以轻松解决这个问题。

伪静态依赖Apache的Rewrite模块。

将新网址推送到百度、谷歌、Bing搜索引擎
  •   更新:2020-08-05 00:00:38
  •   首发:2020-08-04 23:44:06
  •   WEB
  •   2440

为了方便大家快速集成,我将推送URL到百度、谷歌、Bing搜索引擎的功能整合至submit-url模块中。

模块支持两种方式调用,如果您使用的是海外服务器,且使用Node.js作为服务器端,可以通过npm install submit-url的方式安装该模块。否则,请运行模块作为HTTP服务,您的程序通过调用此HTTP API来提交网址,确保推送到谷歌和Bing搜索引擎的稳定。

Electron 预加载远程页面提升用户体验
  •   更新:2019-01-23 21:00:19
  •   首发:2019-01-23 20:44:32
  •   WEB
  •   7856

使用场景

Electron 内置 ChromiumNode.js,为了提升用户体验,通常 Electron 封装的前端静态文件存储在客户端本地。但总有一些特殊情况,会使用到部分远程页面。

比如微信扫码登录,需要远程访问微信的登录站点,获得扫码结果后跳转到我们自己的服务器,然后通知到主进程来关闭对应的渲染进程。目前这个问题有更高效的解决方案,详见博文《无刷新微信扫码登陆解决方案》

再比如,部分页面还没有实现前后端分离,为了产品尽快上线,也需要嵌入远程URL。

直接在Electron中访问远程地址是有风险的,控制远程地址切回本地页面也是较为繁琐的。

以上需求可以使用webview标签实现。这是Electron为我们提供的一个特殊组件,类似于iframe但跟iframe不同,确保了应用的安全性。类似于AndroidioswebviewCrosswalk,Electron中的webview也支持和渲染进程相互通讯。

  上一页 下一页