普通视图

Received yesterday — 2025年6月14日立云图志

预料中的又会倒下一批 Typecho 主题模板插件

2025年6月14日 09:00

fix.jpg


前两天,网友「央」提醒 Typecho 发布了 1.3.0 rc 版,我下意识地深吸口气。果然,昨天对在售的主题/模板/插件,传入新版 Typecho 中运行,各种报错。

一种情况是,自己在制作时,有些功能使用了偏方获取数据,出现兼容问题,如:


    foreach ($result as $value) { // 遍历文章数据 $result
        $value = Typecho_Widget::widget('Widget_Abstract_Contents')->filter($value); // 坊间偏方获取数据
        $permalink = $value['permalink']; // 文章链接
    }

    // 在查询文章表时,坊间流传以上方式获取文章链接,但在 Typecho 1.3.0 rc 版,报错且失效
    // 解决方法,使用内置方法 widgetById 获取文章对象,通过匹配文章 cid 获取对应文章链接

    foreach ($result as $value) { // 遍历文章数据 $result
        $lopwon = Helper::widgetById('Contents', $value['cid']); // 内置方法 widgetById 获取文章对象,详见 var/Utils/Helper.php 文件
        $permalink = $lopwon->permalink; // 文章链接
    }

另一种情况,实属无奈,发现 1.3.0 rc 对附件 attachment 描述 text 的数据存储,由原来的 PHP 序列化字符串,调整为现在的 JSON 字符串,这就让之前通过反序列化获取数据的方式,全都失效了。为了让两种数据类型都能兼顾,且在新旧版本的 Typecho 下正常运行,只好判断获取:


    foreach ($result as $value) { // 遍历文章数据 $result
        $textData = $value['text']; // 该值之前为 PHP 序列化字符串,现在为 JSON 字符串
        $valueText = null;

        // 先尝试解析 JSON (Typecho 1.3.0 rc)
        $jsonData = json_decode($textData, true);

        if (json_last_error() === JSON_ERROR_NONE) {
            $valueText = $jsonData;
        }

        // 如果不是 JSON 再尝试反序列化 (Typecho 1.2.1)
        else {
            $unserializedData = @unserialize($textData);

            if ($unserializedData !== false) {
                $valueText = $unserializedData;
            }
        }

        // 如果解析失败,则跳过
        if ($valueText === null) {
            continue;
        }

        // 其他
    }

这两天,已对 Snapic Nojs / Snapic CMS / Snapic Just 640px 主题,以及 Snapic Page / Lopwon Link Ultra 单页模板,还有 Lopwon Hub 插件,做了适配 Typecho 1.3.0 rc 版,计划年内重制 Snapic PaperSnapic Plus 主题。

  •  
Received before yesterday立云图志

给 Typecho 博客添加申请友链、站点收藏等功能

2025年6月7日 21:00

lopwon-link-ultra-post.jpg


把之前制作的模板 Lopwon LinkLopwon Link Pro 整合成 Lopwon Link Ultra 独立页模板,也加入了 Lopwon Links 插件的一些功能,主要用于展示友情链接,管理站点网址,也可以浏览 RSS 聚合订阅内容,等等。

购买过模板 Lopwon Link 或 Lopwon Link Pro 的用户,可以免费升级使用 Lopwon Link Ultra 模板(演示)。


P.S. 受到不少社交平台评论区的「作者赞过」启发,最近,还折腾出了一款类似功能的 Lopwon Hub:Praised 插件。

  •  

43,芒种

2025年6月5日 12:00

43_Mangzhong.jpg

朋友说我这几年拍的东西少了烟火气。确实,在法律法规不断完善下,街头拍照已然自带风险,不仅涉及个人的肖像权,也会让人质疑拍摄动机,冷不丁还会收到律师函,吓得我赶紧把镜头转向了花草树木蓝天白云。

今日芒种:戴耳机,看视频(流畅 / 卡顿

Music by Carlos Carty
  •  

给 Typecho 博客添加旅行足迹地图标记功能

2025年5月24日 09:00

lopwon-roaming-solo.jpg


其实,早几年制作的 Lopwon Footprint 插件已经实现如题功能,也一直作为博客的「我的足迹」展示。直到一周前,地图上毫无预警的出现鳞次栉比、赤焰灼目、颠覆认知的巨大水印。果然,使用第三方提供的免费 API 服务,特么的不靠谱。

估计是稍早前,在重制 Lopwon IPLoc「IP 转属地」插件,对并发数进行优化测试的时候,频繁触到了 API 的 QPS 上限。么么!原本就少得可怜的配额全都归零。这明摆着是要人付款买流量包呐。

幸好之前在制作 Lopwon Echarts「数据可视化」插件的过程中,无意瞥见 [#Echarts] 支持渲染 GeoJson 地图数据,刚好前段时间用这款开源图表库制作过 Lopwon LitCities「点亮城市」插件,练过手。

于是乎,折腾不到 Lopwon Footprint 五分之一的制作时间,完成了 Lopwon Roming Solo 插件,优雅替换。

插件 Lopwon Roming Solo 使用本地库和数据,无需依赖第三方 API 服务,交互友好,界面清爽……

全页地图(见这),坐标定位(演示),文内地图(如下):


  •  

给 Typecho 博客添加评论者「都说了啥」功能

2025年5月16日 09:00

lopwon-user.jpg


前些年制作的 Lopwon Author 插件,其实已经实现过类似的功能,甚至更为全面些。只是,当时是为了熟悉 Typecho 的运作机制,才去捣鼓,在数据处理上难免拉胯。

花了两天,使用相对理想的方法,在当前博客折腾了相似的功能,可以一目了然的呈现评论者在博客里的评论状况,省了去数据库检索的麻烦。

与 Lopwon Author 插件不同,此方法通过新增路由,在前端按需查询匹配评论者的数据。输出诸如:该评论者的所有评论列表,以及对应的评论固定链接;该评论者的总评论数量;该评论者首评至今的时长,等等。


功能演示

博客内任意一篇文章页,点击评论者头像,可见。


如何实现

电邮 lopwon@qq.com 付费改造。

  •  

43,春分

2025年3月20日 12:00

43_Chunfen.jpg

几周前,早已把冬日的衣裤洗晒叠起收好,这两天,昆明竟然下起了雪。

今日可是春分呀:戴耳机,看视频(流畅 / 卡顿

Music by Jordan Critz
  •  

Typecho 记事阅读主题:Snapic Just 640px

2025年3月15日 09:00

Snapic-Just-640px.jpg

在挺长的一段时间里,我从事的是与视觉传达相关的工作,把个人思想通过兴趣点延伸开,争得不容易遇到的同温层群体的认同与共鸣。虽说不是主业,与前端设计也无关,但于我认为,将所累积的经验运用至具有相似特征的博客主题的页面制作中,也是相通的。这样的风格,或者说是性格的映射,同样也体现在我拍摄的照片中,以及听歌喜好里,甚至是生活中。这样的风格,也未必会得到周遭人们的欣赏,毕竟与大众的审美观没有交集。

可能,这即是 lifestyle 吧,是时间积淀的养成,是附体于身的印记,更是一辈子的事情,也因此让我难以理解:为何要把博客整成信息密度堪比门户网站的样子。

博客所记录的文字,所展示的图片,不应该是能让自己得以勉励,给观者在浏览时,提供停留和思索的时间与空间,从而受到启发,产生互动嘛?

我曾在几天里打开了不下百来位建博时间有十来年的博客,这些博客,大部分依旧可以访问,大部分仍在持续更新,大部分关于工作生活,最重要的是,这些博客,大部分主题简洁清爽。这些博主们,几乎是从博客时代走过来的,促使他们仍在写博客的动力,不是因为博客那一键可更换的免费付费的胡里花哨的 Themes,而是他们能在日常中,感受到点滴,并写入博客。他们,不折腾博客主题。

前些年制作的 Snapic Paper 主题,也是自己 lifestyle 的体现,在现在看来,它似乎还不够纯粹,于是,萌发了捣鼓主题 Snapic Just 640px 的念头。

这可能是已知的首款使用无感翻页翻篇的 Typecho 主题,这个功能的灵感,最初源自几年前在制作 Snapic Visual 模板时的全屏画廊滚动翻页,当时在想:能否把类似的功能应用在 Typecho 的归档翻页和文章翻篇上呢?嗯,由于思路没搞通,就没再去践行,也就搁下了。

所谓无感翻页翻篇,指的是:不使用传统点击的方式进行翻页和翻篇,而是在电脑端通过鼠标滚轮,在滚动条触顶触底时,实现跳转至翻页翻篇的页面,而在移动端,则是通过手势滑动,同时,应该具有阻尼效果,避免过于灵敏误触执行。当然,考虑到兼容性,也会保留点击翻页翻篇的功能,只不过将其隐藏,使用按需唤出显示。

在制作 Snapic Just 640px 时,除了延续 Snapic Paper 「没有多余页面元素,能够看到干净文本,专注于安静浏览博客日志」的理念,还做了版式上的提炼,尽量不至于视觉难受,如:对容器间距,对内容行距、段距,对文本字号、字重、字色的和谐相融处理。

主题 Snapic Just 640pxmax-width: 640px; 为内容区宽度,只有三部分(2 个页面 + 1 个滑窗),暂时不使用任何库依赖,摒弃了个人觉得不痛不痒、可有可无的功能,也置入了一些极少或甚至从未被实现过的功能,如:获取当前文章在博客所有文章中的序号,以提示当前的浏览状态。

Snapic Just 640px 会是一款开源免费的主题,你可以自由使用、修改、移植、分发,但禁止商用,包括衍生品,也希望你能保留主题作者 Lopwon 的信息,以及在你的项目中提及 Lopwon

P.S. 已发布

  •  
❌