anzhiyu主题文章板块中关于原创与判定的实现逻辑问题

进行主题修改前必看

  • 博客魔改有风险,请务必备份你的原代码

  • 因为.pug.styl以及.yml等对缩进要求较为严格,请尽量不要使用记事本等无法提供语法高亮的文本编辑器进行修改。

  • 本文涉及修改内容会以diff代码块进行标识,复制时请不要忘记删除前面的+,-符号

  • 本帖基于Anzhiyu主题进行修改方案编写,因此请读者优先掌握Anzhiyu主题官方文档的内容后再来进行魔改。

前言与实现逻辑

在写部分转载文的时候,发现关于转载的判定有些奇怪。

奇怪在哪里呢?

假如说文章下方的版权模块是更多是为了介绍自己的一个板块,那你就可能可以理解为什么需要将copyright_author的作者修改为自己了,一个原因是你修改为转载文的原作者后头像不匹配,显得也不美观。另一个原因是它与你的.config.author有所冲突,anzhiyu主题的大量元素与这一项有关,比如说card-content个人卡片模块

个人卡片模块

页脚的网站版权元素

页脚的网站版权元素

其中带有的名字,均与你的.config.author相关联,如果只是单单将_config.yml里关于作者的定义删去并不能治本,会导致许多元素缺失。

所以在我的想法里应该要达到什么样的效果呢?

  1. 保留copyright_author的定义可以写上自己的名字。(尽管它的本意是代表转载文的原作者名字
  2. 不与config里的author冲突(毕竟转载判定只影响文章,而author就不同了

所以这里就对部分转载文的原作者抱歉了

Copyright模块应该需要达到的效果

本来的想法是蛮绕的,因为又是影响这个影响那个,导致思绪不是很好捋清。后来看到anzhiyu文档里关于front-matter-copyright的定义时,

写法解释
copyright【可选】显示文章版权模块(默认为设置中 post_copyright 的 enable 配置)
copyright_author【可选】文章版权模块的文章作者
copyright_author_href【可选】文章版权模块的文章作者链接
copyright_url【可选】文章版权模块的文章链接链接
copyright_info【可选】文章版权模块的版权声明文字

copyright一般来说会在什么情况写在front-matter上呢?

聪明的你一定知道–只有在确认它是转载文的时候会写上,而且不仅要写copyright的布尔值,还要将关于copyright的相关信息补充上

所以思路打开了,就是只要写上copyright的布尔值就可以判断文章为转载

当然实现的逻辑会不会有BUG还有待商榷,比如有些刁钻的角度,假如说不写copyright的其他值影不影响原创转载的判断等等(这我还是不实验了吧,本来就自用的东西

修改

实现逻辑有了,剩下就是修改。

修改的方式非常简单,所以这一篇的主要目的只是为了说明一下有这种情况发生,以及如何应对不符合常理的逻辑。

1.

路径anzhiyu\layout\includes\post\post-copyright.pug

将原来.post-copyright__post__info下方的

1
- if (page.copyright_author && page.copyright_author !== config.author)

修改为

1
+ if page.copyright

经过这一步修改后你会发现版权模块的原创与转载逻辑改变了

但是post-info的原创与转载判定还没有改变,所以你还要接着下一步

2.

路径anzhiyu\layout\includes\header\post-info.pug下找到

1
- if (page.copyright_author && page.copyright_author !== config.author)

修改为

1
+ if page.copyright === true

那么以后就只需要在front-matter里添加上copy-right就可以实现原创与转载的手动标注

后续

如果你有兴趣,可以完成后续的步骤,因为对于本文的修改来说其实还不算太完善