可以看看这个,我现在加上压缩插件一张截图大概在 100kb-1mb 以内。github 仓库存量查了下应该是 1 个 g,能存好多。你放的图都很大吗?我只放一些笔记啥的
是這樣嗎?我之前還以為上限是 0.5G 呢
感谢,鼠鼠今天下午已经在改了 已经记不得是第几次在
上受到門友仙人指路了
看来我多记了一个小数点
可以把图片压缩成一些高压缩的格式,比如 webp
Google 有一个很好的工具:
这个站长是我在 nodeseek 上面知道的,目前看起来比较稳定
老牌图床
我感觉是不是也能拿胶带门当图床
我之前已经全盘使用李大华同学的方法了唉唉,好久没更过 blog 了,等这学期考完试准备写一个地狱学期总结
现在非常舒服了
士也罔极 二三其德
我给博客加了个评论区,过程比较曲折
首先尝试了一下国内的各种 leancloud 的服务,很多 bug,解决不能,查了一下疑似是 vercel 默认域名国内没法访问(存疑)
然后用上了 gittalk,发现了 报错出现 Error: Validation Failed. · Issue #102 · gitalk/gitalk · GitHub 这个问题
根据提醒发现是标题名字超过了 issue 的 label 长度导致的,于是试图加一个 md5 包加密缩短长度,但是不懂 hexo 生成文章的逻辑,在.pug 里导入的 md5 函数总是被识别成 undefined 或者干脆说不是个函数。
最后看到配置文件里的 id 是一个变量名 location.pathname,试了下写死一个 slice 方法结果成了,所以 hexo 内部或者 yml 文件的逻辑其实是直接传字符串然后 eval() 吗?
听说 gittalk 也有安全问题,但是先不管了,现在应该可以在评论区用 github 帐号留言了
我用的 giscus
“一些 rustlings 题目”这篇文章的评论区似乎没有 work,因此我评论在这里了:
c.iter().map(|x| s + x).collect();
这句话的问题在于 Iterator::collect
的返回值是泛型(受 FromIterator<Self::Item>
约束),因此编译器无法确定返回值的具体类型——究竟是 String
,还是 Vec
?或者 HashMap
?因此 note 提示你手动指定,use collect::<String>()
instead.
另外简单提一下,map
上去的函数最好是 pure 的,换句话说就是无副作用,这里按照你的思路应该用 for_each
更好,因为实际上是在把东西一点一点往里面加,而不是一对一地进行映射。map
是 lazy 的,所以不得不加上一个 consumer,也就是这里的 collect
,但实际上 collect
的结果又 discard 了,没必要这样做,也不是 zero-cost 了。
一个比较简单的准则是,如果需要做带有副作用的“处理”,就用 for 相关的结构;如果只是一一对应地转换,就考虑 map
以获得更好的体验。例如:
fn print_iter<T>(it: T)
where
T: Iterator,
T::Item: Display,
{
it.for_each(|x| {
println!("{x}");
});
}
trait MyTransform {
fn transform(self) -> Self;
}
fn transform_iter<T>(it: T) -> impl Iterator<Item = T::Item>
where
T: Iterator,
T::Item: MyTransform,
{
it.map(|x| x.transform())
}
详细可见 Playground。
我看懂你的意思了,非常感谢
btw,我想问问你对副作用的理解,我的理解是只要没改变函数外的变量的函数都是 pure 的。
我对函数式语言和纯函数的接触只有 js 和 react,实在不是很深入
我当时觉得报错奇怪大概是因为那个大写的 B,后来查了下 reddit 应该是指 body,实际上应该就是上文提到的 self::item 了
不好意思,前一条评论有一点小错误。|x| s + x
确实是 pure 的。我似乎脑补成了 |x| s += x
。
这二者能兼得的话,CS 就不存在了。
想起了三体
一切的一切都导向这样一个结果:物理学从来就没有存在过,将来也不会存在。我知道自己这样做是不负责任的,但别无选择。
无论如何也无法阻止自己的失败,怎么办