Sky Typecho Theme 大概是我第二个着力开发的 php 的项目,修修补补来到了 1.2 版本(其实就是第二个 release 的版本……),也有点感觉这个主题接下来的开发陷入了一种停滞的状态。有感而发。

弃坑的 PasteBurn

其实大概在高中退役前后,我也倾注心血开发过一个 php 的项目:PasteBurn

PasteBurn 首页

之前网传腾讯相册在用户删除云端照片后,服务器中不会真正删除,而会一直留存。
同样,在微信等国内即时通讯 APP 上「撤回」消息也不会真正让消息在服务器上消失。
这一切都为商业公司窃取用户隐私乃至有关部门的审查提供了便利。
解决方案之一是将文字转移到真正可信任的服务器上提供,以此「确保删除」。

PasteBurn 最主要的功能是「阅后即焚」,是一个可以分享文字的平台。填入文字,生成链接,打开链接之后文字就会焚毁。

说是 php 的项目,其实似乎是结合了 php、css(Bootstrap4)、JavaScript(jQuery,AJAX)和数据库(MySQL)等等的一个大工程。我甚至几乎在里面实现了一整套用户登录的功能,从密码存储验证(用 phpass 库)到存 cookie、本地 JWT 登录验证,现在想想真是不容易。

但是关于这个程序的用途,我实在很难想到除了做一些偷鸡摸狗的事情之外的其他用途……一开始开发这个程序自己也是为了分享某些魔法软件的配置教程和配置文件。
十分有限的应用也限制了自己的开发热情。总之高考之后就是弃坑了。

Sky Typecho Theme 的诞生

为什么要折腾自己的独立博客?

互联网是一个虚拟的世界,在这个世界里我们也要找到一个家,找到一个精神的归属的地方。
CSDN、QQ 空间之类的平台,就像是出租房,游戏规则由这些企业来定义。哪里能加代码,哪里能加什么装扮,哪里有广告,哪里要氪金,这都由不得你。
自己的博客就像是自己造的别墅,虽然配置的过程可能很麻烦,但是游戏规则全由你来定义。

那么自己写一个主题,大概就是自己设计这个别墅吧。

起源

折腾博客这么久以来,改过很多主题,偏好也从花里胡哨走向了简洁,最近用的几个主题,比如 WordPress 的 Adams 主题,Typecho 的 Fantasy 主题,都是特别喜欢几乎舍不得丢弃的。
但是这终究是别人写的主题,我永远不能在页脚写上「Theme by SkyWT」,我的网站总感觉不是自己的。

特别是,虽然我的 CSS 基础十分薄弱,但是了解到 Bootstrap 这类前端框架的存在之后,感觉样式这方面的难度大大减小。于是就打算折腾一个自己的主题。又由于偶然了解了 Argon 这个基于 Bootstrap4 的框架,非常喜欢(因为原生的 Bootstrap 已经被各种网站用烂了,那色彩越看越丑,实在不是很适合个人博客……),于是就决定基于这个 Argon Design System 开发一个自己的主题。

一些碎碎念

Coding Sky 主题

关于这个主题,也不能说是我自己设计的。Argon Design System 给我们铺平了太多的路,我大概只是自己实现了一个大致的框架,至于具体的细节 Argon 几乎全都解决了。
功能上真的非常简陋。有些功能(比如加密文章)还是完全不能看的,文章的排版实在纯粹,交互上没有任何动效,链接都是默认样式。没错,就是以所谓的简洁来掩盖功能的简陋。只能说作为一个简洁的个人博客主题,它或许够用了。仅此而已。

有时候又会感觉,如果牛顿说他站在巨人的肩膀上,我们简直是站在叠罗汉的巨人们中最顶层的肩膀上。我的主题基于 Argon 编写,Argon 又基于 Bootstrap4、jQuery,jQuery 又是 JavaScript 的库,它们又要站在浏览器的肩膀上。而这又是一个 Typecho 主题,基于 Typecho 才能使用;Typecho 又要 Nginx、MySQL、PHP 的运行环境,这些又都在那台 Linux 服务器上部署……

现况和尾声

在尝试给主题加上更多的功能,做出更多优化,然而越到后面就越觉得举步维艰。

Argon CSS 的代码块样式和 highlight.js 的代码高亮样式会冲突,这个优先级的问题我怎么都搞不定,只好去修改主题内置的 Argon CSS 的源代码,也导致这个魔改的 Argon 没法通过 jsDelivr 调用。
关于浏览器的 CSS 缓存机制,涉及太多基础的知识,研究了半天没搞明白。
文章内链接的样式和一些想要的动效,都涉及比较基础的 css,我实现起来还是比较困难。
关于文章加密页面的设计,以及其他很多功能,Typecho 的文档里只字未提,只能自己去研究源代码,实在难度比较大。
……

最主要的原因是,关于主题开发的这些知识太「上层」了,太综合了,太偏近于应用了,而其下层的基础我根本没有系统地去学习。地基不稳的建筑是很难高耸入云的,并且越往上层建造就越困难。现在感觉自己就像是一个连加减乘除都没学好的孩子在做高数题。

然而大学里也(应该)不会有一门专业课教我们 css、php 和网站开发,很多很多的东西还是要靠自己去研究学习。就像装树莓派 Nextcloud 那篇里反思的一样,基础知识的学习的确更加枯燥,但是它们是必不可少的地基。

所以 Sky Typecho Theme 的开发可能要再停滞一小会了。

一起加油吧!