技术

·

11 min read

·

- Views

网站建设文档(四) butterfly主題配置和美化超详细 - 2

可以开启网站「评论和说说」功能啦~

Copied

网站建设文档(四) butterfly主題配置和美化超详细 - 2
Butterfly 安装文档 - 主题配置

📖 本教程更新于 2022 年 08 月 18 日,教程的内容针对最新稳定版而更新(如果你是旧版,教程会有些出入,请留意)

🦋 Butterfly 已经更新到 4.4.0

开启评论功能

前置要求,参考 Artitalk 文档 - LeanCloud 的相关准备,必须要配置好 LeanCloud 再往下看

  1. 前往 LeanCloud 国际版,注册账号。
  1. 注册完成之后根据 LeanCloud 的提示绑定手机号和邮箱。
  1. 绑定完成之后点击创建应用,应用名称随意,接着在结构化数据中创建 class,命名为 shuoshuo
  1. 在你新建的应用中找到结构化数据下的用户。点击添加用户,输入想用的用户名及密码。
  1. 回到结构化数据中,点击 class 下的 shuoshuo。找到权限,在 Class 访问权限中将 add_fields 以及 create 权限设置为指定用户,输入你刚才输入的用户名会自动匹配。为了安全起见,将 delete 和 update 也设置为跟它们一样的权限。
  1. 然后新建一个名为atComment的class,权限什么的使用默认的即可。
  1. 点击 class 下的 _User 添加列,列名称为 img,默认值填上你这个账号想要用的发布说说的头像url,这一项不进行配置,说说头像会显示为默认头像 —— Artitalk 的 logo。
  1. 在最菜单栏中找到设置-> 应用 keys,记下来 AppID 和 AppKey ,一会会用。
  1. 最后将 _User 中的权限全部调为指定用户,或者数据创建者,为了保证不被篡改用户数据以达到强制发布说说。

在_config.butterfly.yml 下找到,按下图修改

在_config.butterfly.yml 下找到,按下图修改

开启说说功能

安裝插件

npm install hexo-butterfly-artitalk

前置要求,参考 Artitalk 文档 - LeanCloud 的相关准备,必须要配置好 LeanCloud 再往下看

  1. 前往 LeanCloud 国际版,注册账号。
  1. 注册完成之后根据 LeanCloud 的提示绑定手机号和邮箱。
  1. 绑定完成之后点击创建应用,应用名称随意,接着在结构化数据中创建 class,命名为 shuoshuo
  1. 在你新建的应用中找到结构化数据下的用户。点击添加用户,输入想用的用户名及密码。
  1. 回到结构化数据中,点击 class 下的 shuoshuo。找到权限,在 Class 访问权限中将 add_fields 以及 create 权限设置为指定用户,输入你刚才输入的用户名会自动匹配。为了安全起见,将 delete 和 update 也设置为跟它们一样的权限。
  1. 然后新建一个名为atComment的class,权限什么的使用默认的即可。
  1. 点击 class 下的 _User 添加列,列名称为 img,默认值填上你这个账号想要用的发布说说的头像url,这一项不进行配置,说说头像会显示为默认头像 —— Artitalk 的 logo。
  1. 在最菜单栏中找到设置-> 应用 keys,记下来 AppID 和 AppKey ,一会会用。
  1. 最后将 _User 中的权限全部调为指定用户,或者数据创建者,为了保证不被篡改用户数据以达到强制发布说说。

在_config.butterfly.yml 下将此代码完整复制过去

***开始使用****

在线聊天

https://www.ze520.cn/posts/9.html

分享

只能选择一个分享服务商
访问 AddThis 官网 找到你的 pub-id

修改 主题配置文件

如果你不知道 sharejs,看看它的说明。

修改 主题配置文件

可以到 addtoany 查看使用说明

搜索系統

记得运行 hexo clean
如果你使用 hexo-algoliasearch,请记得配置 fields 参数的 title, permalink 和 content
  1. 你需要安装 hexo-algoliahexo-algoliasearch. 根据它们的说明文档去做相应的配置。
  1. 修改 主题配置文件
记得运行 hexo clean
  1. 你需要安装 hexo-generator-search,根据它的文档去做相应配置
  1. 修改 主题配置文件

网站验证

如果需要搜索引擎收录网站,可能需要登录对应搜索引擎的管理平台进行提交。 各自的验证码可从各自管理平台拿到

修改 主题配置文件

分析统计

  1. 登录百度统计的官方网站
  1. 找到你百度统计的统计代码

  1. 修改 主题配置文件
  1. 登录谷歌分析的官方网站
  1. 找到你的谷歌分析的跟踪 ID

  1. 修改 主站配置文件
  1. 登录 CNZZ 分析的官方网站
  1. 找到 站点设置 - 获取代码
  1. 找到你的 web_id

  1. 修改 主题配置文件
  1. 登录 Cloudflare 分析的官方网站
  1. 找到 JavaScript 程式码片段
  1. 找到你的 token

  1. 修改 主题配置文件

  1. 登录 Clarity 的官方网站
  1. 创建 PROJECT
  1. 找到你的 ID
  1. 修改 主題配置文件

广告

主题已集成谷歌广告(自动广告)

修改 主题配置文件

主题预留了三个位置可供插入广告,分别为主页文章 (每三篇文章出现广告)/aside 公告之后 / 文章页打赏之后。 把 html 代码填写到对应的位置

修改 主题配置文件

例如:

Math 数学

不要在标题里使用 mathjax 语法,toc 目录不一定能正确显示 mathjax,可能显示 mathjax 代码

建议使用 KaTex 获得更好的效果,下文有介绍!

修改 主题配置文件:

如果 per_page 设为 true, 则每一页都会加载 Mathjax 服务。设为 false,则需要在文章 Front-matter 添加 mathjax: true, 对应的文章才会加载 Mathjax 服务。

然后你需要修改一下默认的 markdown 渲染引擎来实现 MathJax 的效果。

查看: hexo-renderer-kramed

以下操作在你 hexo 博客的目录下 (不是 Butterfly 的目录):

  1. 安装插件
  1. 配置 hexo 根目录的配置文件

效果:

不要在标题里使用 KaTeX 语法,toc 目录不能正确显示 KaTeX。

首先禁用MathJax(如果你配置过 MathJax 的话),然后修改你的主题配置文件以便加载katex.min.css

你不需要添加 katex.min.js 来渲染数学方程。相应的你需要卸载你之前的 hexo 的 markdown 渲染器,然后安装其它插件。

卸载掉 marked 插件,安装 hexo-renderer-markdown-it

在 hexo 的根目录的 _config.yml 中配置

如需配置其它参数,請參考 katex 官网

注意,此方法生成的 katex 沒有斜体

卸载掉 marked 插件,然后安装新的hexo-renderer-markdown-it-plus:

注意到 [hexo-renderer-markdown-it-plus](<https://github.com/CHENXCHEN/hexo-renderer-markdown-it-plus>)已经无人持续维护, 所以我们使用 [@upupming/hexo-renderer-markdown-it-plus](<https://github.com/upupming/hexo-renderer-markdown-it-plus>)。这份 fork 的代码使用了 [@neilsustc/markdown-it-katex](<https://github.com/yzhang-gh/markdown-it-katex>)同时它也是 VSCode 的插件 Markdown All in One 所使用的, 所以我们可以获得最新的 KaTex 功能例如 \\tag{}

你还可以通过 [@neilsustc/markdown-it-katex](<https://github.com/yzhang-gh/markdown-it-katex>)控制 KaTeX 的设置,所有可配置的选项参见 https://katex.org/docs/options.html。 比如你想要禁用掉 KaTeX 在命令行上输出的宂长的警告信息,你可以在根目录的 _config.yml 中使用下面的配置将 strict 设置为 false:

当然,你还可以利用这个特性来定义一些自己常用的 macros

因为 KaTeX 更快更轻量,因此没有 MathJax 的功能多(比如右键菜单)。为那些使用 MathJax 的用户,主题也内置了 katex 的 复制 功能。

美化 / 特效

自定义主题色

可以修改大部分 UI 颜色

修改 主题配置文件,比如:

颜色值必须被双引号包裹,就像“#000”而不是#000。否则将会在构建的时候报错!

网站背景

默认显示白色,可设置图片或者颜色

修改 主题配置文件

留意: 如果你的网站根目录不是’/’, 使用本地图片时,需加上你的根目录。 例如:网站是 https://yoursite.com/blog, 引用一张img/xx.png图片,则设置 background 为 `url(/blog/img/xx.png)

background:‘#49B202’

background: url(https://i.loli.net/2019/09/09/5oDRkWVKctx2b6A.png)

修改 主题配置文件

true

打字效果

打字效果 activate-power-mode

修改 主題配置文件

背景特效

好看的彩带背景,可设置每次刷新更换彩带,或者每次点击更换彩带 修改 主题配置文件

相关置可查看 canvas_ribbon

好看的彩带背景,会飘动 修改 主题配置文件

修改 主题配置文件

鼠标点击效果

zIndex建议只在-19999上选-1 代表烟火效果在底部9999 代表烟火效果在前面

修改 主题配置文件

修改 主题配置文件

修改 主题配置文件

页面美化

会改变 ol、ul、h1-h5 的样式

field配置生效的区域

  • post 只在文章页生效
  • site 在全站生效

修改 主题配置文件

title-prefix-icon填写的是 fontawesome 的 icon 的 Unicode 数。

未开启美化

开启美化

自定义字体和字体大小

全局字体

可自行设置字体的font-family如不需要配置,请留空

修改 主题配置文件

Blog 标题字体

可自行设置字体的font-family如不需要配置,请留空。如不需要使用网络字体,只需要把 font_link 留空就行

修改 主题配置文件

网站副标题

可设置主页中显示的网站副标题或者喜欢的座右铭。

修改 主题配置文件

主页 top_img 显示大小

適用於 版本號 >= V1.2.0

默认的显示为全屏。 site-info 的区域会居中显示

注意:index_top_img_height的值不能使用百分比。

2 个都不填的话,会使用默认值

举例,当

效果

页面加载动画 preloader

当进入网页时,因为加载速度的问题,可能会导致 top_img 图片出现断层显示,或者网页加载不全而出现等待时间,开启 preloader 后,会显示加载动画,等页面加载完,加载动画会消失。

配置butterly.yml

PWA

要为Butterfly配上 PWA 特性, 你需要如下几个步骤:

  1. 打开 hexo 工作目录
  1. npm install hexo-offline --save 或者 yarn add hexo-offline
  1. 在根目录创建 hexo-offline.config.cjs 文件,并增加以下内容。

更多内容请查看 hexo-offline 的官方文档

  1. 主题配置文件中开启 pwa 选项。
  1. 在创建source/目录中创建 manifest.json 文件。

你也可以通过 Web App Manifest 快速创建manifest.json。 (Web App Manifest 要求至少包含一个 512*512 像素的图标)

  1. 可以通过Chrome插件Lighthouse检查 PWA 配置是否生效以及配置是否正确。
    • 打开博客页面
    • 启动Lighthouse插件 (Lighthouse插件要求至少包含一个 512*512 像素的图标)

关于 PWA(渐进式增强 Web 应用)的更多内容请参阅 Google Tools for Web Developers

字数统计

要为Butterfly配上字数统计特性, 你需要如下几个步骤:

  1. 打开 hexo 工作目录
  1. npm install hexo-wordcount --save or yarn add hexo-wordcount
  1. 修改 主题配置文件:

图片大图查看模式

只能开启一个

如果你并不想为某张图片添加大图查看模式,你可以使用 html 格式引用图片,并为图片添加 no-lightbox class 名。

修改 主题配置文件

修改 主题配置文件

Snackbar 弹窗

Snackbar 弹窗, 根据自己爱好开启

修改 主题配置文件

未开启 Snackbar

开启 Snackbar

其它配置

CSS 前缀

有些 CSS 并不是所有浏览器都支持,需要增加对应的前缀才会生效。

开启 css_prefix 后,会自动为一些 CSS 增加前缀。 (会增加 20% 的体积)

修改配置文件

Open Graph

head 里增加一些 meta 资料,例如缩略图、标题、时间等等。当你分享网页到一些平台时,平台会读取 Open Graph 的内容,展示缩略图,标题等等信息。

修改配置文件

Instantpage

当鼠标悬停到链接上超过 65 毫秒时,Instantpage 会对该链接进行预加载,可以提升访问速度。

修改配置文件

Pangu

如果你跟我一样,每次看到网页上的中文字和英文、数字、符号挤在一块,就会坐立难安,忍不住想在它们之间加个空格。这个外挂正是你在网路世界走跳所需要的东西,它会自动替你在网页中所有的中文字和半形的英文、数字、符号之间插入空白。

修改配置文件

field只支持两个,post(只在文章页生效) 和site(全站生效)

Pjax

当用户点击链接,通过 ajax 更新页面需要变化的部分,然后使用 HTML5 的 pushState 修改浏览器的 URL 地址。

这样可以不用重复加载相同的资源(css/js), 从而提升网页的加载速度。

对于一些第三方插件,有些并不支持 pjax 。 你可以把网页加入到 exclude 里,这个网页会被 pjax 排除在外。 点击该网页会重新加载网站

使用 pjax 后,一些自己 DIY 的 js 可能会无效,跳转页面时需要重新调用,请参考 Pjax 文档 使用 pjax 后,一些个别页面加载的 js/css,将会改为所有页面都加载

Butterfly 的 Pjax 目前仍有一些问题,请留意

  • 使用谷歌广告可能会报错(例如自动广告)

如果你在使用中发现问题,欢迎反馈 Bugs

Inject

2.3.0 以上支持

如想添加额外的 js/css/meta 等等东西,可以在 Inject 里添加,支持添加到 head(</body>标签之前) 和 bottom(</html>标签之前)。

请注意:以标准的 html 格式添加内容

例如

意: 如果你的网站根目录不是’/’, 使用本地图片时,需加上你的根目录。 例如:网站是 https://yoursite.com/blog, 引用css/xx.css,则设置为

CDN

配置文件中最后一部分 CDN,里面是主题所引用到的文件,可自行配置 CDN。 (非必要请勿修改,配置后请确认链接是否能访问)

version

如需修改版本号,可修改主题目录的’plugins.yml’ 中对应插件的 version

请确保你修改的版本号,你所使用的 cdn 有收录

custom_format

提供以下参数

部分可用的第三方 CDN 列表

请确保你选择的 CDN 有收录主题使用的第三方插件

使用在线icon

Butterfly 支持 font-awesome v6 图标.

书写格式 图标名:url || 描述性文字

图标名可在这寻找