各位好,各位新年好,这里是庭院一角,这里是HarryPan。

本站自三月正式开放以来,这一路也是跌跌撞撞,人来人往。如今本站也尽量平稳地走到了年底,看其他博客都写年末总结,遂仿着他们的格式,来写一写这一年博客的改动,为今年的庭院一角做个小小的收尾。

各位朋友

其实第一年没什么好写的,但转念一想,恐怕明年大家毕业,各奔东西,估计就不会有新的作者入驻了,大概可以认为现在的各位就是本站的主要阵容。

博客这种东西,大多数人都是开始时兴趣满满,写不了几篇就开始变得怠惰,逐渐生疏,最后完全遗忘。即使是本站头牌Monius,自十一月中之后也一稿未发。而6月加入的吕茜李,则保持着十分稳定而优秀的更新频率,实乃吾辈楷模。

本站浏览量最高的文章很长一段时间内都是Monius从他的公众号拿来的【辛妍食记】饮者杂记(其一)。这篇散文在没有推介分发的情况下意外地保持了一骑绝尘的浏览量。然而9月的开封美食图鉴——面食类(Ⅰ)异军突起,迅速夺下了浏览量最高的宝座,指导了一众开封学子的美食之路。

除了楷模吕茜李和头牌Monius,本站还有一位大神,这位大佬不鸣则已,一鸣惊人。可惜本站到现在还是不温不火,说明这位元直兄尚在韬光养晦,就等站长顺江而下决战赤壁时给站长来个大的。

博客改动

自七月更换为VOID主题以来,这个主题被我缝缝补补,在许多可见不可见的地方做了不少改动。其中不少地方都是自娱自乐,这里拣一些之前没提过的一一道来。

天气插件

这个插件算是我对插件开发的第一次尝试。

这个插件的实际感知其实非常弱。它的效果是每次访问主页的时候就会随机获取一个城市的天气,如果是下雨,则根据风力和降雨量在页面显示下雨特效;如果是下雨,则根据风力和降雨量在页面显示飘雪特效。

这个插件源自Snow插件。我在修改后给插件接入了彩云天气的API。彩云API根据经纬度获取天气信息,我便拉取了一份全国省市的经纬度列表。每次访问主页时便随机一个城市,通过API获取其天气状况,通过<canvas>在页面上绘制特效,并在页脚处给出提示信息。

其实这个插件,如果我不提,恐怕九成的人都不会发现。剩下一成就算发现了特效,也不会发现页脚的天气与特效相关。那么为什么我要选择随机地点,而不是设计成“访客的位置”呢?

说实话,原因来自我一个稍有幼稚的想法:在访问主页时,发现世界的另一个角落正在下雨或落雪,似乎是个挺浪漫的事;如果设计成显示访客城市的天气的话,窗外大雨滂沱,打开博客还是阴雨连绵,心情大概只会更差吧。

这个插件暂时还不会发布,因为预定还要加上沙尘,阴霾等天气的特效,但是对如何设计这些特效完全没有思绪。如果有懂这些的前端大佬,还希望可以赐教。

随机主图

这个其实没啥好说的。就是个很简单的随机图片API。

//rand.php
<?php
$pic='https://cos.harrypan.cn/RandomImage/'.rand(1,17).'.jpg';
//返回指定格式
$type = $_GET['type'];
switch ($type) {
//JSON返回
    case 'json':
        header('Content-type:text/json');
        die(json_encode(['pic' => $pic]));
    default:
        die(header("Location: $pic"));
}
?>

这个功能本身就没什么复杂的地方,我也直接力大砖飞,从需求入手,写了个PHP。在主图位置填入其链接,就可以实现随机主图的功能。

但是VOID的主图只会在主页显示。而在分类,作者,搜索等各种页面,都是只显示标题,不显示头图的。所以我也简单暴力地改了主题的banner.php:

if (!defined('__TYPECHO_ROOT_DIR__')) exit;
$setting = $GLOBALS['VOIDSetting'];
$banner = 'https://cos.harrypan.cn/RandomImage/'.rand(1,17).'.webp';
$blur = false;

if($this->is('post') || $this->is('page')) {
    $banner = $this->fields->bannerStyle < 2 ? $this->fields->banner : '';
    $blur = $this->fields->bannerStyle == 1;
}

表情插件

VOID主题是嵌入了OwO表情组件的。然而这个组件要配置表情包十分麻烦:要将表情图片的名称转码,为表情包编制json索引,十分麻烦。我当时因为没有太大修改的需求,便换了几个表情包,便搁置不管了。

前几日看到了Mikusa的年度总结也在吐槽这个问题,便突然有了想法:把OwO组件单独做成一个插件支持。

表情组件本身的改动并不大,但影响使用的地方还是有的:如果表情包过多,底部表情导航就不会显示在后面的表情包。顺便我很青睐Project Poi的表情组件:

Project Poi的表情组件

这个表情组件十分完美,有动效,有文本提示,还能根据页面宽度切换样式。我虽然暂时没法做到一模一样,但至少可以仿照着修改导航栏。我便将表情组件的导航栏改为显示图标,并支持多行。

除此之外,我还为他设计了一键生成索引的功能,以后装卸表情包就会更轻松,再也不用重复那些反人类的工作了。

前方的路

说实话,虽然建里站的时候我说过:VOID特别符合我的审美。但在这半年,我也逐渐感受到了我的各种创想,已经很难通过“增补”来完成了。那么下一步是什么呢?

在我探索的时候,我发现Isla突然无法访问了。我本想通过Github上的QQ群联系博主询问,却被群名吓退。所幸数日后,Eltrac‘s便重新上线了。这个博客给我展示了一个大胆的可能性:将Typecho作为无头CMS,然后另行设计一套博客前端,以摆脱Typecho和PHP的种种限制。现在这个方案已经在规划中,大概明年,也许就会上线——胎死腹中也不一定。

总之就是如此,一年风雨暨彩虹,这里是HarryPan,这里是庭院一角。愿明年的今天,我们还会在此相会。