新增亲子日记封面保护 新增亲子日记封面保护机制:可信设备展示缩略图,陌生设备展示模糊图。可信设备(Cookie标记)包含博主(我本人)、知道日记口令的(我家人)、当前设备发表过评论并被审核通过的。图片表现如下: 老婆跟我抱怨过很多次,首页展示宝宝照片封面有隐私风险,这次解决了这个问题。最初就想到用图片模糊来处理,但碍于影响浏览体验没有下决心。现在想通了,除了我和家人,并没有人会在乎宝宝每天的成长照片。 因为前面已经做了权限验证,所以加一道拦截非常容易。实际开发这个功能的时间花在纠结用哪种模糊效果上,我筛选后的方案分别是Low Poly、毛玻璃和油画。 Low Poly 是我最感兴趣的方案,用了最长的时间来研究和测试。但经过反复验证,应用在小尺寸的封面图上效果很糟糕,将单元调大就毫无细节,调小就有锯齿感,无奈放弃。而毛玻璃效果有令人不适的粗糙感,也淘汰了。最后我选定的方案是油画效果,画面足够模糊,同时细节又足够丰... 2024-11-18
双击全选代码文本 我代码高亮是几年前参考Prism改写的,留有一个遗憾是缺失复制代码文本的功能,因为我一直没有找到理想的交互方式。常见的办法是在右上角放一个常驻或悬停可见的复制按钮,点击后自动将全文复制到剪贴板。我不认可这个设计,一是按钮造成一小块遮挡,二是移动鼠标去找一个按钮进行复制不是很自然的交互,特别是文本较长需要往上回滚的情况下。 我平时习惯双击选中一段文本,按照这个方式增加了双击全选代码文本的功能——仅全选而不自动加入剪贴板,防止误触。 $pre.on('dblclick', () => { let range = document.createRange(), selection = window.getSelection(); range.selectNodeContents($pre[0]); selection.removeAllRanges()... 2024-09-26
“杜郎俊赏”的由来 Google 搜索“杜郎俊赏”,我的网站排在第一页了。虽然没什么用,但是觉得很牛逼。因为在字面上“杜郎俊赏”不是我自己生造的词,而是出自南宋词人姜夔《扬州慢·淮左名都》: 杜郎俊赏,算而今、重到须惊。 词中“杜郎”指的是唐代诗人杜牧,他曾在扬州为官,留下了许多赞美扬州的诗篇;“俊赏”则是赞其风流倜傥,有卓越的鉴赏水平。此处大意是:杜牧这位俊逸清赏的游冶大家,对昔日繁华的扬州不吝赞赏,但若是如今故地重游,面对战后的荒凉景象,也会感到震惊和悲哀。原词通过对比扬州的昔盛今衰,抒发了对历史变迁的哀思。 不过我的站名“杜郎俊赏”只是借用了字面,意思全然不同。说起由来很简单,域名备案要求写站名,不得包含“博客”、“空间”等字样,且建议不使用常见词。我搜索一番,第一眼看到“杜郎俊赏”就非常喜欢。我的名字“杜俊”就在字面里,跟域名"dujun"达成了统一。“杜郎”指代我自己;“俊赏”表达的是“俊”字系列组... 2024-09-16
更换天气信源 [附件] 宝宝日记后台编辑器根据定位自动获取当日天气信息。这项功能开发于 2017 年,当时选定的方案是采集中国天气网页面,通过正则表达式提取相关数据。但现在偶然发现其天气信息与墨迹天气 APP 有差别,我到中国气象局官网验证,与墨迹天气是一致的,也就是说中国天气网数据是错误的。不准确的信源毫无意义,马上决定更换。 经过对比,最终选定和风天气作为新的天气信源,免费版接口支持每天1000次请求。 注册 在官网注册账号(需要邮箱和手机号),创建一个免费订阅,记录 KEY 值。 调用 详见文档:https://dev.qweather.com/docs/api/weather/weather-daily-forecast/ 接口调用 PHP 代码参考: declare(strict_types = 1); /** * 天气 (和风天气) */ class Vendor_Weather { //... 2024-09-11
友情链接模块发布 新增友情链接页面,入口在电脑端的侧边栏或手机端的搜索页的“友链”。 1. 前言 建站七年了,一直没有做友情链接的模块。诚然,博客这种古典互联网产品,友链是最典型的应用,缺失有点遗憾。期间也反复想过要做,但是有两方面问题没有找到满意的方案。 1.1 没有满意的友链样式 网上常见的友链有这些样式: 网站名称文字链接 头像加网址、网站描述 网站链接加最新 feed 头像、网站描述都是静态的,我觉得无趣。于是我尝试过抓取 feed,然后就有两个问题: rss 地址发现,需要匹配各种未知规则,除非手动填写地址; 有些网站没有 rss,如果直接爬取页面,匹配内容又很麻烦。 所有长期以来,友情链接的表现样式就把我卡住了。 1.2 没有满意的友链规则 相比样式,友链的规则逻辑是让我更想不好的。典型的交换友链方式是,博友之间直接联系,互相提供文字、链接、头像、截图等。我很不喜欢这样的流程,因为有恼人的几个因... 2022-10-06
发现最近还有些访问来自 typecho 论坛,所以特地解释一下,本站已经不是 typecho 系统,是我用 yaf 框架重新开发的。 3 月份发帖时,本站是基于 typecho 二次开发的,去除了所有我不需要的功能。后面几个月业余时间,时不时地又改了很多东西。 但是 typecho 非 MVC 模式和一些设计思路,我个人感到很别扭,导致二次开发的效率不高。最终决定推倒重来,两周就撸了基于 yaf 框架的现在的系统。当然,效率高主要得益于前面的二次开发已经全新封装了大部分的类库。 样式设计,特别是后台设计,参照了 typecho,在【关于】中有声明。 做这个站纯粹自娱自乐,主要记录宝宝的成长,让不在身边的爷爷奶奶每天看到宝宝照片。但是很长时间里,我饶有兴趣写代码完善这个站,做好了却没兴趣写文章,做了个本末倒置的博客。 考虑这个站的用途和访问量的话,完全过度开发了。很大程度上是把它做成一点技术... 2017-05-29
建站之天气获取 写文章时自动抓取当前天气,找了几个 api 都不靠谱,直接采集中国天气网的数据。 例如采集富阳的天气地址: $url = 'http://www.weather.com.cn/weather/101210108.shtml'; $raw = file_get_contents($url); $raw = str_replace("\n", '', $raw); if (preg_match('', $raw, $match)) { //匹配到天气文字 } 2017-05-26
上线挺长一段时间了,一直在重构代码,懒得写文章,作为博客来说有点本末倒置了。 看来我更喜欢写代码,而不是写文字了。 网站系统变更路线: wordpress 和 typecho 之间选择了后者来搭建 设置了 maupassant 皮肤 修改代码和样式,去除了 rss 等我不想要的功能 文章、评论等做了全站缓存 加入了图片、视频处理 推倒一切,用 yaf 重写了整站 2017-05-19
建站之 redis 纯内存运行 mysql 做永久存储,redis 做缓存。所以将 redis 设置为纯内存运行,减少开销。 编辑 /etc/redis/redis.conf,修改下列几项 #注释掉 save 项 #save 900 1 #save 300 10 #save 60 10000 #设置最多 1G 内存 maxmemory 1GB maxmemory-policy volatile-lru appendfsync no 2017-05-19