拓展 marked 支持自定义表情
原理
为了方便,我只是拓展 renderer 里对于图片渲染的逻辑,处理我们自定义表情,官方文档地址:https://marked.js.org/using_pro#renderer
我们要把类似这样的图片:,也就是方框里填 @ 就认为它是我们的自定义表情,然后以后面的 href 为表情 id。
实现
1234567891011121314151617181920212223242 ...
异步加载 Vue 组件以减小 chunk 体积
问题
当你的组件过于复杂时,这里指它引用了非常多的第三方库,那么当你打包的时候或许会碰到下面的警告:
1234(!) Some chunks are larger than 500 KiB after minification. Consider:- Using dynamic import() to code-split the application- Use build.rollupOpti ...
Naive UI 使用独立 API 后警告 inject
解决方法
抽离出来一个单独的文件,用来储存 pinia 对象,如下:
123import { createPinia } from 'pinia'export const pinia = createPinia()
注意 main.ts 中的 app.use 也要用这个单独的文件暴露的 pinia 变量(也就是跨文件全局变量),之后再在调用 createDi ...
Python 使用 pkgutil 访问包内资源
结论
pkgutil 是 python 的内置模块,可以用来打开包内文件。
使用的时候如下:
123456import pkgutildef foo(): data: bytes = pkgutil.get_data(__name__, 'file.txt') content: str = data.decode('utf-8') prin ...
Python + inspect 一行实现递归 fib 函数
背景
有个裙友要看看用 lambda 能不能在一行里定义出来 fib 函数,并且不要那个根号五的数学公式,于是就有了这篇文章。
介绍
inspect 库可以帮助我们拿到 Python 上下文的各种信息,自然也包括了当前正在运行的函数。配合 eval 可以达到我们的目的。
实现
原始方法
虽然大家都知道,但还是放上来做一个对比。
1234567def fib(n): if n in (1, 2 ...
Vue Router 搭配 NaiveUI 的进度条
介绍
由于 naive ui 的进度条需要依赖于一个 NLoadingBarProvider,所以我们在定义 router 的时候是无法使用 useLoadingBar() 获取到进度条对象的。
我的解决方法是利用 pinia 把 loadingBar 示例获取到,然后存起来,这样就可以访问到了。
这里用 pinia 的原因单纯是因为它简单好用,并且还能在浏览器插件里看到变量的值,而单纯的全局变量 ...
记一次 Nginx 调试
背景
一般来说 Nginx 使用起来挺简单,不出意外的话应该没什么问题,但今天我就出意外了。
我的配置很简单,如下:
123456789server { server_name www.hikariyo.net; root /web/www; index index.html; location / { try_files $uri $uri/ =404; ...
迁移 VPS 到 Vultr
为什么要迁移
趁着中秋节之前总算是把我的 VPS 迁移到了 Vultr,域名也换了一个 .me 结尾的,更有个人网站的感觉,但是一年下来也得多花不少钱,疼死我了。
我以前是全套阿里云,服务器是他的,域名也是从他那里买的。不是说阿里云不好,但是对于我这种小小的个人网站来说,他的价格有点高,没有活动最低配置是七八百。
而且,由于某些众所周知的原因,管得比较严。做很多事情都要去报备,着实比较烦心。
迁移 ...
使用setTimeout模拟setInterval
源码
来自半年后的说明:我把代码转放到 gists 里了,当时代码风格受 Python 影响较大,这里就不再更改了,毕竟大家本地都有自己的格式化工具。
前往Github获取本文源码。
介绍
相信setInterval这个东西大火都比较熟了,这里不做关于它的介绍,而是关于本文是如何实现这一功能。
我们通过一个Set来保存定时器的id,当清除时,就把这个id删掉;当每一次调用时,都会检查一下当前i ...
JS实现只能调用一次的函数
源码
来自半年后的说明:我把代码转放到 gists 里了,当时代码风格受 Python 影响较大,这里就不再更改了,毕竟大家本地都有自己的格式化工具。
前往Github获取本文源码。
目标
我们的想法是一个函数只有第一次调用的时候有效,如下:
1234567function foo() { console.log('Hello world')}fo ...