Music by Cody Francis / Cayson Renshaw
普通视图
预料中的又倒下一批 Typecho 主题、模板、插件
前两天,网友「央」提醒 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
版的适配。
P.S. 计划年内重制 Snapic Paper 和 Snapic Plus 主题。
后记
除了附件描述的数据存储方式做了改变外,发现 1.3.0 rc
对主题配置的数据存储也做了同样的调整。
给 Typecho 博客添加申请友链、站点收藏等功能
把之前制作的模板 Lopwon Link 和 Lopwon Link Pro 整合成 Lopwon Link Ultra 独立页模板,也加入了 Lopwon Links 插件的一些功能,主要用于展示友情链接,管理站点网址,也可以浏览 RSS 聚合订阅内容,等等。
购买过模板 Lopwon Link 或 Lopwon Link Pro 的用户,可以免费升级使用 Lopwon Link Ultra 模板(演示)。
P.S. 受到不少社交平台评论区的「作者赞过」启发,最近,还折腾出了一款类似功能的 Lopwon Hub:Praised 插件。
给 Typecho 博客添加旅行足迹地图标记功能
其实,早几年制作的 Lopwon Footprint 插件已经实现如题功能,也一直作为博客的「我的足迹」展示。直到一周前,地图上毫无预警的出现鳞次栉比、赤焰灼目、颠覆认知的巨大水印。果然,使用第三方提供的免费 API 服务,特么的不靠谱。
估计是稍早前,在重制 Lopwon IPLoc「IP 转属地」插件,对并发数进行优化测试的时候,频繁触到了 API 的 QPS 上限。么么!原本就少得可怜的配额全都归零。这明摆着是要人付款买流量包呐。
幸好之前在制作 Lopwon Echarts「数据可视化」插件的过程中,无意瞥见 [#Echarts] 支持渲染 GeoJson 地图数据,刚好前段时间用这款开源图表库制作过 Lopwon LitCities「点亮城市」插件,练过手。
于是乎,折腾不到 Lopwon Footprint 五分之一的制作时间,完成了 Lopwon Roming Solo 插件,优雅替换。
插件 Lopwon Roming Solo 使用本地库和数据,无需依赖第三方 API 服务,交互友好,界面清爽……
给 Typecho 博客添加评论者「都说了啥」功能
前些年制作的 Lopwon Author 插件,其实已经实现过类似的功能,甚至更为全面些。只是,当时是为了熟悉 Typecho 的运作机制,才去捣鼓,在数据处理上难免拉胯。
花了两天,使用相对理想的方法,在当前博客折腾了相似的功能,可以一目了然的呈现评论者在博客里的评论状况,省了去数据库检索的麻烦。
与 Lopwon Author 插件不同,此方法通过新增路由,在前端按需查询匹配评论者的数据。输出诸如:该评论者的所有评论列表,以及对应的评论固定链接;该评论者的总评论数量;该评论者首评至今的时长,等等。
功能演示
博客内任意一篇文章页,点击评论者头像,可见。
如何实现
电邮
Typecho 记事阅读主题:Snapic Just 640px
在挺长的一段时间里,我从事的是与视觉传达相关的工作,把个人思想通过兴趣点延伸开,争得不容易遇到的同温层群体的认同与共鸣。虽说不是主业,与前端设计也无关,但于我认为,将所累积的经验运用至具有相似特征的博客主题的页面制作中,也是相通的。这样的风格,或者说是性格的映射,同样也体现在我拍摄的照片中,以及听歌喜好里,甚至是生活中。这样的风格,也未必会得到周遭人们的欣赏,毕竟与大众的审美观没有交集。
可能,这即是 lifestyle 吧,是时间积淀的养成,是附体于身的印记,更是一辈子的事情,也因此让我难以理解:为何要把博客整成信息密度堪比门户网站的样子。
博客所记录的文字,所展示的图片,不应该是能让自己得以勉励,给观者在浏览时,提供停留和思索的时间与空间,从而受到启发,产生互动嘛?
我曾在几天里打开了不下百来位建博时间有十来年的博客,这些博客,大部分依旧可以访问,大部分仍在持续更新,大部分关于工作生活,最重要的是,这些博客,大部分主题简洁清爽。这些博主们,几乎是从博客时代走过来的,促使他们仍在写博客的动力,不是因为博客那一键可更换的免费付费的胡里花哨的 Themes,而是他们能在日常中,感受到点滴,并写入博客。他们,不折腾博客主题。
前些年制作的 Snapic Paper 主题,也是自己 lifestyle 的体现,在现在看来,它似乎还不够纯粹,于是,萌发了捣鼓主题 Snapic Just 640px
的念头。
这可能是已知的首款使用无感翻页翻篇的 Typecho 主题,这个功能的灵感,最初源自几年前在制作 Snapic Visual 模板时的全屏画廊滚动翻页,当时在想:能否把类似的功能应用在 Typecho 的归档翻页和文章翻篇上呢?嗯,由于思路没搞通,就没再去践行,也就搁下了。
所谓无感翻页翻篇,指的是:不使用传统点击的方式进行翻页和翻篇,而是在电脑端通过鼠标滚轮,在滚动条触顶触底时,实现跳转至翻页翻篇的页面,而在移动端,则是通过手势滑动,同时,应该具有阻尼效果,避免过于灵敏误触执行。当然,考虑到兼容性,也会保留点击翻页翻篇的功能,只不过将其隐藏,使用按需唤出显示。
在制作 Snapic Just 640px
时,除了延续 Snapic Paper 「没有多余页面元素,能够看到干净文本,专注于安静浏览博客日志」的理念,还做了版式上的提炼,尽量不至于视觉难受,如:对容器间距,对内容行距、段距,对文本字号、字重、字色的和谐相融处理。
主题 Snapic Just 640px
以 max-width: 640px;
为内容区宽度,只有三部分(2 个页面 + 1 个滑窗),暂时不使用任何库依赖,摒弃了个人觉得不痛不痒、可有可无的功能,也置入了一些极少或甚至从未被实现过的功能,如:获取当前文章在博客所有文章中的序号,以提示当前的浏览状态。
Snapic Just 640px
会是一款开源免费的主题,你可以自由使用、修改、移植、分发,但禁止商用,包括衍生品,也希望你能保留主题作者 Lopwon 的信息,以及在你的项目中提及 Lopwon
P.S. 已发布