贡献代码

如果你需要主题支持某个第三方服务,并且自己已经实现了,欢迎提交代码👏。

集成原则重要

  1. 默认不开启,不加载。
  2. 在主题的_config.yml中的services字段下提供开关,仅支持truefalse两种取值。
  3. 在博客主目录的_config.yml中提供key等信息。
  4. 如果需要有默认值,可以写在主题的_config.yml中,与博主相关的内容一律写在博客主目录的_config.yml中。

命名规范重要

  1. 全部用小写英文字母加_
  2. 命名尽量简单又没有歧义。
  3. 不要起容易重复和引起冲突的字段名。
  4. 除了专有名词中含有数字的情况外,不要使用数字。
  5. 功能相同的部分尽量使用同一个字段名,例如已经有avatar来表示头像了,其他地方如需使用头像,也要使用avatar来作为字段名而不要新增其它名称相近的字段如head_imghead

正确的写法

1
2
# 我要集成的某个服务
my_service:

错误的写法

1
2
3
4
# 我要集成的某个服务
myService:
myService1:
service:

使用CDN建议

如果你嫌麻烦,就只提供一种js吧,我有时间了再改。

多重开关建议

  1. 主题的_config.yml中的services字段下提供默认为true的开关。
  2. page的Front-matter中提供开关。
  3. 如果需要配置key等信息,需要在博客主目录的_config.yml中提供。

根据默认不开启不加载原则,必须至少有一个地方在不设置的情况下是false。

示例1

例如评论系统,在主题的_config.yml中的services字段下有个comments代表所有评论功能的开关,默认值是true
page的Front-matter中如果不提供comments,就也认为是true
现在博主要使用valine评论系统,那么只需要在博客主目录的_config.yml中提供必要的key等信息,就可以直接使用评论功能了。

示例2

又如分享,在主题的_config.yml中的services字段下有个share代表所有分享功能的开关,默认值是true
page的Front-matter中如果不提供share,就也认为是true
现在博主要使用mob分享,那么只需要在博客主目录的_config.yml中提供必要的key等信息,就可以直接使用分享功能了。

如果你嫌麻烦,就按照集成原则来吧,这里的规范我再完善。




评论