最新对博客做了一些小装修

✤ 13 Apr 2025 ✤

不改了不改了, 这回真的不改了, 马上就要考试了.

从去年换了这个主题后, 又已经一年了. 这些年我对换样式, 设计主题什么的早已兴趣大减, 所以如果没有特殊情况的话, 估计以后都是这个主题了(也不好说).

虽然平日写的不多, 但是一年了, 还是有点疲劳, 所以有在悄悄对主题进行细节修改, 反正也没人看. 这里做个汇总.

墙壁上色

设计的时候就是打算是简约的白底, 当初第一版在背景上心机的弄了些随机小点纹理, 后来觉得影响阅读, 就去掉了. 现在觉得纯白底色过于刺眼, 黑色又太酷了驾驭不了, 所以稍微上了一点颜色, 本意是想带点那种发黄的感觉. 纯色上去后觉得还是寡淡了还没原来的清爽, 遂又在背景上弄了点小点做纹理. 但是考虑到影响到文章的阅读, 所以在文章内容的地方还是纯色的.

因为对背景颜色进行了修改, 所以部分不和谐的配色也统一进行了调整, 在保留绿色的情况下, 整体做了个偏色.

还有一些小处的修改, 比如鼠标和滚动条, 图片, 分割线, 自定义字段显示, 以及加了几种正文样式, 就不细说了. 有时候觉得加了有点多余, 但是还蛮少女心的.

显示内容控制

我一直觉得我大多数文字是一时冲动的不吐为快, 冷静之后就觉得那样的表露特别蠢(可恶, 是黑历史), 但是删了又觉得可惜, 毕竟记忆保留不了那么长久, 而文字可以作为提醒.

微信的朋友圈显示时间范围就特别好, 现在很多的app都有这样的设计. 为了避免看到太过久远的吐槽被聚合显示出来, 所以我对所有展示的文章限制为距今12个月. 这种改动主要体现在聚合页上, 旧文章也没有被实际删除/私密, 直接输入地址仍然会被显示. 主要是不想对typecho的代码进行修改, 虽然它已经很多年没有更新了, 现在的功能对于我来说足足够. 但是万一呢, 我肯定是要升级的, 那样再改可就太麻烦了.

我主要在内容/顶部信息/上下篇关联部分进行了限制.

  1. 聚合页内容

    我对聚合页文章列表的创建时间进行了筛选, 距今超过12个月的文章就不会进行显示了. typecho没有特别好的办法, 考虑到我的文章频率, 我拉取了最新的100篇(我肯定写不了这么多)文章, 然后筛选显示. 如果拉回的文章列表是空的, 就显示一行文字调侃下.

    确实不太优雅, 反正是能用.

    1. $this->widget('Widget_Contents_Post_Recent', 'pageSize=100')->to($post);
    2. $data_min = date("Y-m", strtotime("-11 month"));
    3. while($post->next()):
    4. $data_tmp = date('Y-m', $post->created);
    5. if ($data_min > $data_tmp ) {
    6. break;
    7. }
    8. $output .= '...'; //在这里的文章就是我想要输出的
    9. endwhile;
    10. echo $output;
  2. 隐藏分类链接

    typecho在输出文章分类信息的时候会默认给加上连接, 这样会直接进入这个分类所有的文章页面, 这就破坏了我只想聚合12个月的初衷, 因此把第二个参数赋为false, 就不会输出链接了.

    1. <?php $this->category(',', false); ?>
  3. 上一篇/下一篇

    在文章页, 我设计的是会显示上一篇/下一篇的内容. 这块跟分类一样, 也是会对跳出我的聚合范围, 所以在对上/下一篇的输出时候, 我同样也进行了筛选.

    让我们首先剽窃一下Ryan大佬的代码, 对functions进行扩充.

    1. function getNextPost($archive)
    2. {
    3. $db = Typecho_Db::get();
    4. $post = $db->fetchRow($db->select()->from('table.contents')->where('table.contents.created > ? AND table.contents.created < ?', $archive->created, Helper::options()->time)
    5. ->where('table.contents.status = ?', 'publish')
    6. ->where('table.contents.type = ?', $archive->type)
    7. ->where("table.contents.password IS NULL OR table.contents.password = ''")
    8. ->order('table.contents.created', Typecho_Db::SORT_ASC)
    9. ->limit(1));
    10. return $post;
    11. }
    12. function getPrevPost($archive)
    13. {
    14. $db = Typecho_Db::get();
    15. $post = $db->fetchRow($db->select()->from('table.contents')->where('table.contents.created < ?', $archive->created)
    16. ->where('table.contents.status = ?', 'publish')
    17. ->where('table.contents.type = ?', $archive->type)
    18. ->where("table.contents.password IS NULL OR table.contents.password = ''")
    19. ->order('table.contents.created', Typecho_Db::SORT_DESC)
    20. ->limit(1));
    21. return $post;
    22. }

    能够在当前文章获取上/下篇文章的更多信息之后, 就可以对链接开始筛选显示了, 以获取上一篇为例.

    1. $data_min = date("Y-m", strtotime("-11 month"));
    2. $prevPost = getPrevPost($this);
    3. $data_tmp = date('Y-m', $this->created);
    4. $data_prev = date("Y-m", $prevPost['created']); //上一篇时间
    5. if ($data_min <= $data_tmp && $data_min <= $data_prev) { //本文与上一篇时间均在许可时间内
    6. echo $this->thePrev('%s', '没有咯');
    7. }

移除Memos

Memos挺好用的, 之前的一年多我一直在用. 但是我的Memos更多的是写给我自己的备忘录, 比如计划买什么, 看什么这种. 这样的内容我不太想放到网上, 因此用的时候一直写的私密的信息. 今年索性把Memos移到NAS上内网使用了. 因此, 就把主题内部关于Memos的内容全部移除了. 未来要不要在放一块类似这样的信息, 以及如何的展现, 我还在犹豫的过程中, 所以现下就这样吧.

关闭RSS输出

我不太想继续维持RSS的输出了. 主要有以下几个考量, 第一是我对聚合内容的时间限制. 在不修改typecho代码的情况下, 想在RSS上实现这个功能, 我目前没有什么头绪.

第二是, 再次回归博客后, 我发现各类的博文聚合网站如雨后春笋. 它们大都通过RSS来收集成员的变动. 一些聚合网站还好, 只收录站点名称/文章标题等信息; 又或者是成员制的, 你必须要申请才能加入. 但有一些聚合网站是全文收录或者在成员制外会主动收录一些站点(我并不是说我的文章很好会被收录). 这样的聚合让我很困扰, RSS与我而言是能方便好友阅读的方式, 但我提供RSS不代表默许了被收录/转载. 且当我删除文章/抛弃博客的时候, 我希望的是公网上这些文字也一起毁灭, 而不是存在若干个影印本(内网/私有的我不在乎). 跟前文的聚合时间限制的缘由一样, 我讨厌被人翻旧账.

去年8月底, 我在网上围观了一场关于聚合网站收录的局部战斗. 这让保留RSS的想法彻底粉碎. 我撤掉了cc协议, 并在今年我不再对内容进行RSS的输出.

typecho如果想在不修改代码的情况下关闭RSS的输出, 只能通过修改数据库来实现了, 这部分内容剽窃fordes大佬的方案.

进入数据库, 找到结尾为options表, 将name为defaultAllowFeed的行, 将其value值修改为0, 如果你的站点有多个用户, 可能会有多项记录, 记得一并修改.

  1. UPDATE `options` SET `value` = '0' WHERE `name` = 'defaultAllowFeed';

修改完默认配置后, 还需要修改掉之前文章的配置. 同样的, 找到后缀为contents的表, 将所有文章的allowFeed字段值修改为0.

  1. UPDATE `contents` SET `allowFeed` = '0';

还欠的装修计划

目前还有一些在计划中的修改, 由于真的快要考试了还没有复习, 所以暂时都不会动工.

  1. 主页&头图部分

    目前的头图用了一只可爱的黑猫, 会摇尾巴的那种🥰~ 这个只是暂时的, 在计划中我打算对此块区域做一些有趣的事儿, 由于还没有开工, 就先保密吧.

  2. 留言本/提问箱

    去年在制作主题的时候, 对原有的留言本进行了破坏. 我现在有一种新的实现想法, 虽然已经一年了, 目前还只是一个文件夹. 所以等混完考试后这部分才会动工.

🙈🙉🙊 如果你愿意留下点痕迹,我会特别开心的! * 3


  1. 小F

    现在这个博客的底色特别好,我手机里阅读小说的APP背景色也是类似的,真的对眼睛友好。我也要去研究研究给自己博客换个配色了~

    1. 15

      谢谢喜欢~ 你的博客也好久没有折腾啦, 现在正是好时节.
      又, 我帮你改过来啦🤭

    2. 小F

      哎呀,一个不小心贴了你的博客地址,我贴错啦抱歉抱歉TAT