前言 这个小功能是在给 https://github.com/HengXin666/BiLiBiLi_DanMu_Crawling 写前端弹幕处理的时候搓出来的,用来解决大文件导入后整个页面卡死的问题。 实现 `ts export default function sync2async any>( func: Function, ...args: any[] ): Promise> { return new Promise((resolve) => { setTimeo...
引言 fnm 的默认安装方法对网络要求比较高,但在部分设备上不方便,故此记录一次手动安装过程 过程 获取官方安装脚本 搜索下载链接部分 (https://github.com/Schniz/fnm/releases/) 修改为镜像链接 (ghfast.top或github.moeyy.xyz) 导入安装脚本 (已使用镜像源) `zsh cat ./fnm.sh #!/bin/bash set -e RELEASE="latest" OS="$(uname -s)" case "${OS}" in MI...
极简版 (猜你想看) 对一个 enum A而言,key in A指的是A的值,key in keyof typeof A指的是它的键。 翻译 原文(来自bobbyhadz.com) 在 TypeScript 中使用枚举作为受限键或值类型 使用keyof typeof将枚举作为受限键类型。 构建的类型将包含所有枚举键,其值初始化为any。 `ts enum Sizes { ...
起因 官方仓库里的JS/TS实现没有给出由encode()得出汉字文本格式的方法,故出此文。 (小声BB: 这玩意太冷了,基本没什么人用吧) 实现 看了一眼测试用例,只要把toUint16Array(汉字:string)函数反向跑一遍即可达到目的: `ts /** DeepSeek R1 写的,使用无需注明来源 */ function fromUint16Array(array: Uint16Array): string { let result = ''; ...
rollup.config.mjs `ts import json from "@rollup/plugin-json"; import terser from "@rollup/plugin-terser"; import commonjs from "@rollup/plugin-commonjs"; import typescript from "@rollup/plugin-typescript"; import resolve from "@rollup/plugin-node-resolve"; import babel from "@rollup/plugin-bab...
引言 如题,这是一个关闭手机屏幕电源或设置亮度为-1的软件。 它可以方便的让手机处于启动状态而不必打开屏幕这一耗电大户,简直就是手机长时间后台运行软件用户的福音。 国内魔改安卓系统的杀后台机制:什么,我打Extinguish。 使用 仅需启动Shizuku服务,授权后即可使用。 非ROOT用户请使用ADB启动Shizuku;ROOT用户建议使用Sui,当然也可直接ROOT启动Shizuku。 接着在Extingui...
引言 在使用Canokeys上的GPG密钥签名时,总是会与其他需读卡的软件冲突(如浏览器),其实是因为 GnuPG scdaemon 是唯一一个在连接到 pcscd 时使用 PCSC_SHARE_EXCLUSIVE 标志的流行 pcscd 客户端。电子身份识别中列出的浏览器和程序使用的其他客户端(如 OpenSC PKCS#11)正在使用允许同时访问单个智能卡的 PCSC_SHARE_SHARED 。pcscd 不会在连接其他客户端时提供对智能卡的独占访问权限。这意味着要使用 GnuPG 智能卡功能,您必须在之前关闭所有打开的浏览器窗口或执行一些其他不方便的...
在 JavaScript/TypeScript 中,如果你要对数组进行异步处理,以下两种为较优解。 按顺序执行不重要,且不等待该数组执行完毕 [1,2,3].forEach(async (v)=>console.log(v)) console.log('done') 按顺序执行不重要,但等待该数组执行完毕 await Promise.all([1,2,3].forEach(async (v)=>console.log(v))) console.log('done') 按顺序执行不重要 `ts const arr =...
起因 为了方便分享网页特定元素,我们就需要在前端进行网页截图。 优势: 长页面无需手机支持长截图 仅针对特定元素截取,节约空间&防止隐私泄露 可在分享时展示更适合分享的格式/信息 正文 简单一点 于是便找到了html2canvas这个项目。 它可以将页面元素转化为一个canvas,于是就可以使用[.toDataURL()方法](https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLCanvasElement/toDataU...
起因 虽然 VitePress 自带了读取.md文件最近更新时间的功能,但是在写文档时插入 vue 动态组件时就需要手动实现一次这个功能。 起初试图找一个相关库,发现根本没人去做。 找了半天,终于在 [Xavi 的技术文档 / VitePress 扩展首页内容](https://xaviw.github.io/XaviDocs/%E5%B7%A5%E5%85%B7%E7%B3%BB%E5%88%97/VitePress%E6%90%AD%E5%BB%BA/%E6%89%A9%E5%B1%95%E9%A6%96%E9%A1%B5%E5%86%85%E5%AE%B9%28%E6%96%...