博客系列:Hexo+Github博客搭建教程
<p></p><div class="toc">
<h4>Hexo+Github博客搭建教程</h4>
<ul><li>Hexo+Github博客搭建教程</li><li><ul><li>🌈前言</li><li><ul><li>😊前置想法</li><li>🔎后置选择</li></ul>
</li><li>教程大致分三个部分,</li><li><ul><li>🌈第一部分 搭建</li><li><ul><li>Hexo搭建步骤</li><li><ul><li>1. 安装Git</li><li>2. 安装nodejs</li><li><ul><li>添加国内镜像源</li></ul>
</li><li>3. 安装Hexo</li><li>4. 注册Github账号创建个人仓库</li><li>5. 生成SSH添加到GitHub</li><li>6. 将hexo部署到GitHub</li><li>7. 设置个人域名</li><li>8. 写文章、发布文章</li></ul>
</li></ul>
</li><li>🌈第二部 定制主题</li><li><ul><li>1. Hexo相关目录文件</li><li><ul><li>1.1 博客目录构成介绍</li><li>1.2 hexo基本配置</li><li><ul><li>1.2.1 网站</li><li>1.2.2 网址</li><li>1.2.3 Front-matter</li><li>1.2.4 layout(布局)</li></ul>
</li></ul>
</li><li>2. 更换主题</li><li><ul><li>2.1 新建文章模板修改</li><li>2.2 添加404页面</li><li>2.3“关于”页面增加简历(可选)</li><li>2.4 数学公式渲染和代码高亮</li><li><ul><li>2.4.1 解决mathjax与代码高亮的冲突</li><li>2.4.2 加数学公式显示</li></ul>
</li><li>2.5 增加建站时间</li><li><ul><li>效果图 :</li><li>编辑 `themes\Butterfly\layout\includes\footer.pug` 文件,插入以下代码:</li><li>编辑 `_config.butterfly.yml` 文件</li></ul>
</li><li>2.6 修改不蒜子初始化计数</li><li>2.7 添加首页磁贴</li><li><ul><li>效果图 :</li><li>**第一步:**安装插件,在博客根目录``下打开终端,运行以下指令:</li><li>第二步: 添加配置信息,以下为写法示例</li><li>第三步:参数释义</li></ul>
</li><li>2.8 添加评论插件</li><li>2.9 添加在线聊天功能</li><li><ul><li>修改 `主题配置文件`</li><li>`chatra`的样式你可以`Chat Widget`自行配置</li></ul>
</li><li>2.10 添加看板娘</li><li><ul><li>写在最前</li><li>效果图:</li><li>1. 以`Butterfly`主题为例,在`\themes\butterfly\source\`目录下打开终端,输入</li><li>2. 找到路径`\themes\butterfly\source\live2d-widget\autoload.js`,打开`autoload.js`,修改内容:</li><li>3. 在`Butterfly`的主题配置文件`\_config.butterfly.yml`中,</li><li>4. 保存所有文件的修改,然后照例执行</li><li>5. 自定义修改</li></ul>
</li><li>2.11 增加emoji支持</li><li><ul><li>emoji支持</li></ul>
</li><li>2.12 首页置顶轮播图</li><li><ul><li>1. 安装插件,在博客根目录``下打开终端,运行以下指令:</li><li>2. 添加配置信息,以下为写法示例</li><li>3. 参数释义</li></ul>
</li><li>2.13 添加博客动态标签</li><li><ul><li>在 `themes\butterfly\source\js` 文件夹新建 `title.js` 文件,文件内容如下:</li><li>编辑 `_config.butterfly.yml` 文件</li></ul>
</li><li>2.14 添加鼠标点击烟花爆炸效果</li><li>2.15 添加页面樱花飘落动效</li><li>2.16 添加鼠标点击文字特效</li><li>2.17 添加页面雪花飘落动效</li><li>2.18 添加博客天气插件</li><li><ul><li>当然,如果你不想搞这么复杂,可以直接将下面代码插入 /themes/butterfly/layout/_partial/layout.ejs 中即可使用:</li></ul>
</li><li>2.19 修改滚动条</li><li><ul><li>在 `themes\Butterfly\source\css` 文件夹新建 `scrollbar.css` 文件,文件内容如下:</li><li>编辑 `_config.butterfly.yml` 文件</li></ul>
</li><li>2.20 增加Pixiv 日榜</li><li><ul><li>效果图:</li><li>在 `themes\Butterfly\layout\includes\widget` 文件夹新建 `card_pixiv.pug` 文件,文件内容如下:</li><li>编辑 `themes\Butterfly\layout\includes\widget\index.pug` 文件,在你想要显示的位置插入以下代码:</li><li>编辑 `_config.butterfly.yml` 文件,在 `card_webinfo` 下面添加一行 `card_pixiv: true`</li><li>编辑 `themes\Butterfly\languages\zh-CN.yml` 文件 (请根据你的网站语言选择),找到 `card_announcement: 公告` , 在下面添加一行 c`ard_pixiv: Pixiv日榜Top50`(后面的文本可自定义)</li></ul>
</li><li>2.21 Github-bride</li><li><ul><li>效果图:</li><li>在 `themes\Butterfly\source\css` 文件夹新建 `badge.css` 文件,文件内容如下:</li><li>编辑 `_config.butterfly.yml` 文件、在 i`nject->head` 下面添加如下内容:</li><li>方法1:</li></ul>
</li><li>2.22 tag 外挂标签</li><li><ul><li>找到 `themes\Butterfly\source\css` 下创建 `tag.css` 文件、文件内容如下:</li><li>编辑 `_config.butterfly.yml` 文件</li><li>下载 (https://github.com/volantis-x/hexo-theme-volantis/tree/master/scripts/tags) 主题、复制 `scripts\tags` 下的主题到 t`hemes\Butterfly\scripts\tag` 中、复制以下文件即可</li></ul>
</li><li>2.23 当前访问用户</li><li><ul><li>效果图:</li><li>在 `themes\Butterfly\layout\includes\widget\` 下创建 `card_ip.pug` 文件</li><li>编辑 `index.pug` 、 在合适位置添加</li><li>编辑 `themes\Butterfly\languages\zh-CN.yml` 文件、在 `aside` 下添加</li><li>在 `themes\Butterfly\source\js` 下创建 `ip_content.js`</li><li>编辑 _config.butterfly.yml 文件、在 inject->bottom 下面添加如下内容:</li></ul>
</li><li>2.24 移动端默认折叠</li><li><ul><li>在 `themes\Butterfly\source\js` 文件夹新建 `Mobile_folding.js` 文件,文件内容如下:</li><li>编辑 `_config.butterfly.yml` 文件</li></ul>
</li><li>2.25 Aplayer 播放器自动收缩</li><li><ul><li>找到 `themes\Butterfly\source\css` 下创建 `aplayerdiy.css` 文件、输入以下内容:</li><li>编辑 `_config.butterfly.yml` 文件、在 `inject->head` 下面添加如下内容:</li></ul>
</li><li>2.26 鼠标指针样式</li><li><ul><li>找到 `themes\Butterfly\source\css` 下创建 `mouse.css` 文件、输入以下内容:</li><li>编辑 `_config.butterfly.yml` 文件、在 `inject->head` 下面添加如下内容:</li><li>2.27 渐变背景</li><li>编辑 `_config.butterfly.yml` 文件、找到 `background` 修改里面的内容</li></ul>
</li></ul>
</li></ul>
</li><li>🌈第三部分 优化 Hexo</li><li><ul><li>1. 网站SEO优化</li><li><ul><li>1.1 让百度收录你的站点</li><li><ul><li>查看站点是否被百度收录</li><li>1.1.1 验证网站所有权</li><li>1.1.2 生成网站地图</li><li>1.1.3 向百度提交链接</li></ul>
</li><li>1.2 让google收录你的站点</li><li><ul><li>1.2.1 操作步骤</li><li>1.2.2 提交 robots.txt:</li></ul>
</li><li>1.3 让其他搜索引擎收录你的站点</li><li>1.4 优化你的url</li><li><ul><li>方案一:</li><li>方案二:</li></ul>
</li><li>1.5 其他seo优化</li></ul>
</li><li>2. 优化代码块样式</li><li><ul><li>2.1 给代码块开启行号</li><li><ul><li>代码块显示行号</li></ul>
</li><li>2.2 添加代码块复制功能</li></ul>
</li><li>3. 优化网站加载速度</li><li><ul><li>3.1 优化图片加载</li></ul>
</li><li>3.2 Gulp实现代码压缩</li><li><ul><li>1 首先我们需要安装Gulp插件和5个功能模块,依次运行下面的两条命令。</li><li>2 接下来在博客的根目录下新建gulpfile.js文件,并复制下面的内容到文件中。</li><li>3 最后 `hexo clean` && `hexo g` && `gulp` && `hexo d` 就可以了。</li><li><ul><li>gulp运行错误</li></ul>
</li></ul>
</li><li>3.3 Github & Coding Pages 双部署</li><li><ul><li><ul><li>可能遇到的问题:</li><li>[coding pages 申请ssl 证书总是提示:错误!]</li><li>到这里整个Hexo博客部署美化教程就完结啦,大家快行动起来,开始自己的Hexo之旅吧!!</li></ul>
</li></ul>
</li></ul>
</li></ul>
</li></ul>
</li></ul>
</div>
<p></p>
<p><br></p>
<hr>
<br>
<h2>Hexo+Github博客搭建教程</h2>
<p>注意,这篇文章篇幅较长,主要针对新手,每一步很详细,所以可能会显得比较啰嗦,所以建议基础比较好小伙伴根据目录选择自己感兴趣的部分跳着看,不要文章没看,上来先喷一下!谢谢*⊙o⊙*。</p>
<p>教程内容随意复制使用,引用的话请加一个参考链接,谢谢!</p>
<h3>🌈前言</h3>
<h4>😊前置想法</h4>
<p>去年在博客园注册了自己的第一个博客,当时初衷就是想拿来作为自己的在线笔记本,做做学习记录,分享一</p>
<p>些学到的东西,使用第三方提供的博客服务其实也挺方便,现在市面上提供类似服务的博客网站也很多,如</p>
<p>CSDN,博客园,简书等平台,可以直接在上面发表,用户交互做的好,写的文章百度也能搜索的到。但是缺</p>
<p>点是比较不自由,会受到平台的各种限制和恶心的广告,个性化不足。而自己购买域名和服务器,搭建博客的</p>
<p>成本实在是太高了,不光是说这些购买成本,单单是花力气去自己搭这么一个网站,还要定期的维护它,对于</p>
<p>我们大多数人来说,也是没有这样的精力和时间。那么,我们能不能自己定制一个自己喜欢的个性化博客,同</p>
<p>时也不用付出太高的成本啦?</p>
<h4>🔎后置选择</h4>
<p>这就引出了第三种选择,基于开源框架搭建博客,然后直接在github page平台上托管我们的博客。这样就</p>
<p>可以安心的来写作,又不需要定期维护,基于这个想法,今年8月初暑假在家的的时候开始搭建第一个属于自</p>
<p>己的独立博客,前后断续弄了近一周,到现在稍微有点模样了。我想可能有很多小伙伴应该也想过搭建一个自</p>
<p>己的博客,当然,网上也有一堆详细教程。写这篇博客的目的大概有两个,第一个是当做自己的搭建记录,方</p>
<p>便以后自己随时查看提示修改,第二个是稍稍总结一下具体的搭建步骤以及一些支持个性化定制的博客源码修</p>
<p>改的教程,稍稍分享一下这些修改经验,当然,更多的一些个性化操作需要你自己以后在这个基础上慢慢去摸</p>
<p>索,有些写的不太好的地方还希望看到的小伙伴多多包涵。</p>
<p><b>博客初步的页面效果可以看一下我的博客</b>:爱笑的Gao的个人博客,欢迎大家支持访问。</p>
<p>本博客基于Hexo,所以首先要了解一下我们搭建博客所要用到的框架。<code>Hexo</code>是高效的静态网站生成框架,它基于<code>Node.js</code>,快速,简单且功能强大,是搭建博客的首选框架。大家可以进入hexo官网进行详细查看,因为<code>Hexo</code>的创建者是台湾人,对中文的支持很友好,可以选择中文进行查看。通过<code>Hexo</code>,你可以直接使用<code>Markdown</code>语法来撰写博客。相信很多小伙伴写工程都写过<code>README.md</code>文件吧,对,就是这个格式的!写完后只需两三条命令即可将生成的网页上传到<code>github</code>或者<code>coding</code>等代码管理托管平台,然后别人就可以浏览你的博客网页啦。是不是很简单?你无需关心网页源代码的具体生成细节,只需要用心写好你的博客文章内容就行了。</p>
<blockquote>
<p>简单总结: <code>Hexo</code> ,产品成熟,使用简单,功能强大,有着丰富的插件资源可供使用者调用,像发布后台 ,搜索系统,评论系统,支持Markdown嵌入语法,相册功能等类似诉求,但是也需要自己去折腾一下,后续我们一步一步介绍。</p>
</blockquote>
<h3>教程大致分三个部分,</h3>
<ul><li> <p>第一部分:<code>hexo</code>的初级搭建还有部署到<code>github page</code>上,以及个人域名的绑定。</p> </li><li> <p>第二部分:<code>hexo</code>的基本配置,更换主题,实现多终端工作,以及在<code>coding page</code>部署实现国内外分流</p> </li><li> <p>第三部分:<code>hexo</code>添加各种功能,包括搜索的<code>SEO</code>,阅读量统计,访问量统计和评论系统等。</p> </li></ul>
<h4>🌈第一部分 搭建</h4>
<p><code>hexo</code>的初级搭建还有部署到<code>github page</code>上,以及个人域名的绑定</p>
<h5>Hexo搭建步骤</h5>
<ol><li> <p>安装<code>Git</code></p> </li><li> <p>安装<code>Node.js</code></p> </li><li> <p>安装<code>Hexo</code></p> </li><li> <p><code>GitHub</code>创建个人仓库</p> </li><li> <p>生成<code>SSH</code>添加到<code>GitHub</code></p> </li><li> <p>将<code>hexo</code>部署到<code>GitHub</code></p> </li><li> <p>设置个人域名</p> </li><li> <p>发布文章</p> </li></ol>
<h6>1. 安装Git</h6>
<p>为了把本地的网页文件上传到<code>github</code>上面去,需要用到工具———Git[下载地址]。<code>Git</code>是目前世界上最先进的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。<code>Git</code>非常强大,建议每个人都去了解一下。廖雪峰老师的<code>Git</code>教程写的非常好,大家可以看一下。Git教程</p>
<p>**windows:**到<code>git</code>官网上下载<code>.exe</code>文件,Download git,安装选项还是全部默认,只不过最后一步添加路径时选择<code>Use Git from the Windows Command Prompt</code>,这样我们就可以直接在命令提示符里打开<code>git</code>了。</p>
<blockquote>
<p>顺便说一下,<code>windows</code>在<code>git</code>安装完后,就可以直接使用<code>git bash</code>来敲命令行了,不用自带的<code>cmd</code>,<code>cmd</code>有点难用。</p>
</blockquote>
<p>**linux:**对<code>linux</code>来说实在是太简单了,因为最早的<code>git</code>就是在<code>linux</code>上编写的,只需要一行代码</p>
<pre><code class="prism language-python">sudo apt<span class="token operator">-</span>get install git
</code></pre>
<p>安装完成后在命令提示符中输入<code>git --version</code>来查看一下版本验证是否安装成功。</p>
<h6>2. 安装nodejs</h6>
<p><code>Hexo</code>是基于<code>node.js</code>编写的,所以需要安装一下<code>node.js</code>和里面的<code>npm</code>工具。</p>
<p>**windows:**下载稳定版或者最新版都可以Node.js,安装选项全部默认,一路点击<code>Next</code>。<br> 最后安装好之后,按<code>Win+R</code>打开命令提示符,输入<code>node -v</code>和<code>npm -v</code>,如果出现版本号,那么就安装成功了。</p>
<p>**linux:**命令行安装:</p>
<pre><code class="prism language-python">sudo apt<span class="token operator">-</span>get install nodejs
</code></pre>
<pre><code class="prism language-python">sudo apt<span class="token operator">-</span>get install npm
</code></pre>
<p>不过不推荐命令行安装,有时候有问题,建议直接到nodejs官网去下载,如下所示:<br> <img src="https://i-blog.csdnimg.cn/blog_migrate/d4e241e9d76ac8e84063f4a7262d0579.png#pic_center" alt="在这里插入图片描述"></p>
<p>然后解压到你指定的文件夹即可,比如我解压到我系统的 C:\Program Files\nodejs\New Folder目录下了,如图:</p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/fa077fa18c58e53d9eefa217b0538210.png#pic_center" alt="在这里插入图片描述"></p>
<blockquote>
<p>注意本压缩包是<code>.tar.xz</code>格式的,需要两次解压</p>
</blockquote>
<p>配置一下环境变量</p>
<pre><code class="prism language-python">sudo vim <span class="token operator">/</span>etc<span class="token operator">/</span>profile
</code></pre>
<p>Bash</p>
<p>复制下面两行到刚打开的<code>profile</code>文件最底部(注意<code>node</code>的安装地址<code>/home/shw/MySoftwares/node-v12.8.0-linux-x64</code>换成自己的):</p>
<pre><code class="prism language-python">export NODE_HOME<span class="token operator">=</span><span class="token operator">/</span>home<span class="token operator">/</span>shw<span class="token operator">/</span>MySoftwares<span class="token operator">/</span>node<span class="token operator">-</span>v12<span class="token punctuation">.</span><span class="token number">8.0</span><span class="token operator">-</span>linux<span class="token operator">-</span>x64
export PATH<span class="token operator">=</span>$PATH<span class="token punctuation">:</span>$NODE_HOME<span class="token operator">/</span><span class="token builtin">bin</span>
</code></pre>
<p>Bash</p>
<p>保存后退出,再执行下面命令将环境变量生效:</p>
<pre><code class="prism language-python">source <span class="token operator">/</span>etc<span class="token operator">/</span>profile
</code></pre>
<p>Bash</p>
<p>将目录软链接到全局环境下(命令后面的<code>/usr/local/bin/node</code>是固定的)</p>
<pre><code class="prism language-python">sudo ln <span class="token operator">-</span>s <span class="token operator">/</span>home<span class="token operator">/</span>shw<span class="token operator">/</span>MySoftwares<span class="token operator">/</span>node<span class="token operator">-</span>v12<span class="token punctuation">.</span><span class="token number">8.0</span><span class="token operator">-</span>linux<span class="token operator">-</span>x64<span class="token operator">/</span>node <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span><span class="token builtin">bin</span><span class="token operator">/</span>node
</code></pre>
<pre><code class="prism language-python">sudo ln <span class="token operator">-</span>s <span class="token operator">/</span>home<span class="token operator">/</span>shw<span class="token operator">/</span>MySoftwares<span class="token operator">/</span>node<span class="token operator">-</span>v12<span class="token punctuation">.</span><span class="token number">8.0</span><span class="token operator">-</span>linux<span class="token operator">-</span>x64<span class="token operator">/</span>npm <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span><span class="token builtin">bin</span><span class="token operator">/</span>npm
</code></pre>
<p>这样安装好了以后使用<code>npm</code>安装的包(比如:<code>ionic serve</code>),使用包的命令时可能会提示找不到命令,没关系,在用户目录下终端执行下面命令*固定写法*:</p>
<pre><code class="prism language-python">echo <span class="token operator">-</span>e <span class="token string">"export PATH=$(npm prefix -g)/bin:$PATH"</span> <span class="token operator">>></span> <span class="token operator">~</span><span class="token operator">/</span><span class="token punctuation">.</span>bashrc <span class="token operator">&</span><span class="token operator">&</span> source <span class="token operator">~</span><span class="token operator">/</span><span class="token punctuation">.</span>bashrc
</code></pre>
<p>这样我们在所有用户下,都可以使用<code>npm</code>,也可以使用<code>npm</code>安装的包的命令。成功的将<code>nodejs</code>安装并配置到全局环境下。</p>
<p>安装完后,打开命令行终端,输入:</p>
<pre><code class="prism language-python">node <span class="token operator">-</span>v
</code></pre>
<pre><code class="prism language-python">npm <span class="token operator">-</span>v
</code></pre>
<p>检查一下有没有安装成功</p>
<h6>添加国内镜像源</h6>
<p>如果没有梯子的话,可以使用阿里的国内镜像进行加速。</p>
<pre><code class="prism language-python">npm config <span class="token builtin">set</span> registry https<span class="token punctuation">:</span><span class="token operator">//</span>registry<span class="token punctuation">.</span>npm<span class="token punctuation">.</span>taobao<span class="token punctuation">.</span>org
</code></pre>
<h6>3. 安装Hexo</h6>
<p>前面<code>git</code>和<code>nodejs</code>安装好后,就可以安装<code>hexo</code>了,你可以先创建一个文件夹<code>MyBlog</code>,用来存放自己的博客文件,然后<code>cd</code>到这个文件夹下(或者在这个文件夹下直接右键<code>git bash</code>打开)。</p>
<p>比如我的博客文件都存放在<code>D:\Study\MyBlog</code>目录下。</p>
<p>在该目录下右键点击<code>Git Bash Here</code>,打开<code>git</code>的控制台窗口,以后我们所有的操作都在<code>git</code>控制台进行,就不用<code>Windows</code>自带的<code>cmd</code>了。</p>
<p>定位到该目录下,输入<code>npm install -g hexo-cli</code>安装<code>Hexo</code>。可能会有几个报错,无视它就行。</p>
<pre><code class="prism language-python">npm install <span class="token operator">-</span>g hexo<span class="token operator">-</span>cli
</code></pre>
<p>安装完后输入<code>hexo -v</code>验证是否安装成功。</p>
<p>至此<code>hexo</code>就安装完了。</p>
<p>接下来初始化一下<code>hexo</code>,即初始化我们的网站,进入我们主题根目录<code>Hexo</code>,输入<code>hexo init</code>初始化文件夹</p>
<pre><code class="prism language-python">hexo init
</code></pre>
<p>这个<code>Hexo</code>可以自己取什么名字都行,然后,接着输入<code>npm install</code>安装必备的组件。</p>
<p>新建完成后,指定文件夹<code>Hexo</code>目录下有:</p>
<ul><li> <p><code>node_modules</code>: 依赖包</p> </li><li> <p><code>public</code>:存放生成的页面</p> </li><li> <p><code>scaffolds</code>:生成文章的一些模板</p> </li><li> <p><code>source</code>:用来存放你的文章</p> </li><li> <p><code>themes</code>:主题**</p> </li><li> <p><code>_config.yml</code>: 博客的配置文件**</p> </li></ul>
<p>这样本地的网站配置也弄好啦,输入<code>hexo g</code>生成静态网页,然后输入<code>hexo s</code>打开本地服务器,</p>
<pre><code class="prism language-python">hexo g
</code></pre>
<pre><code class="prism language-python">hexo server<span class="token punctuation">(</span>或者简写<span class="token punctuation">:</span>hexo s)<span class="token punctuation">)</span>
</code></pre>
<p>按<code>ctrl+c</code>关闭本地服务器。</p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/ba19ceb86cd3992e6ee2c1dc283ed589.png#pic_center" alt="在这里插入图片描述"></p>
<h6>4. 注册Github账号创建个人仓库</h6>
<p>接下来就去注册一个<code>github</code>账号,用来存放我们的网站。大多数小伙伴应该都有了吧,作为一个合格的程序猿(媛)还是要有一个的。</p>
<p>打开https://github.com/,新建一个项目仓库<code>New repository</code>,如下所示:</p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/f93b6e279060731065e6ffa76a343c59.png#pic_center" alt="在这里插入图片描述"></p>
<p>要创建一个和你用户名相同的仓库,后面加.[http://github.io,只有这样,将来要部署到<code>GitHub page</code>的时候,才会被识别,也就是http://xxxx.github.io,其中xxx就是你注册<code>GitHub</code>的用户名。例如我的:http://gaoziman.github.io</p>
<h6>5. 生成SSH添加到GitHub</h6>
<p>生成<code>SSH</code>添加到<code>GitHub</code>,连接<code>Github</code>与本地。<br> 右键打开<code>git bash</code>,然后输入下面命令:</p>
<pre><code class="prism language-python">git config <span class="token operator">-</span><span class="token operator">-</span><span class="token keyword">global</span> user<span class="token punctuation">.</span>name <span class="token string">"yourname"</span>
</code></pre>
<pre><code class="prism language-python">git config <span class="token operator">-</span><span class="token operator">-</span><span class="token keyword">global</span> user<span class="token punctuation">.</span>email <span class="token string">"youremail"</span>
</code></pre>
<p>注意:第一次使用git后需要将用户名和邮箱进行初始化</p>
<p>这里的<code>yourname</code>输入你的<code>GitHub</code>用户名,<code>youremail</code>输入你<code>GitHub</code>的邮箱。这样<code>GitHub</code>才能知道你是不是对应它的账户。例如我的:</p>
<pre><code class="prism language-python">git config <span class="token operator">-</span><span class="token operator">-</span><span class="token keyword">global</span> user<span class="token punctuation">.</span>name <span class="token string">"gaiolan"</span>
</code></pre>
<pre><code class="prism language-python">git config <span class="token operator">-</span><span class="token operator">-</span><span class="token keyword">global</span> user<span class="token punctuation">.</span>email <span class="token string">"2942892675@qq.com"</span>
</code></pre>
<p>可以用以下两条,检查一下你有没有输对</p>
<pre><code class="prism language-python">git config user<span class="token punctuation">.</span>name
</code></pre>
<pre><code class="prism language-python">git config user<span class="token punctuation">.</span>email
</code></pre>
<p>然后创建<code>SSH</code>,一路回车</p>
<blockquote>
<p><code>ssh</code>,简单来讲,就是一个秘钥,其中,<code>id_rsa</code>是你这台电脑的私人秘钥,不能给别人看的,<code>id_rsa.pub</code>是公共秘钥,可以随便给别人看。把这个公钥放在<code>GitHub</code>上,这样当你链接<code>GitHub</code>自己的账户时,它就会根据公钥匹配你的私钥,当能够相互匹配时,才能够顺利的通过<code>git</code>上传你的文件到<code>GitHub</code>上。</p>
</blockquote>
<pre><code class="prism language-python">ssh<span class="token operator">-</span>keygen <span class="token operator">-</span>t rsa <span class="token operator">-</span>C <span class="token string">"youremail"</span>
</code></pre>
<p>这个时候它会告诉你已经生成了.ssh的文件夹。在你的电脑中找到这个文件夹。或者git bash中输入</p>
<pre><code class="prism language-python">cat <span class="token operator">~</span><span class="token operator">/</span><span class="token punctuation">.</span>ssh<span class="token operator">/</span>id_rsa<span class="token punctuation">.</span>pub
</code></pre>
<p>将输出的内容复制到框中,点击确定保存。</p>
<p>打开github,在头像下面点击<code>settings</code>,再点击<code>SSH and GPG keys</code>,新建一个<code>SSH</code>,名字随便取一个都可以,把你的<code>id_rsa.pub</code>里面的信息复制进去。如图:</p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/f558d7d2736361cd84e2d34417684df1.png#pic_center" alt="在这里插入图片描述"><br> 在<code>git bash</code>输入<code>ssh -T git@github.com</code>,如果如下图所示,出现你的用户名,那就成功了。</p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/e4e9e89b962295f997494078bae88db4.png#pic_center" alt="在这里插入图片描述"></p>
<h6>6. 将hexo部署到GitHub</h6>
<p>这一步,我们就可以将<code>hexo</code>和<code>GitHub</code>关联起来,也就是将<code>hexo</code>生成的文章部署到<code>GitHub</code>上,打开博客根目录下的<code>_config.yml</code>文件,这是博客的配置文件,在这里你可以修改与博客配置相关的各种信息。</p>
<p>修改最后一行的配置:</p>
<pre><code class="prism language-python">deploy<span class="token punctuation">:</span>
<span class="token builtin">type</span><span class="token punctuation">:</span> git
repository<span class="token punctuation">:</span> https<span class="token punctuation">:</span><span class="token operator">//</span>github<span class="token punctuation">.</span>com<span class="token operator">/</span>gaoziman<span class="token operator">/</span>gaoziman<span class="token punctuation">.</span>github<span class="token punctuation">.</span>io<span class="token punctuation">.</span>git
branch<span class="token punctuation">:</span> master
</code></pre>
<p><code>repository</code>修改为你自己的<code>github</code>项目地址即可就是部署时,告诉工具,将生成网页通过<code>git</code>方式上传到你对应的链接仓库中。</p>
<p>这个时候需要先安装<code>deploy-git</code> ,也就是部署的命令,这样你才能用命令部署到<code>GitHub</code>。</p>
<pre><code class="prism language-python">npm install hexo<span class="token operator">-</span>deployer<span class="token operator">-</span>git <span class="token operator">-</span><span class="token operator">-</span>save
</code></pre>
<p>然后</p>
<pre><code class="prism language-python">hexo clean
hexo generate
hexo deploy
</code></pre>
<p>其中 <code>hexo clean</code>清除了你之前生成的东西,也可以不加。 <code>hexo generate</code>顾名思义,生成静态文章,可以用 <code>hexo g</code>缩写 ,<code>hexo deploy</code>部署文章,可以用<code>hexo d</code>缩写</p>
<blockquote>
<p>注意<code>deploy</code>时可能要你输入<code>username</code>和<code>password</code>。</p>
</blockquote>
<p>得到下图就说明部署成功了,过一会儿就可以在http://yourname.github.io 这个网站看到你的博客了!!</p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/744c8008d85911785eddc7300e9f54dc.png#pic_center" alt="在这里插入图片描述"></p>
<h6>7. 设置个人域名</h6>
<p>现在你的个人网站的地址是<code>yourname.github.io</code>,如果觉得这个网址逼格不太够,这就需要你设置个人域名了。但是需要花钱。</p>
<blockquote>
<p><b>不过,这一步不是必要的,如果目前还不想买域名可以先跳过,继续看后面的,以后想买域名了在还看这块</b></p>
</blockquote>
<p>首先你得购买一个专属域名,<code>xx</code>云都能买,看你个人喜好了。</p>
<p>这篇以腾讯云为例,阿里云官网购买:</p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/6235e32883fb6b52df2daa75998d0646.png#pic_center" alt="在这里插入图片描述"></p>
<p>然后实名认证后进入腾讯云控制台,点云解析进去,找到你刚买的域名,点进去添加两条解析记录,如下图所示:</p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/77d10cf6e6121c2669a5a49df98c54c9.png#pic_center" alt="在这里插入图片描述"></p>
<p>然后打开你的<code>github</code>博客项目,点击<code>settings</code>,拉到下面<code>Custom domain</code>处,填上你自己的域名,保存:</p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/1fadecb389bd07c268443a56f2a3fb01.png#pic_center" alt="在这里插入图片描述"></p>
<p>这时候你的项目根目录应该会出现一个名为<code>CNAME</code>的文件了。如果没有的话,打开你本地博客<code>/source</code>目录,我的是<code>D:\Study\MyBlog\source</code>,新建<code>CNAME</code>文件,注意没有后缀。然后在里面写上你的域名,保存。最后运行<code>hexo g</code>、<code>hexo d</code>上传到<code>github</code>。</p>
<p>过不了多久,再打开你的浏览器,输入你自己的专属域名,就可以看到搭建的网站啦!</p>
<h6>8. 写文章、发布文章</h6>
<p>首先在博客根目录下右键打开<code>git bash</code>,安装一个扩展<code>npm i hexo-deployer-git</code>。</p>
<p>然后输入<code>hexo new post "我的第一篇博客"</code>,新建一篇文章。</p>
<p>然后打开<code>D:\Hexo\source\_posts</code>的目录,可以发现下面多了一个文件夹和一个<code>.md</code>文件,一个用来存放你的图片等数据,另一个就是你的文章文件啦。<br> 你可以会直接在<code>vscode</code>里面编写<code>markdown</code>文件,可以实时预览,也可以用用其他编辑<code>md</code>文件的软件的工具编写。<br> 编写完<code>markdown</code>文件后,根目录下输入<code>hexo g</code>生成静态网页,然后输入<code>hexo s</code>可以本地预览效果,最后输入<code>hexo d</code>上传到<code>github</code>上。这时打开你的<code>github.io</code>主页就能看到发布的文章啦。</p>
<p>到这儿基本第一部分就完成了,已经完整搭建起一个比较简陋的个人博客了,接下来我们就可以对我们的博客进行个性化定制了。</p>
<h4>🌈第二部 定制主题</h4>
<p>我们要定制自己的博客的话,首先就要来了解一下<code>Hexo</code>博客的一些目录和文件的作用,以及如何平滑更换漂亮的主题模板并加入自己的定制源代码实现个性化定制</p>
<h5>1. Hexo相关目录文件</h5>
<h6>1.1 博客目录构成介绍</h6>
<p>我们博客的目录结构如下:</p>
<pre><code class="prism language-python"><span class="token operator">-</span> node_modules
<span class="token operator">-</span> public
<span class="token operator">-</span> scaffolds
<span class="token operator">-</span> source
<span class="token operator">-</span> _data
<span class="token operator">-</span> _posts
<span class="token operator">-</span> about
<span class="token operator">-</span> archives
<span class="token operator">-</span> categories
<span class="token operator">-</span> friends
<span class="token operator">-</span> tags
<span class="token operator">-</span> themes
</code></pre>
<p><code>node_modules</code>是<code>node.js</code>各种库的目录,<code>public</code>是生成的网页文件目录,<code>scaffolds</code>里面就三个文件,存储着新文章和新页面的初始设置,<code>source</code>是我们最常用到的一个目录,里面存放着文章、各类页面、图像等文件,<code>themes</code>存放着主题文件,一般也用不到。</p>
<p>我们平时写文章只需要关注<code>source/_posts</code>这个文件夹就行了。</p>
<h6>1.2 hexo基本配置</h6>
<p>在文件根目录下的<code>_config.yml</code>,就是整个<code>hexo</code>框架的配置文件了。可以在里面修改大部分的配置。详细可参考官方的配置描述。</p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/5a5eaecc2688cdd4744f99527160ea17.png#pic_center" alt="在这里插入图片描述"></p>
<h6>1.2.1 网站</h6>
<p>参数描述<code>title</code>网站标题subtitle网站副标题<code>description</code>网站描述<code>author</code>您的名字<code>language</code>网站使用的语言<code>timezone</code>网站时区。<code>Hexo</code> 默认使用您电脑的时区。时区列表。比如说:<code>America/New_York</code>, <code>Japan</code>, 和 <code>UTC</code> 。</p>
<p>其中,<code>description</code>主要用于<code>SEO</code>,告诉搜索引擎一个关于您站点的简单描述,通常建议在其中包含您网站的关键词。<code>author</code>参数用于主题显示文章的作者。</p>
<h6>1.2.2 网址</h6>
<p>参数描述<code>url</code>网址<code>root</code>网站根目录 <code>permalink</code>文章的永久链接格式<code>permalink_defaults</code>永久链接中各部分的默认值</p>
<p>在这里,你需要把<code>url</code>改成你的<font color="blur">网站域名</font>。</p>
<p><code>permalink</code>,也就是你生成某个文章时的那个链接格式。</p>
<p>比如我新建一个文章叫<code>temp.md</code>,那么这个时候他自动生成的地址就是<code>http://yoursite.com/2022/05/08/temp</code>。</p>
<p>以下是官方给出的示例,关于链接的变量还有很多,需要的可以去官网上查找 永久链接 。</p>
<pre><code class="prism language-python">参数结果<span class="token punctuation">:</span>year<span class="token operator">/</span><span class="token punctuation">:</span>month<span class="token operator">/</span><span class="token punctuation">:</span>day<span class="token operator">/</span><span class="token punctuation">:</span>title<span class="token operator">/</span><span class="token number">2019</span><span class="token operator">/</span><span class="token number">08</span><span class="token operator">/</span><span class="token number">10</span><span class="token operator">/</span>hello<span class="token operator">-</span>world <span class="token punctuation">:</span>year<span class="token operator">-</span><span class="token punctuation">:</span>month<span class="token operator">-</span><span class="token punctuation">:</span>day<span class="token operator">-</span><span class="token punctuation">:</span>title<span class="token punctuation">.</span>html <span class="token number">2019</span><span class="token operator">-</span><span class="token number">08</span><span class="token operator">-</span><span class="token number">10</span><span class="token operator">-</span>hello<span class="token operator">-</span>world<span class="token punctuation">.</span>html <span class="token punctuation">:</span>category<span class="token operator">/</span><span class="token punctuation">:</span>titlefoo<span class="token operator">/</span>bar<span class="token operator">/</span>hello<span class="token operator">-</span>world
</code></pre>
<p>再往下翻,中间这些都默认就好了。</p>
<pre><code class="prism language-python">theme<span class="token punctuation">:</span> landscap
</code></pre>
<p><code>theme</code>就是选择什么主题,也就是在<code>themes</code>这个文件夹下,在官网上有很多个主题,默认给你安装的是<code>lanscape</code>这个主题。当你需要更换主题时,在官网上下载,把主题的文件放在<code>themes</code>文件夹下,再修改这个主题参数就可以了。</p>
<h6>1.2.3 Front-matter</h6>
<p><code>Front-matter</code> 是md文件最上方以 —分隔的区域,用于指定个别文件的变量,举例来说:</p>
<pre><code class="prism language-python">title<span class="token punctuation">:</span> Hexo<span class="token operator">+</span>Github博客搭建记录
date<span class="token punctuation">:</span> <span class="token number">2022</span><span class="token operator">-</span><span class="token number">05</span><span class="token operator">-</span><span class="token number">08</span> <span class="token number">15</span><span class="token punctuation">:</span><span class="token number">15</span><span class="token punctuation">:</span><span class="token number">44</span>
</code></pre>
<p>下是预先定义的参数,您可在模板中使用这些参数值并加以利用。</p>
<p>参数描述<code>layout</code>布局<code>title</code>标题date建立日期<code>updated</code>更新日期<code>comments</code>开启文章的评论功能<code>tags</code>标签(不适用于分页)<code>categories</code>分类(不适用于分页)<code>permalink</code>覆盖文章网址</p>
<p>其中,分类和标签需要区别一下,分类具有顺序性和层次性,也就是说<code>Foo</code>,<code>Bar</code>不等于<code>Bar</code>,<code>Foo</code>;而标签没有顺序和层次。</p>
<pre><code class="prism language-python"><span class="token operator">-</span><span class="token operator">-</span><span class="token operator">-</span>
title<span class="token punctuation">:</span> Hexo<span class="token operator">+</span>Github博客搭建记录
date<span class="token punctuation">:</span> <span class="token number">2022</span><span class="token operator">-</span><span class="token number">05</span><span class="token operator">-</span><span class="token number">08</span> <span class="token number">15</span><span class="token punctuation">:</span><span class="token number">15</span><span class="token punctuation">:</span><span class="token number">44</span>
author<span class="token punctuation">:</span> 爱笑的Gao
img<span class="token punctuation">:</span> <span class="token operator">/</span>medias<span class="token operator">/</span>banner<span class="token operator">/</span><span class="token number">7</span><span class="token punctuation">.</span>jpg
coverImg<span class="token punctuation">:</span> <span class="token operator">/</span>medias<span class="token operator">/</span>banner<span class="token operator">/</span><span class="token number">7</span><span class="token punctuation">.</span>jpg
top<span class="token punctuation">:</span> true
cover<span class="token punctuation">:</span> true
toc<span class="token punctuation">:</span> true
password<span class="token punctuation">:</span> 5f15b28ffe43f8be4f239bdd9b69af9d80dbafcb20a5f0df5d1677a120ae9110
mathjax<span class="token punctuation">:</span> true
summary<span class="token punctuation">:</span> 这是你自定义的文章摘要内容,如果这个属性有值,文章卡片摘要就显示这段文字,否则程序会自动截取文章的部分内容作为摘要
tags<span class="token punctuation">:</span>
<span class="token operator">-</span> Hexo
<span class="token operator">-</span> Github
<span class="token operator">-</span> 博客
categories<span class="token punctuation">:</span>
<span class="token operator">-</span> 软件安装与配置
<span class="token operator">-</span><span class="token operator">-</span><span class="token operator">-</span>
</code></pre>
<h6>1.2.4 layout(布局)</h6>
<p><font color="blue">1.2.4.1 post</font></p>
<p>当你每一次使用代码</p>
<pre><code class="prism language-python">hexo new XXX
</code></pre>
<p>它其实默认使用的是<code>post</code>这个布局,也就是在<code>source</code>文件夹下的<code>_post</code>里面。</p>
<p><code>Hexo</code>有三种默认布局:<code>post</code>、<code>page</code>和<code>draft</code>,它们分别对应不同的路径,而您自定义的其他布局和<code>post</code>相同,都将储存到<code>source/_posts</code>文件夹。</p>
<p>而<code>new</code>这个命令其实是:</p>
<pre><code class="prism language-python">hexo new <span class="token punctuation">[</span>layout<span class="token punctuation">]</span> <span class="token operator"><</span>title<span class="token operator">></span>
</code></pre>
<p>只不过这个layout默认是post罢了。</p>
<p><font color="blue">1.2.4.2 page</font></p>
<p>如果你想另起一页,那么可以使用</p>
<pre><code class="prism language-python">hexo new page newpage
</code></pre>
<p>系统会自动给你在source文件夹下创建一个<code>newpage</code>文件夹,以及<code>newpage</code>文件夹中的<code>index.md</code>,这样你访问的<code>newpage</code>对应的链接就是<code>http://xxx.xxx/newpage</code></p>
<p><font color="blue">1.2.4.3 draft</font></p>
<p><code>draft</code>是草稿的意思,也就是你如果想写文章,又不希望被看到,那么可以</p>
<pre><code class="prism language-python">hexo new draft newdraft
</code></pre>
<p>这样会在<code>source/_draft</code>中新建一个<code>newdraft.md</code>文件,如果你的草稿文件写的过程中,想要预览一下,那么可以使用</p>
<pre><code class="prism language-python">hexo server <span class="token operator">-</span><span class="token operator">-</span>draft
</code></pre>
<p>在本地端口中开启服务预览。</p>
<p>如果你的草稿文件写完了,想要发表到<code>post</code>中,</p>
<pre><code class="prism language-python">hexo publish draft newdraft
</code></pre>
<p>就会自动把<code>newdraft.md</code>发送到<code>post</code>中。</p>
<h5>2. 更换主题</h5>
<p>我们在了解<code>Hexo</code>博客文件基础之后,知道主题文件就放在<code>themes</code>文件下,那么我们就可以去<code>Hexo</code>官网下载喜欢的主题,复制进去然后修改参数即可。<br> 网上大多数主题都是<code>github</code>排名第一的<code>Next</code>主题,但是我个人不是很喜欢,我在网上看到一个主题感觉还不错:hexo-theme-matery,地址在传送门。这个主题看着比较漂亮,并且响应式比较友好,点起来很舒服,功能也比较很多。</p>
<p>当然,人各有异,这个主题风格也不一定是你喜欢,那么你也可以跟着这教程类似的方法替换成你喜欢的就行了。</p>
<p>特性:</p>
<ul><li> <p>简单漂亮,文章内容美观易读</p> </li><li> <p>butterfly 设计</p> </li><li> <p>响应式设计,博客在桌面端、平板、手机等设备上均能很好的展现</p> </li><li> <p>首页轮播文章及每天动态切换 <code>Banner</code> 图片</p> </li><li> <p>瀑布流式的博客文章列表(文章无特色图片时会有 <code>24</code> 张漂亮的图片代替)</p> </li><li> <p>时间轴式的归档页</p> </li><li> <p>词云的标签页和雷达图的分类页</p> </li><li> <p>丰富的关于我页面(包括关于我、文章统计图、我的项目、我的技能、相册等)</p> </li><li> <p>可自定义的数据的友情链接页面</p> </li><li> <p>支持文章置顶和文章打赏</p> </li><li> <p>支持 <code>MathJax</code></p> </li><li> <p><code>TOC</code> 目录</p> </li><li> <p>可设置复制文章内容时追加版权信息</p> </li><li> <p>可设置阅读文章时做密码验证</p> </li><li> <p>Gitalk、Gitment、Valine 和 Disqus 评论模块(推荐使用 <code>Gitalk</code>)</p> </li><li> <p>集成了不蒜子统计、谷歌分析(<code>Google Analytics</code>)和文章字数统计等功能</p> </li><li> <p>支持在首页的音乐播放和视频播放功能</p> </li></ul>
<p>他的介绍文档写得非常的详细,还有中英文两个版本。效果图如下:</p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/097123161351ab142a078a4e82678679.png#pic_center" alt="在这里插入图片描述"></p>
<p>首先先按照文档教程安装一遍主题,然后是可以正常打开的,如果你是一般使用的话,基本没啥问题了。不过有些地方有些地方可以根据你自己的习惯和喜好修改一下, 下面记录一下我这个博客修改了的一些地方。</p>
<h6>2.1 新建文章模板修改</h6>
<p>首先为了新建文章方便,我们可以修改一下文章模板,建议将<code>/scaffolds/post.md</code>修改为如下代码:</p>
<pre><code class="prism language-python"><span class="token operator">-</span><span class="token operator">-</span><span class="token operator">-</span>
title<span class="token punctuation">:</span> <span class="token punctuation">{</span><span class="token punctuation">{</span> title <span class="token punctuation">}</span><span class="token punctuation">}</span>
date<span class="token punctuation">:</span> <span class="token punctuation">{</span><span class="token punctuation">{</span> date <span class="token punctuation">}</span><span class="token punctuation">}</span>
author<span class="token punctuation">:</span>
img<span class="token punctuation">:</span>
coverImg<span class="token punctuation">:</span>
top<span class="token punctuation">:</span> false
cover<span class="token punctuation">:</span> false
toc<span class="token punctuation">:</span> true
mathjax<span class="token punctuation">:</span> false
password<span class="token punctuation">:</span>
summary<span class="token punctuation">:</span>
tags<span class="token punctuation">:</span>
categories<span class="token punctuation">:</span>
<span class="token operator">-</span><span class="token operator">-</span><span class="token operator">-</span>
</code></pre>
<p>这样新建文章后 一些<code>Front-matter</code>参数不用你自己补充了,修改对应信息就可以了。</p>
<h6>2.2 添加404页面</h6>
<p>原来的主题没有<code>404</code>页面,我们加一个。首先在<code>/source/</code>目录下新建一个<code>404.md</code>,内容如下:</p>
<pre><code class="prism language-python">title<span class="token punctuation">:</span> <span class="token number">404</span>
date<span class="token punctuation">:</span> <span class="token number">2019</span><span class="token operator">-</span><span class="token number">08</span><span class="token operator">-</span><span class="token number">5</span> <span class="token number">16</span><span class="token punctuation">:</span><span class="token number">41</span><span class="token punctuation">:</span><span class="token number">10</span>
<span class="token builtin">type</span><span class="token punctuation">:</span> <span class="token string">"404"</span>
layout<span class="token punctuation">:</span> <span class="token string">"404"</span>
description<span class="token punctuation">:</span> <span class="token string">"Oops~,我崩溃了!找不到你想要的页面 :("</span>
</code></pre>
<p>然后在<code>/themes/butterfly/layout</code>/目录下新建一个<code>404.ejs</code>文件,内容如下:</p>
<pre><code class="prism language-python"><span class="token operator"><</span>style <span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"text/css"</span><span class="token operator">></span>
<span class="token operator">/</span><span class="token operator">*</span> don't remove<span class="token punctuation">.</span> <span class="token operator">*</span><span class="token operator">/</span>
<span class="token punctuation">.</span>about<span class="token operator">-</span>cover <span class="token punctuation">{</span>
height<span class="token punctuation">:</span> 75vh<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator"><</span><span class="token operator">/</span>style<span class="token operator">></span>
<span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"bg-cover pd-header about-cover"</span><span class="token operator">></span>
<span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"container"</span><span class="token operator">></span>
<span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"row"</span><span class="token operator">></span>
<span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"col s10 offset-s1 m8 offset-m2 l8 offset-l2"</span><span class="token operator">></span>
<span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"brand"</span><span class="token operator">></span>
<span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"title center-align"</span><span class="token operator">></span>
<span class="token number">404</span>
<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
<span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"description center-align"</span><span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">%=</span> page<span class="token punctuation">.</span>description <span class="token operator">%</span><span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
<span class="token operator"><</span>script<span class="token operator">></span>
<span class="token operator">//</span> 每天切换 banner 图<span class="token punctuation">.</span>Switch banner image every day<span class="token punctuation">.</span>
$<span class="token punctuation">(</span><span class="token string">'.bg-cover'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">'background-image'</span><span class="token punctuation">,</span> <span class="token string">'url(/medias/banner/'</span> <span class="token operator">+</span> new Date<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>getDay<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token string">'.jpg)'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
</code></pre>
<h6>2.3“关于”页面增加简历(可选)</h6>
<p>修改<code>/themes/matery/butterfly/about.ejs</code>,找到<code><div class="card"></code>标签,然后找到它对应的<code></div></code>标签,接在后面新增一个card,语句如下:</p>
<pre><code class="prism language-python"><span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"card"</span><span class="token operator">></span>
<span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"card-content"</span><span class="token operator">></span>
<span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"card-content article-card-content"</span><span class="token operator">></span>
<span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"title center-align"</span> data<span class="token operator">-</span>aos<span class="token operator">=</span><span class="token string">"zoom-in-up"</span><span class="token operator">></span>
<span class="token operator"><</span>i <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"fa fa-address-book"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>i<span class="token operator">></span><span class="token operator">&</span>nbsp<span class="token punctuation">;</span><span class="token operator">&</span>nbsp<span class="token punctuation">;</span><span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> __<span class="token punctuation">(</span><span class="token string">'myCV'</span><span class="token punctuation">)</span> <span class="token operator">%</span><span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
<span class="token operator"><</span>div <span class="token builtin">id</span><span class="token operator">=</span><span class="token string">"articleContent"</span> data<span class="token operator">-</span>aos<span class="token operator">=</span><span class="token string">"fade-up"</span><span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> page<span class="token punctuation">.</span>content <span class="token operator">%</span><span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
</code></pre>
<p>Html</p>
<p>这样就会多出一张<code>card</code>,然后可以在<code>/source/about/index.md</code>下面写上你的简历了,当然这里的位置随你自己设置,你也可以把简历作为第一个<code>card</code>。</p>
<h6>2.4 数学公式渲染和代码高亮</h6>
<h6>2.4.1 解决mathjax与代码高亮的冲突</h6>
<p>如果你按照教程安装了代码高亮插件<code>hexo-prism-plugin</code>,单独使用是没有问题的,但如果你又使用了<code>mathjax</code>,并且按照网上教程,安装<code>kramed</code>插件并修改了<code>js</code>文件里的正则表达式(为了解决<code>markdown</code>和<code>mathjax</code>的语法冲突),那你的代码就无法高亮了。解决方法很简单,别用<code>kramed</code>插件了,还用原来自带的<code>marked</code>插件,直接改它的正则表达式就行了。</p>
<h6>2.4.2 加数学公式显示</h6>
<p>打开<code>/themes/matery/layout</code>中的<code>post.ejs</code>文件,在最下方粘贴如下代码:</p>
<pre><code class="prism language-python"><span class="token operator"><</span>script <span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"text/javascript"</span> src<span class="token operator">=</span><span class="token string">"http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
</code></pre>
<p>Javascript</p>
<p>由于<code>markdown</code>语法与<code>mathjax</code>语法存在冲突,所以还需要修改源文件。</p>
<p>打开<code>/node_modules/marked/lib</code>中的<code>marked.js</code>文件,第539行的<code>escape:</code>处替换成:</p>
<pre><code class="prism language-python">escape<span class="token punctuation">:</span> <span class="token operator">/</span><span class="token operator">^</span>$<span class="token punctuation">[</span>`<span class="token operator">*</span>\<span class="token punctuation">[</span>\<span class="token punctuation">]</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token comment">#$+\-.!_>])/</span>
</code></pre>
<p>第553行的<code>em:</code>处替换成:</p>
<pre><code class="prism language-python">em<span class="token punctuation">:</span> <span class="token operator">/</span><span class="token operator">^</span>\<span class="token operator">*</span><span class="token punctuation">(</span><span class="token punctuation">(</span>?<span class="token punctuation">:</span>\<span class="token operator">*</span>\<span class="token operator">*</span><span class="token operator">|</span><span class="token punctuation">[</span>\s\S<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token operator">+</span>?<span class="token punctuation">)</span>\<span class="token operator">*</span><span class="token punctuation">(</span>?!\<span class="token operator">*</span><span class="token punctuation">)</span><span class="token operator">/</span>
</code></pre>
<p>这时在文章里写数学公式基本没有问题了,但是要注意:<br> <font color="blur">数学公式中如果出现了连续两个{,中间一定要加空格!</font></p>
<p>举个例子:<br> 行内公式:y=f(x)<br> 代码:</p>
<pre><code class="prism language-python">$y <span class="token operator">=</span> f<span class="token punctuation">(</span>x<span class="token punctuation">)</span>$
</code></pre>
<p>行间公式:<br> y=fg1(x)<br> 代码:</p>
<pre><code class="prism language-python">\\<span class="token punctuation">[</span>y <span class="token operator">=</span> <span class="token punctuation">{</span>f_<span class="token punctuation">{</span> <span class="token punctuation">{</span>g_1<span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token punctuation">(</span>x<span class="token punctuation">)</span>\\<span class="token punctuation">]</span>
</code></pre>
<blockquote>
<p>注意上面花括号之间有空格!</p>
</blockquote>
<h6>2.5 增加建站时间</h6>
<h6>效果图 :</h6>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/ad92dfa4cb1c761000d6172cd9bc13bc.png#pic_center" alt="在这里插入图片描述"></p>
<h6>编辑 <code>themes\Butterfly\layout\includes\footer.pug</code> 文件,插入以下代码:</h6>
<p>注意与 <code>if</code> 同级</p>
<pre><code class="prism language-python"><span class="token comment">#running-time</span>
</code></pre>
<h6>编辑 <code>_config.butterfly.yml</code> 文件</h6>
<p>在 <code>inject->bottom</code> 下面添加如下内容:</p>
<pre><code class="prism language-python"><span class="token operator">-</span> <span class="token operator"><</span>script<span class="token operator">></span>setInterval<span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">=</span><span class="token operator">></span><span class="token punctuation">{</span>let create_time<span class="token operator">=</span>Math<span class="token punctuation">.</span><span class="token builtin">round</span><span class="token punctuation">(</span>new Date<span class="token punctuation">(</span><span class="token string">"2020-3-21-20:14:00"</span><span class="token punctuation">)</span><span class="token punctuation">.</span>getTime<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">/</span><span class="token number">1000</span><span class="token punctuation">)</span><span class="token punctuation">;</span>let timestamp<span class="token operator">=</span>M
</code></pre>
<h6>2.6 修改不蒜子初始化计数</h6>
<p>因为不蒜子至今未开放注册,所以没办法在官网修改初始化,只能自己动手了。和上一条一样,我们在<code>/themes/butterfly/layout/_partial</code>里的<code>footer.ejs</code>文件最后加上:</p>
<pre><code class="prism language-python"><span class="token operator"><</span>script<span class="token operator">></span>
$<span class="token punctuation">(</span>document<span class="token punctuation">)</span><span class="token punctuation">.</span>ready<span class="token punctuation">(</span>function <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
var <span class="token builtin">int</span> <span class="token operator">=</span> setInterval<span class="token punctuation">(</span>fixCount<span class="token punctuation">,</span> <span class="token number">50</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token operator">//</span> 50ms周期检测函数
var pvcountOffset <span class="token operator">=</span> <span class="token number">80000</span><span class="token punctuation">;</span><span class="token operator">//</span> 初始化首次数据
var uvcountOffset <span class="token operator">=</span> <span class="token number">20000</span><span class="token punctuation">;</span>
function fixCount<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>document<span class="token punctuation">.</span>getElementById<span class="token punctuation">(</span><span class="token string">"busuanzi_container_site_pv"</span><span class="token punctuation">)</span><span class="token punctuation">.</span>style<span class="token punctuation">.</span>display <span class="token operator">!=</span> <span class="token string">"none"</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
$<span class="token punctuation">(</span><span class="token string">"#busuanzi_value_site_pv"</span><span class="token punctuation">)</span><span class="token punctuation">.</span>html<span class="token punctuation">(</span>parseInt<span class="token punctuation">(</span>$<span class="token punctuation">(</span><span class="token string">"#busuanzi_value_site_pv"</span><span class="token punctuation">)</span><span class="token punctuation">.</span>html<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">+</span> pvcountOffset<span class="token punctuation">)</span><span class="token punctuation">;</span>
clearInterval<span class="token punctuation">(</span><span class="token builtin">int</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>$<span class="token punctuation">(</span><span class="token string">"#busuanzi_container_site_pv"</span><span class="token punctuation">)</span><span class="token punctuation">.</span>css<span class="token punctuation">(</span><span class="token string">"display"</span><span class="token punctuation">)</span> <span class="token operator">!=</span> <span class="token string">"none"</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
$<span class="token punctuation">(</span><span class="token string">"#busuanzi_value_site_uv"</span><span class="token punctuation">)</span><span class="token punctuation">.</span>html<span class="token punctuation">(</span>parseInt<span class="token punctuation">(</span>$<span class="token punctuation">(</span><span class="token string">"#busuanzi_value_site_uv"</span><span class="token punctuation">)</span><span class="token punctuation">.</span>html<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">+</span> uvcountOffset<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">//</span> 加上初始数据
clearInterval<span class="token punctuation">(</span><span class="token builtin">int</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">//</span> 停止检测
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
</code></pre>
<p>然后把上面几行有段代码:</p>
<pre><code class="prism language-python"><span class="token operator"><</span><span class="token operator">%</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>theme<span class="token punctuation">.</span>busuanziStatistics <span class="token operator">&</span><span class="token operator">&</span> theme<span class="token punctuation">.</span>busuanziStatistics<span class="token punctuation">.</span>totalTraffic<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">%</span><span class="token operator">></span>
<span class="token operator"><</span>span <span class="token builtin">id</span><span class="token operator">=</span><span class="token string">"busuanzi_container_site_pv"</span><span class="token operator">></span>
<span class="token operator"><</span>i <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"fa fa-heart-o"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>i<span class="token operator">></span>
本站总访问量 <span class="token operator"><</span>span <span class="token builtin">id</span><span class="token operator">=</span><span class="token string">"busuanzi_value_site_pv"</span> <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"white-color"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>span<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>span<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">%</span> <span class="token punctuation">}</span> <span class="token operator">%</span><span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">%</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>theme<span class="token punctuation">.</span>busuanziStatistics <span class="token operator">&</span><span class="token operator">&</span> theme<span class="token punctuation">.</span>busuanziStatistics<span class="token punctuation">.</span>totalNumberOfvisitors<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">%</span><span class="token operator">></span>
<span class="token operator"><</span>span <span class="token builtin">id</span><span class="token operator">=</span><span class="token string">"busuanzi_container_site_uv"</span><span class="token operator">></span>
人次<span class="token punctuation">,</span><span class="token operator">&</span>nbsp<span class="token punctuation">;</span>访客数 <span class="token operator"><</span>span <span class="token builtin">id</span><span class="token operator">=</span><span class="token string">"busuanzi_value_site_uv"</span> <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"white-color"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>span<span class="token operator">></span> 人<span class="token punctuation">.</span>
<span class="token operator"><</span><span class="token operator">/</span>span<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">%</span> <span class="token punctuation">}</span> <span class="token operator">%</span><span class="token operator">></span>
</code></pre>
<p>Html</p>
<p>修改为:</p>
<pre><code class="prism language-python"><span class="token operator"><</span><span class="token operator">%</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>theme<span class="token punctuation">.</span>busuanziStatistics <span class="token operator">&</span><span class="token operator">&</span> theme<span class="token punctuation">.</span>busuanziStatistics<span class="token punctuation">.</span>totalTraffic<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">%</span><span class="token operator">></span>
<span class="token operator"><</span>span <span class="token builtin">id</span><span class="token operator">=</span><span class="token string">"busuanzi_container_site_pv"</span> style<span class="token operator">=</span><span class="token string">'display:none'</span><span class="token operator">></span>
<span class="token operator"><</span>i <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"fa fa-heart-o"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>i<span class="token operator">></span>
本站总访问量 <span class="token operator"><</span>span <span class="token builtin">id</span><span class="token operator">=</span><span class="token string">"busuanzi_value_site_pv"</span> <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"white-color"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>span<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>span<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">%</span> <span class="token punctuation">}</span> <span class="token operator">%</span><span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">%</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>theme<span class="token punctuation">.</span>busuanziStatistics <span class="token operator">&</span><span class="token operator">&</span> theme<span class="token punctuation">.</span>busuanziStatistics<span class="token punctuation">.</span>totalNumberOfvisitors<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">%</span><span class="token operator">></span>
<span class="token operator"><</span>span <span class="token builtin">id</span><span class="token operator">=</span><span class="token string">"busuanzi_container_site_uv"</span> style<span class="token operator">=</span><span class="token string">'display:none'</span><span class="token operator">></span>
人次<span class="token punctuation">,</span><span class="token operator">&</span>nbsp<span class="token punctuation">;</span>访客数 <span class="token operator"><</span>span <span class="token builtin">id</span><span class="token operator">=</span><span class="token string">"busuanzi_value_site_uv"</span> <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"white-color"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>span<span class="token operator">></span> 人<span class="token punctuation">.</span>
<span class="token operator"><</span><span class="token operator">/</span>span<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">%</span> <span class="token punctuation">}</span> <span class="token operator">%</span><span class="token operator">></span>
</code></pre>
<p>其实就是增加了两个<code>style='display:none'</code>而已。</p>
<h6>2.7 添加首页磁贴</h6>
<h6>效果图 :</h6>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/1f48d7a17d262b07086ca9a0c16b5831.png#pic_center" alt="在这里插入图片描述"></p>
<h6>**第一步:**安装插件,在博客根目录<code></code>下打开终端,运行以下指令:</h6>
<pre><code class="prism language-python">npm install hexo<span class="token operator">-</span>butterfly<span class="token operator">-</span>categories<span class="token operator">-</span>card <span class="token operator">-</span><span class="token operator">-</span>save
</code></pre>
<h6>第二步: 添加配置信息,以下为写法示例</h6>
<p>在站点配置文件<code>_config.yml</code>或者主题配置文件<code>_config.butterfly.yml</code>中添加</p>
<pre><code class="prism language-python"><span class="token comment"># hexo-butterfly-categories-card</span>
<span class="token comment"># see https://akilar.top/posts/a9131002/</span>
categoryBar<span class="token punctuation">:</span>
enable<span class="token punctuation">:</span> true <span class="token comment"># 开关</span>
priority<span class="token punctuation">:</span> <span class="token number">5</span> <span class="token comment">#过滤器优先权</span>
enable_page<span class="token punctuation">:</span> <span class="token operator">/</span> <span class="token comment"># 应用页面</span>
layout<span class="token punctuation">:</span> <span class="token comment"># 挂载容器类型</span>
<span class="token builtin">type</span><span class="token punctuation">:</span> <span class="token builtin">id</span>
name<span class="token punctuation">:</span> recent<span class="token operator">-</span>posts
index<span class="token punctuation">:</span> <span class="token number">0</span>
column<span class="token punctuation">:</span> odd <span class="token comment"># odd:3列 | even:4列</span>
row<span class="token punctuation">:</span> <span class="token number">1</span> <span class="token comment">#显示行数,默认两行,超过行数切换为滚动显示</span>
message<span class="token punctuation">:</span>
<span class="token operator">-</span> descr<span class="token punctuation">:</span> Ubuntu指南
cover<span class="token punctuation">:</span> https<span class="token punctuation">:</span><span class="token operator">//</span>npm<span class="token punctuation">.</span>elemecdn<span class="token punctuation">.</span>com<span class="token operator">/</span>akilar<span class="token operator">-</span>candyassets<span class="token operator">/</span>image<span class="token operator">/</span>cover1<span class="token punctuation">.</span>webp
<span class="token operator">-</span> descr<span class="token punctuation">:</span> 玩转Win10
cover<span class="token punctuation">:</span> https<span class="token punctuation">:</span><span class="token operator">//</span>npm<span class="token punctuation">.</span>elemecdn<span class="token punctuation">.</span>com<span class="token operator">/</span>akilar<span class="token operator">-</span>candyassets<span class="token operator">/</span>image<span class="token operator">/</span>cover2<span class="token punctuation">.</span>webp
<span class="token operator">-</span> descr<span class="token punctuation">:</span> 长篇小说连载
cover<span class="token punctuation">:</span> https<span class="token punctuation">:</span><span class="token operator">//</span>npm<span class="token punctuation">.</span>elemecdn<span class="token punctuation">.</span>com<span class="token operator">/</span>akilar<span class="token operator">-</span>candyassets<span class="token operator">/</span>image<span class="token operator">/</span>cover3<span class="token punctuation">.</span>webp
<span class="token operator">-</span> descr<span class="token punctuation">:</span> 个人日记
cover<span class="token punctuation">:</span> https<span class="token punctuation">:</span><span class="token operator">//</span>npm<span class="token punctuation">.</span>elemecdn<span class="token punctuation">.</span>com<span class="token operator">/</span>akilar<span class="token operator">-</span>candyassets<span class="token operator">/</span>image<span class="token operator">/</span>cover4<span class="token punctuation">.</span>webp
<span class="token operator">-</span> descr<span class="token punctuation">:</span> 诗词歌赋
cover<span class="token punctuation">:</span> https<span class="token punctuation">:</span><span class="token operator">//</span>npm<span class="token punctuation">.</span>elemecdn<span class="token punctuation">.</span>com<span class="token operator">/</span>akilar<span class="token operator">-</span>candyassets<span class="token operator">/</span>image<span class="token operator">/</span>cover5<span class="token punctuation">.</span>webp
<span class="token operator">-</span> descr<span class="token punctuation">:</span> 杂谈教程
cover<span class="token punctuation">:</span> https<span class="token punctuation">:</span><span class="token operator">//</span>npm<span class="token punctuation">.</span>elemecdn<span class="token punctuation">.</span>com<span class="token operator">/</span>akilar<span class="token operator">-</span>candyassets<span class="token operator">/</span>image<span class="token operator">/</span>cover6<span class="token punctuation">.</span>webp
custom_css<span class="token punctuation">:</span> https<span class="token punctuation">:</span><span class="token operator">//</span>npm<span class="token punctuation">.</span>elemecdn<span class="token punctuation">.</span>com<span class="token operator">/</span>hexo<span class="token operator">-</span>butterfly<span class="token operator">-</span>categories<span class="token operator">-</span>card@<span class="token number">1.0</span><span class="token number">.0</span><span class="token operator">/</span>lib<span class="token operator">/</span>categorybar<span class="token punctuation">.</span>css
</code></pre>
<h6>第三步:参数释义</h6>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/2209789ac9598e4fde18f11780387bc1.png#pic_center" alt="在这里插入图片描述"></p>
<p>然后<code>hexo g</code>再<code>hexo s</code>就能预览出效果了。</p>
<h6>2.8 添加评论插件</h6>
<p>由于这个主题自带了<code>gittalk</code>、<code>gitment</code>、<code>valine</code>等评论插件,所以我们只需要对应插件参数就行了,这个博客用的是<code>valine</code>,如下:</p>
<blockquote>
<p>從3.0.0開始,開啟評論需要在comments-use中填寫你需要的評論。</p>
<p>支持雙評論顯示,只需要配置兩個評論(第一個為默認顯示)</p>
</blockquote>
<pre><code class="prism language-python">comments<span class="token punctuation">:</span>
<span class="token comment"># Up to two comments system, the first will be shown as default</span>
<span class="token comment"># Choose: Disqus/Disqusjs/Livere/Gitalk/Valine/Waline/Utterances/Facebook Comments/Twikoo</span>
use<span class="token punctuation">:</span> Valine<span class="token punctuation">,</span>Disqus
text<span class="token punctuation">:</span> true <span class="token comment"># Display the comment name next to the button</span>
<span class="token comment"># lazyload: The comment system will be load when comment element enters the browser's viewport.</span>
<span class="token comment"># If you set it to true, the comment count will be invalid</span>
lazyload<span class="token punctuation">:</span> true
count<span class="token punctuation">:</span> true <span class="token comment"># Display comment count in top_img</span>
card_post_count<span class="token punctuation">:</span> false <span class="token comment"># Display comment count in Home Page</span>
</code></pre>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/3a7041440dddd2146eed3b281e0ba676.png#pic_center" alt="在这里插入图片描述"></p>
<blockquote>
<p>单评论</p>
</blockquote>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/76a54c8804550a55cc348ed6c4843958.png#pic_center" alt="在这里插入图片描述"></p>
<blockquote>
<p>双评论</p>
</blockquote>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/f97f12c4b1dd1dd5fbc2ce0b17907c18.png#pic_center" alt="在这里插入图片描述"></p>
<blockquote>
<p>显示test</p>
</blockquote>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/df5052e8136f6332464683fe5cf13bfd.png#pic_center" alt="在这里插入图片描述"></p>
<blockquote>
<p>不显示test</p>
</blockquote>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/1093639ec30d2445ea532d0aa8196153.png#pic_center" alt="在这里插入图片描述"></p>
<p>当然也可以用其他评论插件,只需要配置对应项就是了,不是自带的可以照着网上的教程自己弄一个,类似的文章有很多,可以搜索关键字就行了。</p>
<h6>2.9 添加在线聊天功能</h6>
<p>从3.0开始,Butterfly主题内置了多种在綫聊天工具。你可以选择开启一种,方便你与访客的交流。</p>
<p>{% tabs test1 %}</p>
<p>这些工具都提供了一个按钮可以打开/关闭聊天窗口。<br> 主题也提供了一个集合主题特色的按钮来替换这些工具本身的按钮,这个聊天按钮将会出现在右下角里。<br> 你只需要把chat_btn打开就行。</p>
<p>修改 主题配置文件</p>
<p>配置chatra,需要知道Public key</p>
<p>打开chatra并註册账号。<br> 你可以在Preferences中找到Public key</p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/c4d580e5901f3732712eb468dbe4415a.png#pic_center" alt="在这里插入图片描述"></p>
<h6>修改 <code>主题配置文件</code></h6>
<pre><code class="prism language-python"><span class="token comment"># chatra</span>
<span class="token comment"># https://chatra.io/</span>
chatra<span class="token punctuation">:</span>
enable<span class="token punctuation">:</span> true
<span class="token builtin">id</span><span class="token punctuation">:</span> xxxxxxxx
</code></pre>
<h6><code>chatra</code>的样式你可以<code>Chat Widget</code>自行配置</h6>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/5cb92da9779e509fe428110595df9991.png#pic_center" alt="在这里插入图片描述"></p>
<blockquote>
<p>Demo</p>
</blockquote>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/0f2d62bb680b6b03857d65b4f2302ad9.png#pic_center" alt="在这里插入图片描述"></p>
<p>配置tidio,需要知道<code>Public key</code></p>
<p>打开tidio并註册账号。<br> 你可以在<code>Preferences</code> > <code>Developer</code>中找到<code>Public key</code></p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/e4c8853dc43513082b238bcd79540649.png#pic_center" alt="在这里插入图片描述"><br> 修改 <code>主题配置文件</code></p>
<pre><code class="prism language-python"><span class="token comment"># tidio</span>
<span class="token comment"># https://www.tidio.com/</span>
tidio<span class="token punctuation">:</span>
enable<span class="token punctuation">:</span> true
public_key<span class="token punctuation">:</span> XXXX
</code></pre>
<p><code>tidio</code>的样式你可以<code>Channels</code>自行配置</p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/a22a9366e9bd7829bb3a37c3a6bd7a35.png#pic_center" alt="在这里插入图片描述"></p>
<blockquote>
<p>Demo</p>
</blockquote>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/45e4d3c60e3324576ca9bb46fb7a7ba9.png#pic_center" alt="在这里插入图片描述"></p>
<p>打开daovoice和註册帐号<br> 找到你的<code>app id</code></p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/74d0d759fee2682cbfefc992290a7919.png#pic_center" alt="在这里插入图片描述"><br> 修改 <code>主题配置文件</code></p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/f3730950b7351f02b60fe27b5c679c73.png#pic_center" alt="在这里插入图片描述"></p>
<blockquote>
<p>Demo</p>
</blockquote>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/00f90f2cb04d2cb57450ddf97ed69f50.png#pic_center" alt="在这里插入图片描述"><br> {% endtabs %}</p>
<h6>2.10 添加看板娘</h6>
<h6>写在最前</h6>
<p>最早的时候看别人的博客很多都有一个可爱的看板娘,然后就找了教程给自己也整了一个。因为找到的教程都</p>
<p>是稂莠不齐的,原作者自己说的也略显含糊(其实是我自己看不懂)。总之秉承着一如既往的小白风格。把网</p>
<p>上的教程做个整合。</p>
<h6>效果图:</h6>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/93d0a47e98e70a0cd20aabe60df660c5.png#pic_center" alt="在这里插入图片描述"></p>
<h6>1. 以<code>Butterfly</code>主题为例,在<code>\themes\butterfly\source\</code>目录下打开终端,输入</h6>
<pre><code class="prism language-python">git clone https<span class="token punctuation">:</span><span class="token operator">//</span>github<span class="token punctuation">.</span>com<span class="token operator">/</span>stevenjoezhang<span class="token operator">/</span>live2d<span class="token operator">-</span>widget<span class="token punctuation">.</span>git live2d<span class="token operator">-</span>widget
</code></pre>
<blockquote>
<p>这行指令的意思就是<code>clone</code>这个项目到<code>source</code>路径下并重命名为<code>live2d-widget</code>。~~emm,貌似本来就叫live2d-widget。反正算是一个踩坑点。~~如果是用下载项目压缩包,解压后放到这里的,也记得把文件夹<code>更名为live2d-widget</code>。</p>
</blockquote>
<h6>2. 找到路径<code>\themes\butterfly\source\live2d-widget\autoload.js</code>,打开<code>autoload.js</code>,修改内容:</h6>
<pre><code class="prism language-python"><span class="token operator">-</span> const live2d_path <span class="token operator">=</span> <span class="token string">"https://cdn.jsdelivr.net/gh/stevenjoezhang/live2d-widget/"</span><span class="token punctuation">;</span>
<span class="token operator">+</span> const live2d_path <span class="token operator">=</span> <span class="token string">"/live2d-widget/"</span><span class="token punctuation">;</span>
</code></pre>
<blockquote>
<p>此处引用一下参考教程原话:<code>autoload.js</code>中的注释的绝对地址指的是,将资源打包放到<code>/theme/next/source</code>中后,以<code>/theme/next/source</code>为根目录(/)的绝对路径。</p>
</blockquote>
<h6>3. 在<code>Butterfly</code>的主题配置文件<code>\_config.butterfly.yml</code>中,</h6>
<p><code>butterfly</code>主题其实自带<code>fontawesome</code>依赖,无需引入</p>
<pre><code class="prism language-python"> <span class="token comment"># Inject</span>
<span class="token comment"># Insert the code to head (before '</head>' tag) and the bottom (before '</body>' tag)</span>
<span class="token comment"># 插入代码到头部 </head> 之前 和 底部 </body> 之前</span>
inject<span class="token punctuation">:</span>
head<span class="token punctuation">:</span>
<span class="token comment"># - <link rel="stylesheet" href="/xxx.css"></span>
bottom<span class="token punctuation">:</span>
<span class="token comment"># - <script src="xxxx"></script></span>
<span class="token operator">+</span> <span class="token operator">-</span> <span class="token operator"><</span>script defer src<span class="token operator">=</span><span class="token string">"/live2d-widget/autoload.js"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
</code></pre>
<h6>4. 保存所有文件的修改,然后照例执行</h6>
<pre><code class="prism language-python">hexo clean
hexo g
hexo s
</code></pre>
<h6>5. 自定义修改</h6>
<p>有一定前端基础的小伙伴可以通过修改<code>\themes\butterfly\source\live2d-widget</code>路径下的样式资源文件:</p>
<ul><li> <p><code>waifu-tips.js</code>:包含了按钮和对话框的逻辑</p> </li><li> <p><code>waifu-tips.json</code> :定义了触发条件(selector,CSS 选择器)和触发时显示的文字(text);</p> </li><li> <p><code>waifu.css</code>:看板娘的样式表。可以对看板娘的位置布局等做自定义修改。</p> </li></ul>
<h6>2.11 增加emoji支持</h6>
<p>为博客新增对<code>emoji</code>表情的支持,使用到了 hexo-filter-github-emojis 的 Hexo 插件来支持 <code>emoji</code>表情的生成,把对应的<code>markdown emoji</code>语法(<code>::</code>,例如:😄 <code>:smile:</code>)转变成会跳跃的<code>emoji</code>表情,安装命令如下:</p>
<pre><code class="prism language-python">npm install hexo<span class="token operator">-</span><span class="token builtin">filter</span><span class="token operator">-</span>github<span class="token operator">-</span>emojis <span class="token operator">-</span><span class="token operator">-</span>save
</code></pre>
<p>Bash</p>
<p>在 Hexo 根目录下的 <code>_config.yml</code> 文件中,新增以下的配置项:</p>
<pre><code class="prism language-python">githubEmojis<span class="token punctuation">:</span>
enable<span class="token punctuation">:</span> true
className<span class="token punctuation">:</span> github<span class="token operator">-</span>emoji
inject<span class="token punctuation">:</span> true
styles<span class="token punctuation">:</span>
customEmojis<span class="token punctuation">:</span>
</code></pre>
<p>执行 <code>hexo clean && hexo g</code> 重新生成博客文件,然后就可以在文章中对应位置看到你用<code>emoji</code>语法写的表情了。<br> 如下图:</p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/ec096b258515c0a9acf94cc880866816.png#pic_center" alt="在这里插入图片描述"></p>
<h6>emoji支持</h6>
<h6>2.12 首页置顶轮播图</h6>
<p>本项目是对冰卡诺老师写的教程:基于Butterfly主题的轮播手动置顶文章进行重构,精简了部分样式。适配pjax。</p>
<p>效果图:</p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/786135ac1aa119b41fa7cb2a5084112e.png#pic_center" alt="在这里插入图片描述"></p>
<h6>1. 安装插件,在博客根目录<code></code>下打开终端,运行以下指令:</h6>
<pre><code class="prism language-python">npm install hexo<span class="token operator">-</span>butterfly<span class="token operator">-</span>swiper <span class="token operator">-</span><span class="token operator">-</span>save
</code></pre>
<h6>2. 添加配置信息,以下为写法示例</h6>
<p>在站点配置文件<code>_config.yml</code>或者主题配置文件<code>_config.butterfly.yml</code>中添加</p>
<pre><code class="prism language-python"><span class="token comment"># hexo-butterfly-swiper</span>
<span class="token comment"># see https://akilar.top/posts/8e1264d1/</span>
swiper<span class="token punctuation">:</span>
enable<span class="token punctuation">:</span> true <span class="token comment"># 开关</span>
priority<span class="token punctuation">:</span> <span class="token number">5</span> <span class="token comment">#过滤器优先权</span>
enable_page<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token comment"># 应用页面</span>
timemode<span class="token punctuation">:</span> date <span class="token comment">#date/updated</span>
layout<span class="token punctuation">:</span> <span class="token comment"># 挂载容器类型</span>
<span class="token builtin">type</span><span class="token punctuation">:</span> <span class="token builtin">id</span>
name<span class="token punctuation">:</span> recent<span class="token operator">-</span>posts
index<span class="token punctuation">:</span> <span class="token number">0</span>
default_descr<span class="token punctuation">:</span> 再怎么看我也不知道怎么描述它的啦!
swiper_css<span class="token punctuation">:</span> https<span class="token punctuation">:</span><span class="token operator">//</span>npm<span class="token punctuation">.</span>elemecdn<span class="token punctuation">.</span>com<span class="token operator">/</span>hexo<span class="token operator">-</span>butterfly<span class="token operator">-</span>swiper<span class="token operator">/</span>lib<span class="token operator">/</span>swiper<span class="token punctuation">.</span><span class="token builtin">min</span><span class="token punctuation">.</span>css <span class="token comment">#swiper css依赖</span>
swiper_js<span class="token punctuation">:</span> https<span class="token punctuation">:</span><span class="token operator">//</span>npm<span class="token punctuation">.</span>elemecdn<span class="token punctuation">.</span>com<span class="token operator">/</span>hexo<span class="token operator">-</span>butterfly<span class="token operator">-</span>swiper<span class="token operator">/</span>lib<span class="token operator">/</span>swiper<span class="token punctuation">.</span><span class="token builtin">min</span><span class="token punctuation">.</span>js <span class="token comment">#swiper js依赖</span>
custom_css<span class="token punctuation">:</span> https<span class="token punctuation">:</span><span class="token operator">//</span>npm<span class="token punctuation">.</span>elemecdn<span class="token punctuation">.</span>com<span class="token operator">/</span>hexo<span class="token operator">-</span>butterfly<span class="token operator">-</span>swiper<span class="token operator">/</span>lib<span class="token operator">/</span>swiperstyle<span class="token punctuation">.</span>css <span class="token comment"># 适配主题样式补丁</span>
custom_js<span class="token punctuation">:</span> https<span class="token punctuation">:</span><span class="token operator">//</span>npm<span class="token punctuation">.</span>elemecdn<span class="token punctuation">.</span>com<span class="token operator">/</span>hexo<span class="token operator">-</span>butterfly<span class="token operator">-</span>swiper<span class="token operator">/</span>lib<span class="token operator">/</span>swiper_init<span class="token punctuation">.</span>js <span class="token comment"># swiper初始化方法</span>
</code></pre>
<h6>3. 参数释义</h6>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/4bf761c057efdf428a953934c316d519.png#pic_center" alt="在这里插入图片描述"></p>
<p><font color="blue">使用方法</font></p>
<p>在文章的<code>front_matter</code>中添加<code>swiper_index</code>配置项即可。</p>
<pre><code class="prism language-python"><span class="token operator">-</span><span class="token operator">-</span><span class="token operator">-</span>
title<span class="token punctuation">:</span> 文章标题
date<span class="token punctuation">:</span> 创建日期
updated<span class="token punctuation">:</span> 更新日期
cover<span class="token punctuation">:</span> 文章封面
description<span class="token punctuation">:</span> 文章描述
swiper_index<span class="token punctuation">:</span> <span class="token number">1</span> <span class="token comment">#置顶轮播图顺序,非负整数,数字越大越靠前</span>
<span class="token operator">-</span><span class="token operator">-</span><span class="token operator">-</span>
</code></pre>
<h6>2.13 添加博客动态标签</h6>
<p>原理就是给博客增加一个事件判断,如下图所示:<br> <img src="https://i-blog.csdnimg.cn/blog_migrate/e3dc1a10019ad8ae1b434523a9e759dc.png#pic_center" alt="在这里插入图片描述"></p>
<h6>在 <code>themes\butterfly\source\js</code> 文件夹新建 <code>title.js</code> 文件,文件内容如下:</h6>
<pre><code class="prism language-python"><span class="token operator">//</span> 浏览器搞笑标题
var OriginTitle <span class="token operator">=</span> document<span class="token punctuation">.</span>title<span class="token punctuation">;</span>
var titleTime<span class="token punctuation">;</span>
document<span class="token punctuation">.</span>addEventListener<span class="token punctuation">(</span><span class="token string">'visibilitychange'</span><span class="token punctuation">,</span> function <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>document<span class="token punctuation">.</span>hidden<span class="token punctuation">)</span> <span class="token punctuation">{</span>
document<span class="token punctuation">.</span>querySelector<span class="token punctuation">(</span><span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">.</span>setAttribute<span class="token punctuation">(</span><span class="token string">'href'</span><span class="token punctuation">,</span> <span class="token string">"/img/funny.ico"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
document<span class="token punctuation">.</span>title <span class="token operator">=</span> <span class="token string">'(っ °Д °;)っ 访问的页面不存在了'</span><span class="token punctuation">;</span>
clearTimeout<span class="token punctuation">(</span>titleTime<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">else</span> <span class="token punctuation">{</span>
document<span class="token punctuation">.</span>querySelector<span class="token punctuation">(</span><span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">.</span>setAttribute<span class="token punctuation">(</span><span class="token string">'href'</span><span class="token punctuation">,</span> <span class="token string">"/img/favicon.ico"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
document<span class="token punctuation">.</span>title <span class="token operator">=</span> <span class="token string">'(●\'◡\'●)噫又好啦 ~'</span> <span class="token operator">+</span> OriginTitle<span class="token punctuation">;</span>
titleTime <span class="token operator">=</span> setTimeout<span class="token punctuation">(</span>function <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
document<span class="token punctuation">.</span>title <span class="token operator">=</span> OriginTitle<span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token number">2000</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h6>编辑 <code>_config.butterfly.yml</code> 文件</h6>
<p> 在 <code>inject->bottom</code> 下面添加如下内容:</p>
<pre><code class="prism language-python"><span class="token operator">-</span> <span class="token operator"><</span>script src<span class="token operator">=</span><span class="token string">"/js/title.js"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
</code></pre>
<p>然后 <code>hexo clean && hexo g</code> 即可。</p>
<h6>2.14 添加鼠标点击烟花爆炸效果</h6>
<p>在 /themes/matery/source/js 新建文件 fireworks.js,并添加如下代码</p>
<p>Download Now</p>
<p>然后在 /themes/matery/layout/_partial/footer.ejs 中添加如下代码:</p>
<pre><code class="prism language-python"><span class="token operator"><</span><span class="token operator">%</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>theme<span class="token punctuation">.</span>fireworks<span class="token punctuation">.</span>enable<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">%</span><span class="token operator">></span>
<span class="token operator"><</span>canvas <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"fireworks"</span> style<span class="token operator">=</span><span class="token string">"position: fixed; left: 0; top: 0; z-index: 1; pointer-events: none;"</span> <span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>canvas<span class="token operator">></span>
<span class="token operator"><</span>script <span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"text/javascript"</span> src<span class="token operator">=</span><span class="token string">"//cdn.bootcss.com/animejs/2.2.0/anime.min.js"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
<span class="token operator"><</span>script <span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"text/javascript"</span> src<span class="token operator">=</span><span class="token string">"/js/fireworks.js"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">%</span> <span class="token punctuation">}</span> <span class="token operator">%</span><span class="token operator">></span>
</code></pre>
<p>在主题配置文件 .yml中配置:</p>
<pre><code class="prism language-python"><span class="token comment"># 鼠标点击烟花爆炸动效</span>
fireworks<span class="token punctuation">:</span>
enable<span class="token punctuation">:</span> true
</code></pre>
<h6>2.15 添加页面樱花飘落动效</h6>
<p>在 /themes/matery/source/js 新建文件 sakura.js,并添加如下代码</p>
<p>Download Now</p>
<p>然后在 /themes/matery/layout/_partial/head.ejs 中添加如下代码:</p>
<pre><code class="prism language-python"><span class="token operator"><</span><span class="token operator">%</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>theme<span class="token punctuation">.</span>sakura<span class="token punctuation">.</span>enable<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">%</span><span class="token operator">></span>
<span class="token operator"><</span>script <span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"text/javascript"</span><span class="token operator">></span>
<span class="token operator">//</span>只在桌面版网页启用特效
var windowWidth <span class="token operator">=</span> $<span class="token punctuation">(</span>window<span class="token punctuation">)</span><span class="token punctuation">.</span>width<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>windowWidth <span class="token operator">></span> <span class="token number">768</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
document<span class="token punctuation">.</span>write<span class="token punctuation">(</span><span class="token string">'<script type="text/javascript" src="/js/sakura.js"></script>'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">%</span> <span class="token punctuation">}</span> <span class="token operator">%</span><span class="token operator">></span>
</code></pre>
<p>在主题配置文件 .yml中配置:</p>
<pre><code class="prism language-python"><span class="token comment"># 页面樱花飘落动效</span>
sakura<span class="token punctuation">:</span>
enable<span class="token punctuation">:</span> true
</code></pre>
<h6>2.16 添加鼠标点击文字特效</h6>
<p>在 /themes/butterfly/source/js 新建文件 wenzi.js,并添加如下代码</p>
<p>Download Now</p>
<p>然后在 /themes/butterfly/layout/_partial/head.ejs 中添加如下代码:</p>
<pre><code class="prism language-python"><span class="token operator"><</span><span class="token operator">%</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>theme<span class="token punctuation">.</span>wenzi<span class="token punctuation">.</span>enable<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">%</span><span class="token operator">></span>
<span class="token operator"><</span>script <span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"text/javascript"</span><span class="token operator">></span>
<span class="token operator">//</span>只在桌面版网页启用特效
var windowWidth <span class="token operator">=</span> $<span class="token punctuation">(</span>window<span class="token punctuation">)</span><span class="token punctuation">.</span>width<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>windowWidth <span class="token operator">></span> <span class="token number">768</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
document<span class="token punctuation">.</span>write<span class="token punctuation">(</span><span class="token string">'<script type="text/javascript" src="/js/wenzi.js"></script>'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">%</span> <span class="token punctuation">}</span> <span class="token operator">%</span><span class="token operator">></span>
</code></pre>
<p>Js</p>
<p>在主题配置文件 .yml中配置:</p>
<pre><code class="prism language-python"><span class="token comment"># 页面樱花飘落动效</span>
wenzi<span class="token punctuation">:</span>
enable<span class="token punctuation">:</span> true
</code></pre>
<h6>2.17 添加页面雪花飘落动效</h6>
<p>在 /themes/butterfly/source/js 新建文件 xuehuapiaoluo.js,并添加如下代码</p>
<p>Download Now</p>
<p>然后在 /themes/matery/layout/_partial/head.ejs 中添加如下代码:</p>
<pre><code class="prism language-python"><span class="token operator"><</span><span class="token operator">%</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>theme<span class="token punctuation">.</span>xuehuapiaoluo<span class="token punctuation">.</span>enable<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">%</span><span class="token operator">></span>
<span class="token operator"><</span>script <span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"text/javascript"</span><span class="token operator">></span>
<span class="token operator">//</span>只在桌面版网页启用特效
var windowWidth <span class="token operator">=</span> $<span class="token punctuation">(</span>window<span class="token punctuation">)</span><span class="token punctuation">.</span>width<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>windowWidth <span class="token operator">></span> <span class="token number">768</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
document<span class="token punctuation">.</span>write<span class="token punctuation">(</span><span class="token string">'<script type="text/javascript" src="/js/xuehuapiaoluo.js"></script>'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">%</span> <span class="token punctuation">}</span> <span class="token operator">%</span><span class="token operator">></span>
</code></pre>
<p>在主题配置文件 .yml中配置:</p>
<pre><code class="prism language-python"><span class="token comment"># 页面樱花飘落动效</span>
xuehuapiaoluo<span class="token punctuation">:</span>
enable<span class="token punctuation">:</span> true
</code></pre>
<h6>2.18 添加博客天气插件</h6>
<p>在搜寻插件的过程中无意间用 google 搜到的一个网站,使用非常简单,在这里附上插件添加的方法</p>
<p>中国天气网:https://cj.weather.com.cn/plugin/pc</p>
<p>选择自定义插件—>自定义样式——>生成代码,然后会生成这样一段代码</p>
<pre><code class="prism language-python"><span class="token operator"><</span>!<span class="token operator">-</span><span class="token operator">-</span> Weather Widget <span class="token operator">-</span><span class="token operator">-</span><span class="token operator">></span>
<span class="token operator"><</span>script <span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"text/javascript"</span><span class="token operator">></span> WIDGET <span class="token operator">=</span> <span class="token punctuation">{</span>FID<span class="token punctuation">:</span> <span class="token string">'your FID'</span><span class="token punctuation">}</span><span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
<span class="token operator"><</span>script <span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"text/javascript"</span> src<span class="token operator">=</span><span class="token string">"https://apip.weatherdt.com/float/static/js/r.js?v=1111"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
</code></pre>
<p>在 /themes/butterfly/source/layout/_widget 新建文件 weather.ejs,把上面生成的代码添加进入,可以设置只有桌面端显示,如下修改:</p>
<pre><code class="prism language-python"><span class="token operator"><</span>!<span class="token operator">-</span><span class="token operator">-</span> 天气接口爱笑的Gao add <span class="token number">2022</span> <span class="token number">05.08</span> <span class="token operator">-</span><span class="token operator">-</span><span class="token operator">></span>
<span class="token operator"><</span>script <span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"text/javascript"</span><span class="token operator">></span>
WIDGET <span class="token operator">=</span> <span class="token punctuation">{</span>FID<span class="token punctuation">:</span> <span class="token string">'1tFpFZ5Mtj'</span><span class="token punctuation">}</span>
<span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
<span class="token operator"><</span>!<span class="token operator">-</span><span class="token operator">-</span> <span class="token operator"><</span>script <span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"text/javascript"</span> src<span class="token operator">=</span><span class="token string">"https://apip.weatherdt.com/float/static/js/r.js?v=1111"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span> <span class="token operator">-</span><span class="token operator">-</span><span class="token operator">></span>
<span class="token operator"><</span>script <span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"text/javascript"</span><span class="token operator">></span>
<span class="token operator">//</span>只在桌面版网页启用特效
var windowWidth <span class="token operator">=</span> $<span class="token punctuation">(</span>window<span class="token punctuation">)</span><span class="token punctuation">.</span>width<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>windowWidth <span class="token operator">></span> <span class="token number">768</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
document<span class="token punctuation">.</span>write<span class="token punctuation">(</span><span class="token string">'<script type="text/javascript" src="https://apip.weatherdt.com/float/static/js/r.js?v=1111"><\/script>'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
</code></pre>
<p>然后在 /themes/butterfly/layout/_partial/layout.ejs 中添加如下代码:</p>
<pre><code class="prism language-python"><span class="token operator"><</span>!<span class="token operator">-</span><span class="token operator">-</span> 天气接口爱笑的Gao add <span class="token number">2022</span> <span class="token number">05.08</span> <span class="token operator">-</span><span class="token operator">-</span><span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">%</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>theme<span class="token punctuation">.</span>weather<span class="token punctuation">.</span>enable<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">%</span><span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">%</span><span class="token operator">-</span> partial<span class="token punctuation">(</span><span class="token string">'_widget/weather'</span><span class="token punctuation">)</span> <span class="token operator">%</span><span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">%</span> <span class="token punctuation">}</span> <span class="token operator">%</span><span class="token operator">></span>
</code></pre>
<p>在主题配置文件 .yml中配置:</p>
<pre><code class="prism language-python"><span class="token comment"># 天气接口插件</span>
weather<span class="token punctuation">:</span>
enable<span class="token punctuation">:</span> true
</code></pre>
<p>展示效果可以参考我的主页</p>
<h6>当然,如果你不想搞这么复杂,可以直接将下面代码插入 /themes/butterfly/layout/_partial/layout.ejs 中即可使用:</h6>
<pre><code class="prism language-python"><span class="token operator"><</span>script <span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"text/javascript"</span><span class="token operator">></span>
WIDGET <span class="token operator">=</span> <span class="token punctuation">{</span>FID<span class="token punctuation">:</span> <span class="token string">'1tFpFZ5Mtj'</span><span class="token punctuation">}</span>
<span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
<span class="token operator"><</span>script <span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"text/javascript"</span> src<span class="token operator">=</span><span class="token string">"https://apip.weatherdt.com/float/static/js/r.js?v=1111"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
</code></pre>
<h6>2.19 修改滚动条</h6>
<h6>在 <code>themes\Butterfly\source\css</code> 文件夹新建 <code>scrollbar.css</code> 文件,文件内容如下:</h6>
<p>颜色可以根据自己需求修改</p>
<pre><code class="prism language-python"><span class="token operator">/</span><span class="token operator">*</span> 滚动条 <span class="token operator">*</span><span class="token operator">/</span>
<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span>webkit<span class="token operator">-</span>scrollbar <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> 8px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 8px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span>webkit<span class="token operator">-</span>scrollbar<span class="token operator">-</span>track <span class="token punctuation">{</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">73</span><span class="token punctuation">,</span> <span class="token number">177</span><span class="token punctuation">,</span> <span class="token number">245</span><span class="token punctuation">,</span> <span class="token number">0.2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> 2em<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span>webkit<span class="token operator">-</span>scrollbar<span class="token operator">-</span>thumb <span class="token punctuation">{</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#49b1f5 !important;</span>
background<span class="token operator">-</span>image<span class="token punctuation">:</span> <span class="token operator">-</span>webkit<span class="token operator">-</span>linear<span class="token operator">-</span>gradient<span class="token punctuation">(</span>
45deg<span class="token punctuation">,</span>
rgba<span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">0.4</span><span class="token punctuation">)</span> <span class="token number">25</span><span class="token operator">%</span><span class="token punctuation">,</span>
transparent <span class="token number">25</span><span class="token operator">%</span><span class="token punctuation">,</span>
transparent <span class="token number">50</span><span class="token operator">%</span><span class="token punctuation">,</span>
rgba<span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">0.4</span><span class="token punctuation">)</span> <span class="token number">50</span><span class="token operator">%</span><span class="token punctuation">,</span>
rgba<span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">0.4</span><span class="token punctuation">)</span> <span class="token number">75</span><span class="token operator">%</span><span class="token punctuation">,</span>
transparent <span class="token number">75</span><span class="token operator">%</span><span class="token punctuation">,</span>
transparent
<span class="token punctuation">)</span> !important<span class="token punctuation">;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> 2em<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span>webkit<span class="token operator">-</span>scrollbar<span class="token operator">-</span>corner <span class="token punctuation">{</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span> transparent<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span>moz<span class="token operator">-</span>selection <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#fff;</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#49b1f5;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">[</span>data<span class="token operator">-</span>theme<span class="token operator">=</span><span class="token string">"dark"</span><span class="token punctuation">]</span> <span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span>webkit<span class="token operator">-</span>scrollbar<span class="token operator">-</span>thumb <span class="token punctuation">{</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#1f1f1f !important;</span>
<span class="token punctuation">}</span>
</code></pre>
<h6>编辑 <code>_config.butterfly.yml</code> 文件</h6>
<p>在 <code>inject->head</code> 下面添加如下内容:</p>
<pre><code class="prism language-python"><span class="token operator">-</span> <span class="token operator"><</span>link rel<span class="token operator">=</span><span class="token string">"stylesheet"</span> href<span class="token operator">=</span><span class="token string">"/css/scrollbar.css"</span><span class="token operator">></span>
</code></pre>
<h6>2.20 增加Pixiv 日榜</h6>
<h6>效果图:</h6>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/ad92874cd1553b5dfa21ec6b0dea108d.png#pic_center" alt="在这里插入图片描述"></p>
<h6>在 <code>themes\Butterfly\layout\includes\widget</code> 文件夹新建 <code>card_pixiv.pug</code> 文件,文件内容如下:</h6>
<pre><code class="prism language-python"><span class="token punctuation">.</span>card<span class="token operator">-</span>widget<span class="token punctuation">.</span>card<span class="token operator">-</span>pixiv
<span class="token punctuation">.</span>card<span class="token operator">-</span>content
<span class="token punctuation">.</span>item<span class="token operator">-</span>headline
i<span class="token punctuation">.</span>fa<span class="token punctuation">.</span>fa<span class="token operator">-</span>image<span class="token punctuation">(</span>aria<span class="token operator">-</span>hidden<span class="token operator">=</span><span class="token string">"true"</span><span class="token punctuation">)</span>
span<span class="token operator">=</span> _p<span class="token punctuation">(</span><span class="token string">'aside.card_pixiv'</span><span class="token punctuation">)</span>
iframe<span class="token punctuation">(</span>src<span class="token operator">=</span><span class="token string">"https://cloud.mokeyjay.com/pixiv"</span> frameborder<span class="token operator">=</span><span class="token string">"0"</span> style<span class="token operator">=</span><span class="token string">"width:99%;height:380px;margin:0;"</span><span class="token punctuation">)</span>
</code></pre>
<p><code> https://cloud.mokeyjay.com/pixiv</code> 使用的是超能小紫提供的服务,也可以自行搭建</p>
<h6>编辑 <code>themes\Butterfly\layout\includes\widget\index.pug</code> 文件,在你想要显示的位置插入以下代码:</h6>
<pre><code class="prism language-python"><span class="token keyword">if</span> theme<span class="token punctuation">.</span>aside<span class="token punctuation">.</span>card_pixiv
include <span class="token punctuation">.</span><span class="token operator">/</span>card_pixiv<span class="token punctuation">.</span>pug
</code></pre>
<h6>编辑 <code>_config.butterfly.yml</code> 文件,在 <code>card_webinfo</code> 下面添加一行 <code>card_pixiv: true</code></h6>
<h6>编辑 <code>themes\Butterfly\languages\zh-CN.yml</code> 文件 (请根据你的网站语言选择),找到 <code>card_announcement: 公告</code> , 在下面添加一行 c<code>ard_pixiv: Pixiv日榜Top50</code>(后面的文本可自定义)</h6>
<p>如果不想显示,直接把 <code>_config.butterfly.yml</code> 文件的 <code>card_pixiv: true</code> 改为 <code>card_pixiv: false</code> 即可</p>
<h6>2.21 Github-bride</h6>
<h6>效果图:</h6>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/04483c6f3fc39cdf7484b4a47d843f7c.png#pic_center" alt="在这里插入图片描述"></p>
<h6>在 <code>themes\Butterfly\source\css</code> 文件夹新建 <code>badge.css</code> 文件,文件内容如下:</h6>
<pre><code class="prism language-python"><span class="token punctuation">.</span>github<span class="token operator">-</span>badge <span class="token punctuation">{</span>
display<span class="token punctuation">:</span>inline<span class="token operator">-</span>block<span class="token punctuation">;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span>4px<span class="token punctuation">;</span>
text<span class="token operator">-</span>shadow<span class="token punctuation">:</span>none<span class="token punctuation">;</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span>13px<span class="token punctuation">;</span>
color<span class="token punctuation">:</span><span class="token comment">#fff;</span>
line<span class="token operator">-</span>height<span class="token punctuation">:</span>15px<span class="token punctuation">;</span>
margin<span class="token operator">-</span>bottom<span class="token punctuation">:</span>5px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>github<span class="token operator">-</span>badge a<span class="token punctuation">{</span>
display<span class="token punctuation">:</span> inline<span class="token operator">-</span>block<span class="token punctuation">;</span>
margin<span class="token punctuation">:</span> <span class="token number">0</span> 1px 5px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>github<span class="token operator">-</span>badge <span class="token punctuation">.</span>badge<span class="token operator">-</span>subject <span class="token punctuation">{</span>
display<span class="token punctuation">:</span>inline<span class="token operator">-</span>block<span class="token punctuation">;</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span><span class="token comment">#4D4D4D;</span>
padding<span class="token punctuation">:</span>4px 4px 4px 6px<span class="token punctuation">;</span>
border<span class="token operator">-</span>top<span class="token operator">-</span>left<span class="token operator">-</span>radius<span class="token punctuation">:</span>4px<span class="token punctuation">;</span>
border<span class="token operator">-</span>bottom<span class="token operator">-</span>left<span class="token operator">-</span>radius<span class="token punctuation">:</span>4px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>github<span class="token operator">-</span>badge <span class="token punctuation">.</span>badge<span class="token operator">-</span>value <span class="token punctuation">{</span>
display<span class="token punctuation">:</span>inline<span class="token operator">-</span>block<span class="token punctuation">;</span>
padding<span class="token punctuation">:</span>4px 6px 4px 4px<span class="token punctuation">;</span>
border<span class="token operator">-</span>top<span class="token operator">-</span>right<span class="token operator">-</span>radius<span class="token punctuation">:</span>4px<span class="token punctuation">;</span>
border<span class="token operator">-</span>bottom<span class="token operator">-</span>right<span class="token operator">-</span>radius<span class="token punctuation">:</span>4px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>github<span class="token operator">-</span>badge <span class="token punctuation">.</span>bg<span class="token operator">-</span>brightgreen <span class="token punctuation">{</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span><span class="token comment">#4DC820 !important;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>github<span class="token operator">-</span>badge <span class="token punctuation">.</span>bg<span class="token operator">-</span>orange <span class="token punctuation">{</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span><span class="token comment">#FFA500 !important;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>github<span class="token operator">-</span>badge <span class="token punctuation">.</span>bg<span class="token operator">-</span>yellow <span class="token punctuation">{</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span><span class="token comment">#D8B024 !important;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>github<span class="token operator">-</span>badge <span class="token punctuation">.</span>bg<span class="token operator">-</span>blueviolet <span class="token punctuation">{</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span><span class="token comment">#8833D7 !important;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>github<span class="token operator">-</span>badge <span class="token punctuation">.</span>bg<span class="token operator">-</span>pink <span class="token punctuation">{</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span><span class="token comment">#F26BAE !important;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>github<span class="token operator">-</span>badge <span class="token punctuation">.</span>bg<span class="token operator">-</span>red <span class="token punctuation">{</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span><span class="token comment">#e05d44 !important;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>github<span class="token operator">-</span>badge <span class="token punctuation">.</span>bg<span class="token operator">-</span>blue <span class="token punctuation">{</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span><span class="token comment">#007EC6 !important;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>github<span class="token operator">-</span>badge <span class="token punctuation">.</span>bg<span class="token operator">-</span>lightgrey <span class="token punctuation">{</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span><span class="token comment">#9F9F9F !important;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>github<span class="token operator">-</span>badge <span class="token punctuation">.</span>bg<span class="token operator">-</span>grey<span class="token punctuation">,</span> <span class="token punctuation">.</span>github<span class="token operator">-</span>badge <span class="token punctuation">.</span>bg<span class="token operator">-</span>gray <span class="token punctuation">{</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span><span class="token comment">#555 !important;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>github<span class="token operator">-</span>badge <span class="token punctuation">.</span>bg<span class="token operator">-</span>lightgrey<span class="token punctuation">,</span> <span class="token punctuation">.</span>github<span class="token operator">-</span>badge <span class="token punctuation">.</span>bg<span class="token operator">-</span>lightgray <span class="token punctuation">{</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span><span class="token comment">#9f9f9f !important;</span>
<span class="token punctuation">}</span>
</code></pre>
<h6>编辑 <code>_config.butterfly.yml</code> 文件、在 i<code>nject->head</code> 下面添加如下内容:</h6>
<pre><code class="prism language-python"><span class="token operator">-</span> <span class="token operator"><</span>link rel<span class="token operator">=</span><span class="token string">"stylesheet"</span> href<span class="token operator">=</span><span class="token string">"/css/badge.css"</span><span class="token operator">></span>
</code></pre>
<blockquote>
<p>以下方法任选一种</p>
</blockquote>
<h6>方法1:</h6>
<p><font color="blue">编辑 <code>themes\Butterfly\layout\includes\footer.pug</code> 文件,插入以下代码:</font></p>
<pre><code class="prism language-python"><span class="token keyword">if</span> theme<span class="token punctuation">.</span>githubBadge<span class="token punctuation">.</span>enable
<span class="token punctuation">.</span>github<span class="token operator">-</span>badge
a<span class="token punctuation">(</span>style<span class="token operator">=</span><span class="token string">"color: #fff"</span> rel<span class="token operator">=</span><span class="token string">"license"</span> href<span class="token operator">=</span><span class="token string">"https://hexo.io/"</span> target<span class="token operator">=</span><span class="token string">"_blank"</span> title<span class="token operator">=</span><span class="token string">"由 Hexo 强力驱动"</span><span class="token punctuation">)</span>
span<span class="token punctuation">(</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"badge-subject"</span><span class="token punctuation">)</span> Powered
span<span class="token punctuation">(</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"badge-value bg-blue"</span><span class="token punctuation">)</span> Hexo
a<span class="token punctuation">(</span>style<span class="token operator">=</span><span class="token string">"color: #fff"</span> rel<span class="token operator">=</span><span class="token string">"license"</span> href<span class="token operator">=</span><span class="token string">"https://gitee.com/"</span> target<span class="token operator">=</span><span class="token string">"_blank"</span> title<span class="token operator">=</span><span class="token string">"静态网页托管于 GitHub Pages 和 Coding Pages 和 Gitee Pages"</span><span class="token punctuation">)</span>
span<span class="token punctuation">(</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"badge-subject"</span><span class="token punctuation">)</span> Hosted
span<span class="token punctuation">(</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"badge-value bg-brightgreen"</span><span class="token punctuation">)</span> GitHub <span class="token operator">&</span> Coding <span class="token operator">&</span> Gitee
a<span class="token punctuation">(</span>style<span class="token operator">=</span><span class="token string">"color: #fff"</span> rel<span class="token operator">=</span><span class="token string">"license"</span> href<span class="token operator">=</span><span class="token string">"https://www.jsdelivr.com/"</span> target<span class="token operator">=</span><span class="token string">"_blank"</span> title<span class="token operator">=</span><span class="token string">"jsDelivr 提供 CDN 加速服务"</span><span class="token punctuation">)</span>
span<span class="token punctuation">(</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"badge-subject"</span><span class="token punctuation">)</span> CDN
span<span class="token punctuation">(</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"badge-value bg-orange"</span><span class="token punctuation">)</span> jsDelivr
a<span class="token punctuation">(</span>style<span class="token operator">=</span><span class="token string">"color: #fff"</span> rel<span class="token operator">=</span><span class="token string">"license"</span> href<span class="token operator">=</span><span class="token string">"https://jerryc.me"</span> target<span class="token operator">=</span><span class="token string">"_blank"</span> title<span class="token operator">=</span><span class="token string">"站点使用 Butterfly主题"</span><span class="token punctuation">)</span>
span<span class="token punctuation">(</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"badge-subject"</span><span class="token punctuation">)</span> Theme
span<span class="token punctuation">(</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"badge-value bg-blue"</span><span class="token punctuation">)</span> Butterfly
a<span class="token punctuation">(</span>style<span class="token operator">=</span><span class="token string">"color: #fff"</span> rel<span class="token operator">=</span><span class="token string">"license"</span> href<span class="token operator">=</span><span class="token string">"http://creativecommons.org/licenses/by-nc-sa/4.0/"</span> target<span class="token operator">=</span><span class="token string">"_blank"</span> title<span class="token operator">=</span><span class="token string">"本站点采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可"</span><span class="token punctuation">)</span>
span<span class="token punctuation">(</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"badge-subject"</span><span class="token punctuation">)</span>
i<span class="token punctuation">(</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"fa fa-copyright"</span><span class="token punctuation">)</span>
span<span class="token punctuation">(</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"badge-value bg-lightgrey"</span><span class="token punctuation">)</span> BY<span class="token operator">-</span>NC<span class="token operator">-</span>SA <span class="token number">4.0</span>
</code></pre>
<p><font color="blue">编辑 <code>_config.butterfly.yml</code> 文件、添加</font></p>
<pre><code class="prism language-python"><span class="token comment"># 是否开启 Badge</span>
githubBadge<span class="token punctuation">:</span>
enable<span class="token punctuation">:</span> true
</code></pre>
<h6>2.22 tag 外挂标签</h6>
<blockquote>
<p>请注意:样式展示在 这里仅包括: 自定义标签、 文本段落、 复选框、 富文本按钮、 Folding、 密码样式的文本、 时间线 、 Link</p>
</blockquote>
<h6>找到 <code>themes\Butterfly\source\css</code> 下创建 <code>tag.css</code> 文件、文件内容如下:</h6>
<pre><code class="prism language-python">span<span class="token punctuation">.</span>btn <span class="token punctuation">{</span>
display<span class="token punctuation">:</span> inline<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>btn <span class="token operator">></span> a <span class="token punctuation">{</span>
display<span class="token punctuation">:</span> inline<span class="token operator">-</span>block<span class="token punctuation">;</span>
background<span class="token punctuation">:</span> <span class="token comment">#2196f3;</span>
color<span class="token punctuation">:</span> <span class="token comment">#fff;</span>
padding<span class="token punctuation">:</span> 4px 4px 2px 4px<span class="token punctuation">;</span>
margin<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
line<span class="token operator">-</span>height<span class="token punctuation">:</span> <span class="token number">1.1</span><span class="token punctuation">;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token operator">-</span>moz<span class="token operator">-</span>transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token operator">-</span>webkit<span class="token operator">-</span>transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token operator">-</span>o<span class="token operator">-</span>transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>btn <span class="token operator">></span> a i <span class="token punctuation">{</span>
margin<span class="token operator">-</span>right<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>btn <span class="token operator">></span> a<span class="token punctuation">:</span>hover <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#fff;</span>
background<span class="token punctuation">:</span> <span class="token comment">#ff5722;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>btn <span class="token operator">></span> a<span class="token punctuation">:</span><span class="token keyword">not</span><span class="token punctuation">(</span><span class="token punctuation">[</span>href<span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
opacity<span class="token punctuation">:</span> <span class="token number">0.5</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>btn <span class="token operator">></span> a<span class="token punctuation">:</span><span class="token keyword">not</span><span class="token punctuation">(</span><span class="token punctuation">[</span>href<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">:</span>hover <span class="token punctuation">{</span>
cursor<span class="token punctuation">:</span> <span class="token keyword">not</span><span class="token operator">-</span>allowed<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>btn<span class="token punctuation">.</span>regular <span class="token operator">></span> a <span class="token punctuation">{</span>
padding<span class="token punctuation">:</span> 8px 12px 6px 12px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>btn<span class="token punctuation">.</span>regular <span class="token operator">></span> a i <span class="token punctuation">{</span>
margin<span class="token operator">-</span>right<span class="token punctuation">:</span> 4px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>btn<span class="token punctuation">.</span>large <span class="token operator">></span> a <span class="token punctuation">{</span>
padding<span class="token punctuation">:</span> 12px 36px 10px 36px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>btn<span class="token punctuation">.</span>large <span class="token operator">></span> a i <span class="token punctuation">{</span>
margin<span class="token operator">-</span>right<span class="token punctuation">:</span> 8px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>btn<span class="token punctuation">.</span>center <span class="token punctuation">{</span>
display<span class="token punctuation">:</span> block<span class="token punctuation">;</span>
text<span class="token operator">-</span>align<span class="token punctuation">:</span> center<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">[</span>data<span class="token operator">-</span>theme<span class="token operator">=</span><span class="token string">"dark"</span><span class="token punctuation">]</span> div<span class="token punctuation">.</span>btns <span class="token punctuation">{</span>
<span class="token builtin">filter</span><span class="token punctuation">:</span> brightness<span class="token punctuation">(</span><span class="token number">0.7</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">[</span>data<span class="token operator">-</span>theme<span class="token operator">=</span><span class="token string">"dark"</span><span class="token punctuation">]</span> div<span class="token punctuation">.</span>btns a <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token number">0</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns <span class="token punctuation">{</span>
margin<span class="token punctuation">:</span> <span class="token number">0</span> <span class="token operator">-</span>8px<span class="token punctuation">;</span>
display<span class="token punctuation">:</span> flex<span class="token punctuation">;</span>
flex<span class="token operator">-</span>wrap<span class="token punctuation">:</span> wrap<span class="token punctuation">;</span>
align<span class="token operator">-</span>items<span class="token punctuation">:</span> flex<span class="token operator">-</span>start<span class="token punctuation">;</span>
overflow<span class="token punctuation">:</span> visible<span class="token punctuation">;</span>
line<span class="token operator">-</span>height<span class="token punctuation">:</span> <span class="token number">1.8</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">,</span>
div<span class="token punctuation">.</span>btns p<span class="token punctuation">,</span>
div<span class="token punctuation">.</span>btns a <span class="token punctuation">{</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">.</span>8125rem<span class="token punctuation">;</span>
color<span class="token punctuation">:</span> <span class="token comment">#555;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns b <span class="token punctuation">{</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">.</span>875rem<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>wide <span class="token operator">></span> a <span class="token punctuation">{</span>
padding<span class="token operator">-</span>left<span class="token punctuation">:</span> 32px<span class="token punctuation">;</span>
padding<span class="token operator">-</span>right<span class="token punctuation">:</span> 32px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>fill <span class="token operator">></span> a <span class="token punctuation">{</span>
flex<span class="token operator">-</span>grow<span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">;</span>
width<span class="token punctuation">:</span> auto<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>around <span class="token punctuation">{</span>
justify<span class="token operator">-</span>content<span class="token punctuation">:</span> space<span class="token operator">-</span>around<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>center <span class="token punctuation">{</span>
justify<span class="token operator">-</span>content<span class="token punctuation">:</span> center<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>grid2 <span class="token operator">></span> a <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">/</span> <span class="token number">2</span> <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token decorator annotation punctuation">@media</span> screen <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 1024px<span class="token punctuation">)</span> <span class="token punctuation">{</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>grid2 <span class="token operator">></span> a <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">/</span> <span class="token number">2</span> <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token decorator annotation punctuation">@media</span> screen <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 768px<span class="token punctuation">)</span> <span class="token punctuation">{</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>grid2 <span class="token operator">></span> a <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">/</span> <span class="token number">2</span> <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token decorator annotation punctuation">@media</span> screen <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 500px<span class="token punctuation">)</span> <span class="token punctuation">{</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>grid2 <span class="token operator">></span> a <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">/</span> <span class="token number">1</span> <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>grid3 <span class="token operator">></span> a <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">/</span> <span class="token number">3</span> <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token decorator annotation punctuation">@media</span> screen <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 1024px<span class="token punctuation">)</span> <span class="token punctuation">{</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>grid3 <span class="token operator">></span> a <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">/</span> <span class="token number">3</span> <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token decorator annotation punctuation">@media</span> screen <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 768px<span class="token punctuation">)</span> <span class="token punctuation">{</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>grid3 <span class="token operator">></span> a <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">/</span> <span class="token number">3</span> <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token decorator annotation punctuation">@media</span> screen <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 500px<span class="token punctuation">)</span> <span class="token punctuation">{</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>grid3 <span class="token operator">></span> a <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">/</span> <span class="token number">1</span> <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>grid4 <span class="token operator">></span> a <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">/</span> <span class="token number">4</span> <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token decorator annotation punctuation">@media</span> screen <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 1024px<span class="token punctuation">)</span> <span class="token punctuation">{</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>grid4 <span class="token operator">></span> a <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">/</span> <span class="token number">3</span> <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token decorator annotation punctuation">@media</span> screen <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 768px<span class="token punctuation">)</span> <span class="token punctuation">{</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>grid4 <span class="token operator">></span> a <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">/</span> <span class="token number">3</span> <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token decorator annotation punctuation">@media</span> screen <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 500px<span class="token punctuation">)</span> <span class="token punctuation">{</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>grid4 <span class="token operator">></span> a <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">/</span> <span class="token number">2</span> <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>grid5 <span class="token operator">></span> a <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">/</span> <span class="token number">5</span> <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token decorator annotation punctuation">@media</span> screen <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 1024px<span class="token punctuation">)</span> <span class="token punctuation">{</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>grid5 <span class="token operator">></span> a <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">/</span> <span class="token number">4</span> <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token decorator annotation punctuation">@media</span> screen <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 768px<span class="token punctuation">)</span> <span class="token punctuation">{</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>grid5 <span class="token operator">></span> a <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">/</span> <span class="token number">3</span> <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token decorator annotation punctuation">@media</span> screen <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 500px<span class="token punctuation">)</span> <span class="token punctuation">{</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>grid5 <span class="token operator">></span> a <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">/</span> <span class="token number">2</span> <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns a <span class="token punctuation">{</span>
transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token operator">-</span>moz<span class="token operator">-</span>transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token operator">-</span>webkit<span class="token operator">-</span>transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token operator">-</span>o<span class="token operator">-</span>transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
margin<span class="token punctuation">:</span> 8px<span class="token punctuation">;</span>
margin<span class="token operator">-</span>top<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">1.25</span> <span class="token operator">*</span> 16px <span class="token operator">+</span> 32px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token builtin">min</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 120px<span class="token punctuation">;</span>
font<span class="token operator">-</span>weight<span class="token punctuation">:</span> bold<span class="token punctuation">;</span>
display<span class="token punctuation">:</span> flex<span class="token punctuation">;</span>
justify<span class="token operator">-</span>content<span class="token punctuation">:</span> flex<span class="token operator">-</span>start<span class="token punctuation">;</span>
align<span class="token operator">-</span>content<span class="token punctuation">:</span> center<span class="token punctuation">;</span>
align<span class="token operator">-</span>items<span class="token punctuation">:</span> center<span class="token punctuation">;</span>
flex<span class="token operator">-</span>direction<span class="token punctuation">:</span> column<span class="token punctuation">;</span>
padding<span class="token punctuation">:</span> 8px<span class="token punctuation">;</span>
text<span class="token operator">-</span>align<span class="token punctuation">:</span> center<span class="token punctuation">;</span>
background<span class="token punctuation">:</span> <span class="token comment">#f6f6f6;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> 4px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns a <span class="token operator">></span> img<span class="token punctuation">:</span>first<span class="token operator">-</span>child<span class="token punctuation">,</span>
div<span class="token punctuation">.</span>btns a <span class="token operator">></span> i<span class="token punctuation">:</span>first<span class="token operator">-</span>child <span class="token punctuation">{</span>
transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token operator">-</span>moz<span class="token operator">-</span>transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token operator">-</span>webkit<span class="token operator">-</span>transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token operator">-</span>o<span class="token operator">-</span>transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 64px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> 64px<span class="token punctuation">;</span>
box<span class="token operator">-</span>shadow<span class="token punctuation">:</span> <span class="token number">0</span> 1px 2px <span class="token number">0</span> rgba<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0.1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
margin<span class="token punctuation">:</span> 16px 8px 4px 8px<span class="token punctuation">;</span>
margin<span class="token operator">-</span>top<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1.25</span> <span class="token operator">*</span> 16px <span class="token operator">-</span> 32px<span class="token punctuation">)</span><span class="token punctuation">;</span>
border<span class="token punctuation">:</span> 2px solid <span class="token comment">#fff;</span>
background<span class="token punctuation">:</span> <span class="token comment">#fff;</span>
line<span class="token operator">-</span>height<span class="token punctuation">:</span> 60px<span class="token punctuation">;</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span> 28px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns a <span class="token operator">></span> img<span class="token punctuation">:</span>first<span class="token operator">-</span>child<span class="token punctuation">.</span>auto<span class="token punctuation">,</span>
div<span class="token punctuation">.</span>btns a <span class="token operator">></span> i<span class="token punctuation">:</span>first<span class="token operator">-</span>child<span class="token punctuation">.</span>auto <span class="token punctuation">{</span>
width<span class="token punctuation">:</span> auto<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns a <span class="token operator">></span> i<span class="token punctuation">:</span>first<span class="token operator">-</span>child <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#fff;</span>
background<span class="token punctuation">:</span> <span class="token comment">#2196f3;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns a p<span class="token punctuation">,</span>
div<span class="token punctuation">.</span>btns a b <span class="token punctuation">{</span>
margin<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">.</span>25em<span class="token punctuation">;</span>
font<span class="token operator">-</span>weight<span class="token punctuation">:</span> normal<span class="token punctuation">;</span>
line<span class="token operator">-</span>height<span class="token punctuation">:</span> <span class="token number">1.25</span><span class="token punctuation">;</span>
word<span class="token operator">-</span>wrap<span class="token punctuation">:</span> <span class="token keyword">break</span><span class="token operator">-</span>word<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns a b <span class="token punctuation">{</span>
font<span class="token operator">-</span>weight<span class="token punctuation">:</span> bold<span class="token punctuation">;</span>
line<span class="token operator">-</span>height<span class="token punctuation">:</span> <span class="token number">1.3</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns a img <span class="token punctuation">{</span>
margin<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">.</span>4em auto<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns a<span class="token punctuation">:</span><span class="token keyword">not</span><span class="token punctuation">(</span><span class="token punctuation">[</span>href<span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
cursor<span class="token punctuation">:</span> default<span class="token punctuation">;</span>
color<span class="token punctuation">:</span> inherit<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns a<span class="token punctuation">[</span>href<span class="token punctuation">]</span><span class="token punctuation">:</span>hover <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">87</span><span class="token punctuation">,</span> <span class="token number">34</span><span class="token punctuation">,</span> <span class="token number">0.15</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns a<span class="token punctuation">[</span>href<span class="token punctuation">]</span><span class="token punctuation">:</span>hover<span class="token punctuation">,</span>
div<span class="token punctuation">.</span>btns a<span class="token punctuation">[</span>href<span class="token punctuation">]</span><span class="token punctuation">:</span>hover b <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#ff5722;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns a<span class="token punctuation">[</span>href<span class="token punctuation">]</span><span class="token punctuation">:</span>hover <span class="token operator">></span> img<span class="token punctuation">:</span>first<span class="token operator">-</span>child<span class="token punctuation">,</span>
div<span class="token punctuation">.</span>btns a<span class="token punctuation">[</span>href<span class="token punctuation">]</span><span class="token punctuation">:</span>hover <span class="token operator">></span> i<span class="token punctuation">:</span>first<span class="token operator">-</span>child <span class="token punctuation">{</span>
transform<span class="token punctuation">:</span> scale<span class="token punctuation">(</span><span class="token number">1.1</span><span class="token punctuation">)</span> translateY<span class="token punctuation">(</span><span class="token operator">-</span>8px<span class="token punctuation">)</span><span class="token punctuation">;</span>
box<span class="token operator">-</span>shadow<span class="token punctuation">:</span> <span class="token number">0</span> 4px 8px <span class="token number">0</span> rgba<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0.1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns a<span class="token punctuation">[</span>href<span class="token punctuation">]</span><span class="token punctuation">:</span>hover <span class="token operator">></span> i<span class="token punctuation">:</span>first<span class="token operator">-</span>child <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#ff5722;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>circle a <span class="token operator">></span> img<span class="token punctuation">:</span>first<span class="token operator">-</span>child<span class="token punctuation">,</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>circle a <span class="token operator">></span> i<span class="token punctuation">:</span>first<span class="token operator">-</span>child <span class="token punctuation">{</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> 32px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>rounded a <span class="token operator">></span> img<span class="token punctuation">:</span>first<span class="token operator">-</span>child<span class="token punctuation">,</span>
div<span class="token punctuation">.</span>btns<span class="token punctuation">.</span>rounded a <span class="token operator">></span> i<span class="token punctuation">:</span>first<span class="token operator">-</span>child <span class="token punctuation">{</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> 16px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">[</span>data<span class="token operator">-</span>theme<span class="token operator">=</span><span class="token string">"dark"</span><span class="token punctuation">]</span> <span class="token punctuation">.</span>checkbox <span class="token punctuation">{</span>
<span class="token builtin">filter</span><span class="token punctuation">:</span> brightness<span class="token punctuation">(</span><span class="token number">0.7</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox <span class="token punctuation">{</span>
display<span class="token punctuation">:</span> flex<span class="token punctuation">;</span>
align<span class="token operator">-</span>items<span class="token punctuation">:</span> center<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox <span class="token builtin">input</span> <span class="token punctuation">{</span>
<span class="token operator">-</span>webkit<span class="token operator">-</span>appearance<span class="token punctuation">:</span> none<span class="token punctuation">;</span>
<span class="token operator">-</span>moz<span class="token operator">-</span>appearance<span class="token punctuation">:</span> none<span class="token punctuation">;</span>
<span class="token operator">-</span>ms<span class="token operator">-</span>appearance<span class="token punctuation">:</span> none<span class="token punctuation">;</span>
<span class="token operator">-</span>o<span class="token operator">-</span>appearance<span class="token punctuation">:</span> none<span class="token punctuation">;</span>
appearance<span class="token punctuation">:</span> none<span class="token punctuation">;</span>
position<span class="token punctuation">:</span> relative<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 16px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> 16px<span class="token punctuation">;</span>
transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>15s ease<span class="token operator">-</span>out 0s<span class="token punctuation">;</span>
cursor<span class="token punctuation">:</span> pointer<span class="token punctuation">;</span>
display<span class="token punctuation">:</span> inline<span class="token operator">-</span>block<span class="token punctuation">;</span>
outline<span class="token punctuation">:</span> none<span class="token punctuation">;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
flex<span class="token operator">-</span>shrink<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
margin<span class="token operator">-</span>right<span class="token punctuation">:</span> 8px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>before<span class="token punctuation">,</span>
<span class="token punctuation">.</span>checkbox <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>after <span class="token punctuation">{</span>
position<span class="token punctuation">:</span> absolute<span class="token punctuation">;</span>
content<span class="token punctuation">:</span> <span class="token string">""</span><span class="token punctuation">;</span>
background<span class="token punctuation">:</span> <span class="token comment">#fff;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
left<span class="token punctuation">:</span> 1px<span class="token punctuation">;</span>
top<span class="token punctuation">:</span> 5px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>2s ease<span class="token operator">-</span><span class="token keyword">in</span><span class="token punctuation">;</span>
transform<span class="token punctuation">:</span> rotate<span class="token punctuation">(</span>45deg<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">-</span>webkit<span class="token operator">-</span>transform<span class="token punctuation">:</span> rotate<span class="token punctuation">(</span>45deg<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">-</span>moz<span class="token operator">-</span>transform<span class="token punctuation">:</span> rotate<span class="token punctuation">(</span>45deg<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">-</span>ms<span class="token operator">-</span>transform<span class="token punctuation">:</span> rotate<span class="token punctuation">(</span>45deg<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">-</span>o<span class="token operator">-</span>transform<span class="token punctuation">:</span> rotate<span class="token punctuation">(</span>45deg<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>after <span class="token punctuation">{</span>
right<span class="token punctuation">:</span> 7px<span class="token punctuation">;</span>
bottom<span class="token punctuation">:</span> 3px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>2s ease<span class="token operator">-</span>out<span class="token punctuation">;</span>
transform<span class="token punctuation">:</span> rotate<span class="token punctuation">(</span>40deg<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">-</span>webkit<span class="token operator">-</span>transform<span class="token punctuation">:</span> rotate<span class="token punctuation">(</span>40deg<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">-</span>moz<span class="token operator">-</span>transform<span class="token punctuation">:</span> rotate<span class="token punctuation">(</span>40deg<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">-</span>ms<span class="token operator">-</span>transform<span class="token punctuation">:</span> rotate<span class="token punctuation">(</span>40deg<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">-</span>o<span class="token operator">-</span>transform<span class="token punctuation">:</span> rotate<span class="token punctuation">(</span>40deg<span class="token punctuation">)</span><span class="token punctuation">;</span>
transition<span class="token operator">-</span>delay<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">.</span>25s<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked<span class="token punctuation">:</span>before <span class="token punctuation">{</span>
left<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
top<span class="token punctuation">:</span> 7px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> 6px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked<span class="token punctuation">:</span>after <span class="token punctuation">{</span>
right<span class="token punctuation">:</span> 3px<span class="token punctuation">;</span>
bottom<span class="token punctuation">:</span> 1px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 10px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>minus <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
transform<span class="token punctuation">:</span> rotate<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
left<span class="token punctuation">:</span> 1px<span class="token punctuation">;</span>
top<span class="token punctuation">:</span> 5px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>minus <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>after <span class="token punctuation">{</span>
transform<span class="token punctuation">:</span> rotate<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
left<span class="token punctuation">:</span> 1px<span class="token punctuation">;</span>
top<span class="token punctuation">:</span> 5px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>minus <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked<span class="token punctuation">:</span>before <span class="token punctuation">{</span>
left<span class="token punctuation">:</span> 1px<span class="token punctuation">;</span>
top<span class="token punctuation">:</span> 5px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> 10px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>minus <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked<span class="token punctuation">:</span>after <span class="token punctuation">{</span>
left<span class="token punctuation">:</span> 1px<span class="token punctuation">;</span>
top<span class="token punctuation">:</span> 5px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> 10px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>plus <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
transform<span class="token punctuation">:</span> rotate<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
left<span class="token punctuation">:</span> 1px<span class="token punctuation">;</span>
top<span class="token punctuation">:</span> 5px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>plus <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>after <span class="token punctuation">{</span>
transform<span class="token punctuation">:</span> rotate<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
left<span class="token punctuation">:</span> 5px<span class="token punctuation">;</span>
top<span class="token punctuation">:</span> 1px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>plus <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked<span class="token punctuation">:</span>before <span class="token punctuation">{</span>
left<span class="token punctuation">:</span> 1px<span class="token punctuation">;</span>
top<span class="token punctuation">:</span> 5px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> 10px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>plus <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked<span class="token punctuation">:</span>after <span class="token punctuation">{</span>
left<span class="token punctuation">:</span> 5px<span class="token punctuation">;</span>
top<span class="token punctuation">:</span> 1px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 10px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>times <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
transform<span class="token punctuation">:</span> rotate<span class="token punctuation">(</span>45deg<span class="token punctuation">)</span><span class="token punctuation">;</span>
left<span class="token punctuation">:</span> 3px<span class="token punctuation">;</span>
top<span class="token punctuation">:</span> 1px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>times <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>after <span class="token punctuation">{</span>
transform<span class="token punctuation">:</span> rotate<span class="token punctuation">(</span>135deg<span class="token punctuation">)</span><span class="token punctuation">;</span>
right<span class="token punctuation">:</span> 3px<span class="token punctuation">;</span>
top<span class="token punctuation">:</span> 1px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>times <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked<span class="token punctuation">:</span>before <span class="token punctuation">{</span>
left<span class="token punctuation">:</span> 1px<span class="token punctuation">;</span>
top<span class="token punctuation">:</span> 5px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> 10px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>times <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked<span class="token punctuation">:</span>after <span class="token punctuation">{</span>
right<span class="token punctuation">:</span> 1px<span class="token punctuation">;</span>
top<span class="token punctuation">:</span> 5px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> 10px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"radio"</span><span class="token punctuation">]</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> <span class="token number">50</span><span class="token operator">%</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"radio"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">""</span><span class="token punctuation">;</span>
display<span class="token punctuation">:</span> block<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> 8px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 8px<span class="token punctuation">;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> <span class="token number">50</span><span class="token operator">%</span><span class="token punctuation">;</span>
margin<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
transform<span class="token punctuation">:</span> scale<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>25s ease<span class="token operator">-</span>out<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"radio"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked<span class="token punctuation">:</span>before <span class="token punctuation">{</span>
transform<span class="token punctuation">:</span> scale<span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox <span class="token builtin">input</span> <span class="token punctuation">{</span>
border<span class="token punctuation">:</span> 2px solid <span class="token comment">#2196f3;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#2196f3;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"radio"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked<span class="token punctuation">:</span>before <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#2196f3;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>red <span class="token builtin">input</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#fe5f58;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>red <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#fe5f58;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>red <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"radio"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked<span class="token punctuation">:</span>before <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#fe5f58;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>green <span class="token builtin">input</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#3dc550;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>green <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#3dc550;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>green <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"radio"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked<span class="token punctuation">:</span>before <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#3dc550;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>yellow <span class="token builtin">input</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#ffbd2b;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>yellow <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#ffbd2b;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>yellow <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"radio"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked<span class="token punctuation">:</span>before <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#ffbd2b;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>cyan <span class="token builtin">input</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#1bcdfc;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>cyan <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#1bcdfc;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>cyan <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"radio"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked<span class="token punctuation">:</span>before <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#1bcdfc;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>blue <span class="token builtin">input</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#2196f3;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>blue <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"checkbox"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#2196f3;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox<span class="token punctuation">.</span>blue <span class="token builtin">input</span><span class="token punctuation">[</span><span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"radio"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>checked<span class="token punctuation">:</span>before <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#2196f3;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>checkbox p <span class="token punctuation">{</span>
display<span class="token punctuation">:</span> inline<span class="token operator">-</span>block<span class="token punctuation">;</span>
margin<span class="token operator">-</span>top<span class="token punctuation">:</span> 2px !important<span class="token punctuation">;</span>
margin<span class="token operator">-</span>bottom<span class="token punctuation">:</span> <span class="token number">0</span> !important<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">[</span>data<span class="token operator">-</span>theme<span class="token operator">=</span><span class="token string">"dark"</span><span class="token punctuation">]</span> details <span class="token punctuation">{</span>
<span class="token builtin">filter</span><span class="token punctuation">:</span> brightness<span class="token punctuation">(</span><span class="token number">0.7</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details <span class="token punctuation">{</span>
display<span class="token punctuation">:</span> block<span class="token punctuation">;</span>
padding<span class="token punctuation">:</span> 16px<span class="token punctuation">;</span>
margin<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">.</span>5rem <span class="token number">0</span><span class="token punctuation">;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> 4px<span class="token punctuation">;</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">.</span>7375rem<span class="token punctuation">;</span>
transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token operator">-</span>moz<span class="token operator">-</span>transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token operator">-</span>webkit<span class="token operator">-</span>transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token operator">-</span>o<span class="token operator">-</span>transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
border<span class="token punctuation">:</span> 1px solid <span class="token comment">#f6f6f6;</span>
<span class="token punctuation">}</span>
details summary <span class="token punctuation">{</span>
cursor<span class="token punctuation">:</span> pointer<span class="token punctuation">;</span>
padding<span class="token punctuation">:</span> 16px<span class="token punctuation">;</span>
margin<span class="token punctuation">:</span> <span class="token operator">-</span>16px<span class="token punctuation">;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> 4px<span class="token punctuation">;</span>
color<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">85</span><span class="token punctuation">,</span> <span class="token number">85</span><span class="token punctuation">,</span> <span class="token number">85</span><span class="token punctuation">,</span> <span class="token number">0.7</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">.</span>7375rem<span class="token punctuation">;</span>
font<span class="token operator">-</span>weight<span class="token punctuation">:</span> bold<span class="token punctuation">;</span>
position<span class="token punctuation">:</span> relative<span class="token punctuation">;</span>
line<span class="token operator">-</span>height<span class="token punctuation">:</span> normal<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details summary <span class="token operator">></span> p<span class="token punctuation">,</span>
details summary <span class="token operator">></span> h1<span class="token punctuation">,</span>
details summary <span class="token operator">></span> h2<span class="token punctuation">,</span>
details summary <span class="token operator">></span> h3<span class="token punctuation">,</span>
details summary <span class="token operator">></span> h4<span class="token punctuation">,</span>
details summary <span class="token operator">></span> h5<span class="token punctuation">,</span>
details summary <span class="token operator">></span> h6 <span class="token punctuation">{</span>
display<span class="token punctuation">:</span> inline<span class="token punctuation">;</span>
border<span class="token operator">-</span>bottom<span class="token punctuation">:</span> none !important<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details summary<span class="token punctuation">:</span>hover <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#555;</span>
<span class="token punctuation">}</span>
details summary<span class="token punctuation">:</span>hover<span class="token punctuation">:</span>after <span class="token punctuation">{</span>
position<span class="token punctuation">:</span> absolute<span class="token punctuation">;</span>
content<span class="token punctuation">:</span> <span class="token string">"+"</span><span class="token punctuation">;</span>
text<span class="token operator">-</span>align<span class="token punctuation">:</span> center<span class="token punctuation">;</span>
top<span class="token punctuation">:</span> <span class="token number">50</span><span class="token operator">%</span><span class="token punctuation">;</span>
transform<span class="token punctuation">:</span> translateY<span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">50</span><span class="token operator">%</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
right<span class="token punctuation">:</span> 16px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details <span class="token operator">></span> summary <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#f6f6f6;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span>blue<span class="token punctuation">]</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#e8f4fd;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span>blue<span class="token punctuation">]</span> <span class="token operator">></span> summary <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#e8f4fd;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span>cyan<span class="token punctuation">]</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#e8fafe;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span>cyan<span class="token punctuation">]</span> <span class="token operator">></span> summary <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#e8fafe;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span>green<span class="token punctuation">]</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#ebf9ed;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span>green<span class="token punctuation">]</span> <span class="token operator">></span> summary <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#ebf9ed;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span>yellow<span class="token punctuation">]</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#fff8e9;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span>yellow<span class="token punctuation">]</span> <span class="token operator">></span> summary <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#fff8e9;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span>red<span class="token punctuation">]</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#feefee;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span>red<span class="token punctuation">]</span> <span class="token operator">></span> summary <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#feefee;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span><span class="token builtin">open</span><span class="token punctuation">]</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">85</span><span class="token punctuation">,</span> <span class="token number">85</span><span class="token punctuation">,</span> <span class="token number">85</span><span class="token punctuation">,</span> <span class="token number">0.2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span><span class="token builtin">open</span><span class="token punctuation">]</span> <span class="token operator">></span> summary <span class="token punctuation">{</span>
border<span class="token operator">-</span>bottom<span class="token punctuation">:</span> 1px solid rgba<span class="token punctuation">(</span><span class="token number">85</span><span class="token punctuation">,</span> <span class="token number">85</span><span class="token punctuation">,</span> <span class="token number">85</span><span class="token punctuation">,</span> <span class="token number">0.2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
border<span class="token operator">-</span>bottom<span class="token operator">-</span>left<span class="token operator">-</span>radius<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
border<span class="token operator">-</span>bottom<span class="token operator">-</span>right<span class="token operator">-</span>radius<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span><span class="token builtin">open</span><span class="token punctuation">]</span><span class="token punctuation">[</span>blue<span class="token punctuation">]</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">33</span><span class="token punctuation">,</span> <span class="token number">150</span><span class="token punctuation">,</span> <span class="token number">243</span><span class="token punctuation">,</span> <span class="token number">0.3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span><span class="token builtin">open</span><span class="token punctuation">]</span><span class="token punctuation">[</span>blue<span class="token punctuation">]</span> <span class="token operator">></span> summary <span class="token punctuation">{</span>
border<span class="token operator">-</span>bottom<span class="token operator">-</span>color<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">33</span><span class="token punctuation">,</span> <span class="token number">150</span><span class="token punctuation">,</span> <span class="token number">243</span><span class="token punctuation">,</span> <span class="token number">0.3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span><span class="token builtin">open</span><span class="token punctuation">]</span><span class="token punctuation">[</span>cyan<span class="token punctuation">]</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">27</span><span class="token punctuation">,</span> <span class="token number">205</span><span class="token punctuation">,</span> <span class="token number">252</span><span class="token punctuation">,</span> <span class="token number">0.3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span><span class="token builtin">open</span><span class="token punctuation">]</span><span class="token punctuation">[</span>cyan<span class="token punctuation">]</span> <span class="token operator">></span> summary <span class="token punctuation">{</span>
border<span class="token operator">-</span>bottom<span class="token operator">-</span>color<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">27</span><span class="token punctuation">,</span> <span class="token number">205</span><span class="token punctuation">,</span> <span class="token number">252</span><span class="token punctuation">,</span> <span class="token number">0.3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span><span class="token builtin">open</span><span class="token punctuation">]</span><span class="token punctuation">[</span>green<span class="token punctuation">]</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">61</span><span class="token punctuation">,</span> <span class="token number">197</span><span class="token punctuation">,</span> <span class="token number">80</span><span class="token punctuation">,</span> <span class="token number">0.3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span><span class="token builtin">open</span><span class="token punctuation">]</span><span class="token punctuation">[</span>green<span class="token punctuation">]</span> <span class="token operator">></span> summary <span class="token punctuation">{</span>
border<span class="token operator">-</span>bottom<span class="token operator">-</span>color<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">61</span><span class="token punctuation">,</span> <span class="token number">197</span><span class="token punctuation">,</span> <span class="token number">80</span><span class="token punctuation">,</span> <span class="token number">0.3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span><span class="token builtin">open</span><span class="token punctuation">]</span><span class="token punctuation">[</span>yellow<span class="token punctuation">]</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">189</span><span class="token punctuation">,</span> <span class="token number">43</span><span class="token punctuation">,</span> <span class="token number">0.3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span><span class="token builtin">open</span><span class="token punctuation">]</span><span class="token punctuation">[</span>yellow<span class="token punctuation">]</span> <span class="token operator">></span> summary <span class="token punctuation">{</span>
border<span class="token operator">-</span>bottom<span class="token operator">-</span>color<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">189</span><span class="token punctuation">,</span> <span class="token number">43</span><span class="token punctuation">,</span> <span class="token number">0.3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span><span class="token builtin">open</span><span class="token punctuation">]</span><span class="token punctuation">[</span>red<span class="token punctuation">]</span> <span class="token punctuation">{</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">254</span><span class="token punctuation">,</span> <span class="token number">95</span><span class="token punctuation">,</span> <span class="token number">88</span><span class="token punctuation">,</span> <span class="token number">0.3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span><span class="token builtin">open</span><span class="token punctuation">]</span><span class="token punctuation">[</span>red<span class="token punctuation">]</span> <span class="token operator">></span> summary <span class="token punctuation">{</span>
border<span class="token operator">-</span>bottom<span class="token operator">-</span>color<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">254</span><span class="token punctuation">,</span> <span class="token number">95</span><span class="token punctuation">,</span> <span class="token number">88</span><span class="token punctuation">,</span> <span class="token number">0.3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span><span class="token builtin">open</span><span class="token punctuation">]</span> <span class="token operator">></span> summary <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#555;</span>
margin<span class="token operator">-</span>bottom<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span><span class="token builtin">open</span><span class="token punctuation">]</span> <span class="token operator">></span> summary<span class="token punctuation">:</span>hover<span class="token punctuation">:</span>after <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">"-"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span><span class="token builtin">open</span><span class="token punctuation">]</span> <span class="token operator">></span> div<span class="token punctuation">.</span>content <span class="token punctuation">{</span>
padding<span class="token punctuation">:</span> 16px<span class="token punctuation">;</span>
margin<span class="token punctuation">:</span> <span class="token operator">-</span>16px<span class="token punctuation">;</span>
margin<span class="token operator">-</span>top<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
details<span class="token punctuation">[</span><span class="token builtin">open</span><span class="token punctuation">]</span> <span class="token operator">></span> div<span class="token punctuation">.</span>content p <span class="token operator">></span> a<span class="token punctuation">:</span>hover <span class="token punctuation">{</span>
text<span class="token operator">-</span>decoration<span class="token punctuation">:</span> underline<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">[</span>data<span class="token operator">-</span>theme<span class="token operator">=</span><span class="token string">"dark"</span><span class="token punctuation">]</span> span<span class="token punctuation">.</span>p <span class="token punctuation">{</span>
<span class="token builtin">filter</span><span class="token punctuation">:</span> brightness<span class="token punctuation">(</span><span class="token number">0.7</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>subtitle <span class="token punctuation">{</span>
font<span class="token operator">-</span>weight<span class="token punctuation">:</span> bold<span class="token punctuation">;</span>
color<span class="token punctuation">:</span> <span class="token comment">#2196f3;</span>
padding<span class="token operator">-</span>top<span class="token punctuation">:</span> 1rem<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>subtitle<span class="token punctuation">:</span>first<span class="token operator">-</span>child <span class="token punctuation">{</span>
padding<span class="token operator">-</span>top<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">.</span>5rem<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>code<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>code <span class="token punctuation">{</span>
font<span class="token operator">-</span>family<span class="token punctuation">:</span> Menlo<span class="token punctuation">,</span> Monaco<span class="token punctuation">,</span> monospace<span class="token punctuation">,</span> courier<span class="token punctuation">,</span> sans<span class="token operator">-</span>serif<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>left<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>left <span class="token punctuation">{</span>
display<span class="token punctuation">:</span> block<span class="token punctuation">;</span>
text<span class="token operator">-</span>align<span class="token punctuation">:</span> left<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>center<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>center <span class="token punctuation">{</span>
display<span class="token punctuation">:</span> block<span class="token punctuation">;</span>
text<span class="token operator">-</span>align<span class="token punctuation">:</span> center<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>right<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>right <span class="token punctuation">{</span>
display<span class="token punctuation">:</span> block<span class="token punctuation">;</span>
text<span class="token operator">-</span>align<span class="token punctuation">:</span> right<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>small<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>small <span class="token punctuation">{</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">.</span>575rem<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>large<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>large <span class="token punctuation">{</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span> 2rem<span class="token punctuation">;</span>
line<span class="token operator">-</span>height<span class="token punctuation">:</span> <span class="token number">1.4</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>huge<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>huge <span class="token punctuation">{</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span> 4rem<span class="token punctuation">;</span>
line<span class="token operator">-</span>height<span class="token punctuation">:</span> <span class="token number">1.4</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>ultra<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>ultra <span class="token punctuation">{</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span> 6rem<span class="token punctuation">;</span>
line<span class="token operator">-</span>height<span class="token punctuation">:</span> <span class="token number">1.4</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>small<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>small<span class="token punctuation">,</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>large<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>large<span class="token punctuation">,</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>huge<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>huge<span class="token punctuation">,</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>ultra<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>ultra <span class="token punctuation">{</span>
font<span class="token operator">-</span>family<span class="token punctuation">:</span> UbuntuMono<span class="token punctuation">,</span> <span class="token string">"PingFang SC"</span><span class="token punctuation">,</span> <span class="token string">"Microsoft YaHei"</span><span class="token punctuation">,</span> Helvetica<span class="token punctuation">,</span> Arial<span class="token punctuation">,</span>
Menlo<span class="token punctuation">,</span> Monaco<span class="token punctuation">,</span> monospace<span class="token punctuation">,</span> sans<span class="token operator">-</span>serif<span class="token punctuation">;</span>
margin<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
padding<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>bold<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>bold <span class="token punctuation">{</span>
font<span class="token operator">-</span>weight<span class="token punctuation">:</span> bold<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>h1<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>h1 <span class="token punctuation">{</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">.</span>625rem<span class="token punctuation">;</span>
color<span class="token punctuation">:</span> <span class="token comment">#555;</span>
padding<span class="token operator">-</span>top<span class="token punctuation">:</span> 1rem<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>h2<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>h2 <span class="token punctuation">{</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">.</span>375rem<span class="token punctuation">;</span>
color<span class="token punctuation">:</span> var<span class="token punctuation">(</span><span class="token operator">-</span><span class="token operator">-</span>font<span class="token operator">-</span>color<span class="token punctuation">)</span><span class="token punctuation">;</span>
padding<span class="token operator">-</span>top<span class="token punctuation">:</span> 1rem<span class="token punctuation">;</span>
border<span class="token operator">-</span>bottom<span class="token punctuation">:</span> 1px solid var<span class="token punctuation">(</span><span class="token operator">-</span><span class="token operator">-</span>hr<span class="token operator">-</span>border<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>h3<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>h3 <span class="token punctuation">{</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">.</span>25rem<span class="token punctuation">;</span>
color<span class="token punctuation">:</span> <span class="token comment">#2196f3;</span>
padding<span class="token operator">-</span>top<span class="token punctuation">:</span> 1rem<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>h4<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>h4 <span class="token punctuation">{</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">.</span>125rem<span class="token punctuation">;</span>
color<span class="token punctuation">:</span> <span class="token comment">#555;</span>
padding<span class="token operator">-</span>top<span class="token punctuation">:</span> 1rem<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>red<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>red <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#fe5f58;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>yellow<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>yellow <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#ffbd2b;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>green<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>green <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#3dc550;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>cyan<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>cyan <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#1bcdfc;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>blue<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>blue <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#2196f3;</span>
<span class="token punctuation">}</span>
span<span class="token punctuation">.</span>p<span class="token punctuation">.</span>gray<span class="token punctuation">,</span>
p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>gray <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#666;</span>
<span class="token punctuation">}</span>
<span class="token operator">/</span><span class="token operator">*</span>tag end<span class="token operator">*</span><span class="token operator">/</span>
<span class="token operator">/</span><span class="token operator">*</span>note标签 https<span class="token punctuation">:</span><span class="token operator">//</span>lovelijunyi<span class="token punctuation">.</span>gitee<span class="token punctuation">.</span>io<span class="token operator">/</span>posts<span class="token operator">/</span>c898<span class="token punctuation">.</span>html<span class="token operator">*</span><span class="token operator">/</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>red<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">"\f054"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>quote <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#e8f4fd;</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#2196f3;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>quote<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#2196f3;</span>
content<span class="token punctuation">:</span> <span class="token string">"\f10d"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>radiation<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">"\f7b9"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>bug<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">"\f188"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>idea<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">"\f0eb"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>link<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">"\f0c1"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>paperclip<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">"\f0c6"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>todo<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">"\f0ae"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>message<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">"\f4ad"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>guide<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">"\f277"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>download<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">"\f019"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>up<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">"\f102"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>undo<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">"\f2ea"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>play<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">"\f144"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>message<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">'\f4ad'</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>clear <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> none<span class="token punctuation">;</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> none<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>light <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#f6f6f6;</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#aaa;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>light<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#aaa;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>gray <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#f6f6f6;</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#767676;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>gray<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#767676;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>red <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#feefee;</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#fe5f58;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>red<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#fe5f58;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>yellow <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#fff8e9;</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#ffbd2b;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>yellow<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#ffbd2b;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>green <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#ebf9ed;</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#3dc550;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>green<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#3dc550;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>cyan<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#1bcdfc;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>blue<span class="token punctuation">:</span><span class="token punctuation">:</span>before <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#2196f3;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>note<span class="token punctuation">.</span>blue <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#e8f4fd;</span>
border<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#2196f3;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">[</span>data<span class="token operator">-</span>theme<span class="token operator">=</span><span class="token string">"dark"</span><span class="token punctuation">]</span> <span class="token punctuation">.</span>note p<span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#000;</span>
<span class="token punctuation">}</span>
<span class="token operator">/</span><span class="token operator">*</span>note标签结束<span class="token operator">*</span><span class="token operator">/</span>
<span class="token operator">/</span><span class="token operator">*</span> 标签显影 <span class="token operator">*</span><span class="token operator">/</span>
<span class="token comment">#article-container psw:hover {</span>
color<span class="token punctuation">:</span> <span class="token comment">#333;</span>
background<span class="token punctuation">:</span> none<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#article-container psw {</span>
color<span class="token punctuation">:</span> transparent<span class="token punctuation">;</span>
background<span class="token punctuation">:</span> <span class="token comment">#666;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token operator">-</span>moz<span class="token operator">-</span>transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token operator">-</span>webkit<span class="token operator">-</span>transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token operator">-</span>o<span class="token operator">-</span>transition<span class="token punctuation">:</span> <span class="token builtin">all</span> <span class="token number">0</span><span class="token punctuation">.</span>28s ease<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">[</span>data<span class="token operator">-</span>theme<span class="token operator">=</span><span class="token string">"dark"</span><span class="token punctuation">]</span> <span class="token comment">#article-container psw:hover {</span>
color<span class="token punctuation">:</span> <span class="token comment">#fff;</span>
<span class="token builtin">filter</span><span class="token punctuation">:</span> brightness<span class="token punctuation">(</span><span class="token number">0.7</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator">/</span><span class="token operator">*</span> 标签显影END <span class="token operator">*</span><span class="token operator">/</span>
<span class="token operator">/</span><span class="token operator">*</span> 时间线 <span class="token operator">*</span><span class="token operator">/</span>
div<span class="token punctuation">.</span>timenode <span class="token punctuation">{</span>
position<span class="token punctuation">:</span> relative<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode<span class="token punctuation">:</span>before<span class="token punctuation">,</span>
div<span class="token punctuation">.</span>timenode<span class="token punctuation">:</span>after <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">""</span><span class="token punctuation">;</span>
z<span class="token operator">-</span>index<span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">;</span>
position<span class="token punctuation">:</span> absolute<span class="token punctuation">;</span>
background<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">68</span><span class="token punctuation">,</span> <span class="token number">215</span><span class="token punctuation">,</span> <span class="token number">182</span><span class="token punctuation">,</span> <span class="token number">0.5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
width<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
left<span class="token punctuation">:</span> 7px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode<span class="token punctuation">:</span>before <span class="token punctuation">{</span>
top<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 6px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode<span class="token punctuation">:</span>after <span class="token punctuation">{</span>
top<span class="token punctuation">:</span> 26px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">-</span> 26px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode<span class="token punctuation">:</span>last<span class="token operator">-</span>child<span class="token punctuation">:</span>after <span class="token punctuation">{</span>
height<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">-</span> 26px <span class="token operator">-</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
border<span class="token operator">-</span>bottom<span class="token operator">-</span>left<span class="token operator">-</span>radius<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
border<span class="token operator">-</span>bottom<span class="token operator">-</span>right<span class="token operator">-</span>radius<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode <span class="token punctuation">.</span>meta<span class="token punctuation">,</span>
div<span class="token punctuation">.</span>timenode <span class="token punctuation">.</span>body <span class="token punctuation">{</span>
<span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> calc<span class="token punctuation">(</span><span class="token number">100</span><span class="token operator">%</span> <span class="token operator">-</span> 24px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode <span class="token punctuation">.</span>meta <span class="token punctuation">{</span>
position<span class="token punctuation">:</span> relative<span class="token punctuation">;</span>
color<span class="token punctuation">:</span> var<span class="token punctuation">(</span><span class="token operator">-</span><span class="token operator">-</span>tab<span class="token operator">-</span>botton<span class="token operator">-</span>color<span class="token punctuation">)</span><span class="token punctuation">;</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">.</span>375rem<span class="token punctuation">;</span>
line<span class="token operator">-</span>height<span class="token punctuation">:</span> 32px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 32px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode <span class="token punctuation">.</span>meta<span class="token punctuation">:</span>before<span class="token punctuation">,</span>
div<span class="token punctuation">.</span>timenode <span class="token punctuation">.</span>meta<span class="token punctuation">:</span>after <span class="token punctuation">{</span>
content<span class="token punctuation">:</span> <span class="token string">""</span><span class="token punctuation">;</span>
position<span class="token punctuation">:</span> absolute<span class="token punctuation">;</span>
top<span class="token punctuation">:</span> 8px<span class="token punctuation">;</span>
z<span class="token operator">-</span>index<span class="token punctuation">:</span> <span class="token number">2</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode <span class="token punctuation">.</span>meta<span class="token punctuation">:</span>before <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">68</span><span class="token punctuation">,</span> <span class="token number">215</span><span class="token punctuation">,</span> <span class="token number">182</span><span class="token punctuation">,</span> <span class="token number">0.5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
width<span class="token punctuation">:</span> 16px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 16px<span class="token punctuation">;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> 8px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode <span class="token punctuation">.</span>meta<span class="token punctuation">:</span>after <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#44d7b6;</span>
margin<span class="token operator">-</span>left<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
margin<span class="token operator">-</span>top<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
width<span class="token punctuation">:</span> 12px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 12px<span class="token punctuation">;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> 6px<span class="token punctuation">;</span>
transform<span class="token punctuation">:</span> scale<span class="token punctuation">(</span><span class="token number">0.5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode <span class="token punctuation">.</span>meta p <span class="token punctuation">{</span>
font<span class="token operator">-</span>weight<span class="token punctuation">:</span> bold !important<span class="token punctuation">;</span>
margin<span class="token punctuation">:</span> <span class="token number">0</span> <span class="token number">0</span> <span class="token number">0</span> 24px !important<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode <span class="token punctuation">.</span>body <span class="token punctuation">{</span>
margin<span class="token punctuation">:</span> 4px <span class="token number">0</span> 10px 24px<span class="token punctuation">;</span>
padding<span class="token punctuation">:</span> 10px<span class="token punctuation">;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> 12px<span class="token punctuation">;</span>
background<span class="token punctuation">:</span> <span class="token comment">#efeded;</span>
display<span class="token punctuation">:</span> inline<span class="token operator">-</span>block<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode <span class="token punctuation">.</span>body p<span class="token punctuation">:</span>first<span class="token operator">-</span>child <span class="token punctuation">{</span>
margin<span class="token operator">-</span>top<span class="token punctuation">:</span> <span class="token number">0</span> !important<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode <span class="token punctuation">.</span>body p<span class="token punctuation">:</span>last<span class="token operator">-</span>child <span class="token punctuation">{</span>
margin<span class="token operator">-</span>bottom<span class="token punctuation">:</span> <span class="token number">0</span> !important<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode <span class="token punctuation">.</span>body <span class="token punctuation">.</span>highlight <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#fff7ea;</span>
<span class="token builtin">filter</span><span class="token punctuation">:</span> grayscale<span class="token punctuation">(</span><span class="token number">0</span><span class="token operator">%</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode <span class="token punctuation">.</span>body <span class="token punctuation">.</span>highlight figcaption <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#ffeed2;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode <span class="token punctuation">.</span>body <span class="token punctuation">.</span>highlight <span class="token punctuation">.</span>gutter <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#ffedd0;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode<span class="token punctuation">:</span>hover <span class="token punctuation">.</span>meta <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#444;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode<span class="token punctuation">:</span>hover <span class="token punctuation">.</span>meta<span class="token punctuation">:</span>before <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">87</span><span class="token punctuation">,</span> <span class="token number">34</span><span class="token punctuation">,</span> <span class="token number">0.5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
div<span class="token punctuation">.</span>timenode<span class="token punctuation">:</span>hover <span class="token punctuation">.</span>meta<span class="token punctuation">:</span>after <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#ff5722;</span>
transform<span class="token punctuation">:</span> scale<span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">[</span>data<span class="token operator">-</span>theme<span class="token operator">=</span><span class="token string">"dark"</span><span class="token punctuation">]</span> div<span class="token punctuation">.</span>timenode <span class="token punctuation">.</span>body <span class="token punctuation">{</span>
background<span class="token punctuation">:</span> <span class="token comment">#2c2c2c;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">[</span>data<span class="token operator">-</span>theme<span class="token operator">=</span><span class="token string">"dark"</span><span class="token punctuation">]</span> div<span class="token punctuation">.</span>timenode<span class="token punctuation">:</span>hover <span class="token punctuation">.</span>meta <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> <span class="token comment">#ccd0d7;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">[</span>data<span class="token operator">-</span>theme<span class="token operator">=</span><span class="token string">"dark"</span><span class="token punctuation">]</span> div<span class="token punctuation">.</span>timenode <span class="token punctuation">.</span>meta <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">0.6</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">[</span>data<span class="token operator">-</span>theme<span class="token operator">=</span><span class="token string">"dark"</span><span class="token punctuation">]</span> div<span class="token punctuation">.</span>timeline p<span class="token punctuation">.</span>p<span class="token punctuation">.</span>h2 <span class="token punctuation">{</span>
color<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">0.6</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator">/</span><span class="token operator">*</span> link <span class="token operator">*</span><span class="token operator">/</span>
<span class="token comment">#article-container a.link-card {</span>
margin<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">.</span>25rem auto<span class="token punctuation">;</span>
background<span class="token punctuation">:</span> <span class="token comment">#f6f6f6;</span>
display<span class="token punctuation">:</span> inline<span class="token operator">-</span>flex<span class="token punctuation">;</span>
align<span class="token operator">-</span>items<span class="token punctuation">:</span> center<span class="token punctuation">;</span>
cursor<span class="token punctuation">:</span> pointer<span class="token punctuation">;</span>
text<span class="token operator">-</span>align<span class="token punctuation">:</span> center<span class="token punctuation">;</span>
<span class="token builtin">min</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 200px<span class="token punctuation">;</span>
<span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 361px<span class="token punctuation">;</span>
color<span class="token punctuation">:</span> <span class="token comment">#444;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> 12px<span class="token punctuation">;</span>
text<span class="token operator">-</span>decoration<span class="token punctuation">:</span> none<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token decorator annotation punctuation">@media</span> screen <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 425px<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token comment">#article-container a.link-card {</span>
<span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> <span class="token number">100</span><span class="token operator">%</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token decorator annotation punctuation">@media</span> screen <span class="token keyword">and</span> <span class="token punctuation">(</span><span class="token builtin">max</span><span class="token operator">-</span>width<span class="token punctuation">:</span> 375px<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token comment">#article-container a.link-card {</span>
width<span class="token punctuation">:</span> <span class="token number">100</span><span class="token operator">%</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token comment">#article-container a.link-card:hover {</span>
box<span class="token operator">-</span>shadow<span class="token punctuation">:</span> <span class="token number">0</span> 4px 8px <span class="token number">0</span> rgba<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0.1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#article-container a.link-card div.left,</span>
<span class="token comment">#article-container a.link-card div.right {</span>
pointer<span class="token operator">-</span>events<span class="token punctuation">:</span> none<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#article-container a.link-card div.left {</span>
width<span class="token punctuation">:</span> 48px<span class="token punctuation">;</span>
height<span class="token punctuation">:</span> 48px<span class="token punctuation">;</span>
margin<span class="token punctuation">:</span> 12px<span class="token punctuation">;</span>
overflow<span class="token punctuation">:</span> hidden<span class="token punctuation">;</span>
flex<span class="token operator">-</span>shrink<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
position<span class="token punctuation">:</span> relative<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#article-container a.link-card div.left i {</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span> 32px<span class="token punctuation">;</span>
line<span class="token operator">-</span>height<span class="token punctuation">:</span> 48px<span class="token punctuation">;</span>
margin<span class="token operator">-</span>left<span class="token punctuation">:</span> 4px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#article-container a.link-card div.left img {</span>
display<span class="token punctuation">:</span> block<span class="token punctuation">;</span>
position<span class="token punctuation">:</span> absolute<span class="token punctuation">;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> 8px <span class="token operator">/</span> <span class="token number">4</span><span class="token punctuation">;</span>
top<span class="token punctuation">:</span> <span class="token number">50</span><span class="token operator">%</span><span class="token punctuation">;</span>
left<span class="token punctuation">:</span> <span class="token number">50</span><span class="token operator">%</span><span class="token punctuation">;</span>
transform<span class="token punctuation">:</span> translate<span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">50</span><span class="token operator">%</span><span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">50</span><span class="token operator">%</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#article-container a.link-card div.right {</span>
overflow<span class="token punctuation">:</span> hidden<span class="token punctuation">;</span>
margin<span class="token operator">-</span>right<span class="token punctuation">:</span> 12px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#article-container a.link-card p {</span>
margin<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#article-container a.link-card p.text {</span>
font<span class="token operator">-</span>weight<span class="token punctuation">:</span> bold<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">#article-container a.link-card p.url {</span>
flex<span class="token operator">-</span>shrink<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
color<span class="token punctuation">:</span> rgba<span class="token punctuation">(</span><span class="token number">68</span><span class="token punctuation">,</span> <span class="token number">68</span><span class="token punctuation">,</span> <span class="token number">68</span><span class="token punctuation">,</span> <span class="token number">0.65</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
font<span class="token operator">-</span>size<span class="token punctuation">:</span> 13px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">[</span>data<span class="token operator">-</span>theme<span class="token operator">=</span><span class="token string">"dark"</span><span class="token punctuation">]</span> <span class="token comment">#article-container a.link-card img {</span>
<span class="token builtin">filter</span><span class="token punctuation">:</span> brightness<span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">[</span>data<span class="token operator">-</span>theme<span class="token operator">=</span><span class="token string">"dark"</span><span class="token punctuation">]</span> <span class="token comment">#article-container a.link-card {</span>
<span class="token builtin">filter</span><span class="token punctuation">:</span> brightness<span class="token punctuation">(</span><span class="token number">0.7</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
<h6>编辑 <code>_config.butterfly.yml</code> 文件</h6>
<p>在 i<code>nject->head</code> 下面添加如下内容:</p>
<ul><li><code><link rel="stylesheet" href="/css/tag.css"></code></li></ul>
<h6>下载 hexo-theme-volantis 主题、复制 <code>scripts\tags</code> 下的主题到 t<code>hemes\Butterfly\scripts\tag</code> 中、复制以下文件即可</h6>
<pre><code class="prism language-python">btns<span class="token punctuation">.</span>js
checkbox<span class="token punctuation">.</span>js
folding<span class="token punctuation">.</span>js
link<span class="token punctuation">.</span>js
span<span class="token punctuation">.</span>js
timeline<span class="token punctuation">.</span>js
</code></pre>
<p>使用参考 Volantis 专用标签 或者 基于 Butterfly 主题魔改的样式查阅</p>
<h6>2.23 当前访问用户</h6>
<h6>效果图:</h6>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/5e9b6f635e9836b5c45510fa126e9e88.png#pic_center" alt="在这里插入图片描述"></p>
<blockquote>
<p>使用前须知:确保使用了上面 tag 外挂标签 span 的样式 、否则没有彩色样式</p>
</blockquote>
<h6>在 <code>themes\Butterfly\layout\includes\widget\</code> 下创建 <code>card_ip.pug</code> 文件</h6>
<pre><code class="prism language-python"><span class="token punctuation">.</span>card<span class="token operator">-</span>widget<span class="token punctuation">.</span>card<span class="token operator">-</span>ip
<span class="token punctuation">.</span>card<span class="token operator">-</span>content
<span class="token punctuation">.</span>item<span class="token operator">-</span>headline
i<span class="token punctuation">.</span>fa<span class="token punctuation">.</span>fa<span class="token operator">-</span>user<span class="token punctuation">(</span>aria<span class="token operator">-</span>hidden<span class="token operator">=</span><span class="token string">"true"</span><span class="token punctuation">)</span>
span<span class="token operator">=</span> _p<span class="token punctuation">(</span><span class="token string">'aside.card_ip'</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>ip_content
<span class="token operator">=</span> _p<span class="token punctuation">(</span><span class="token string">'欢迎来自 '</span><span class="token punctuation">)</span>
span<span class="token punctuation">(</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"p red"</span><span class="token punctuation">)</span><span class="token operator">=</span> _p<span class="token punctuation">(</span><span class="token string">'未知区域'</span><span class="token punctuation">)</span>
<span class="token operator">=</span> _p<span class="token punctuation">(</span><span class="token string">' 的小伙伴'</span><span class="token punctuation">)</span>
br
<span class="token operator">=</span> _p<span class="token punctuation">(</span><span class="token string">'访问IP为: '</span><span class="token punctuation">)</span>
span<span class="token punctuation">(</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"p cyan"</span><span class="token punctuation">)</span><span class="token operator">=</span> _p<span class="token punctuation">(</span><span class="token string">'未知IP'</span><span class="token punctuation">)</span>
br
<span class="token operator">=</span> _p<span class="token punctuation">(</span><span class="token string">'浏览器版本:'</span><span class="token punctuation">)</span>
span<span class="token punctuation">(</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"p blue"</span><span class="token punctuation">)</span><span class="token operator">=</span> _p<span class="token punctuation">(</span><span class="token string">'未知浏览器'</span><span class="token punctuation">)</span>
</code></pre>
<h6>编辑 <code>index.pug</code> 、 在合适位置添加</h6>
<pre><code class="prism language-python"><span class="token keyword">if</span> theme<span class="token punctuation">.</span>aside<span class="token punctuation">.</span>card_ip
<span class="token operator">!=</span>partial<span class="token punctuation">(</span><span class="token string">'includes/widget/card_ip'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>cache<span class="token punctuation">:</span> theme<span class="token punctuation">.</span>fragment_cache<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre>
<h6>编辑 <code>themes\Butterfly\languages\zh-CN.yml</code> 文件、在 <code>aside</code> 下添加</h6>
<pre><code class="prism language-python">card_ip<span class="token punctuation">:</span> true
</code></pre>
<h6>在 <code>themes\Butterfly\source\js</code> 下创建 <code>ip_content.js</code></h6>
<pre><code class="prism language-python"><span class="token operator">//</span>获取当前IP地址和浏览器标识
function getBrowserInfo<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
var agent <span class="token operator">=</span> navigator<span class="token punctuation">.</span>userAgent<span class="token punctuation">.</span>toLowerCase<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
var regStr_ie <span class="token operator">=</span> <span class="token operator">/</span>msie <span class="token punctuation">[</span>\d<span class="token punctuation">.</span><span class="token punctuation">]</span><span class="token operator">+</span><span class="token punctuation">;</span><span class="token operator">/</span>gi<span class="token punctuation">;</span>
var regStr_ff <span class="token operator">=</span> <span class="token operator">/</span>firefox\<span class="token operator">/</span><span class="token punctuation">[</span>\d<span class="token punctuation">.</span><span class="token punctuation">]</span><span class="token operator">+</span><span class="token operator">/</span>gi
var regStr_chrome <span class="token operator">=</span> <span class="token operator">/</span>chrome\<span class="token operator">/</span><span class="token punctuation">[</span>\d<span class="token punctuation">.</span><span class="token punctuation">]</span><span class="token operator">+</span><span class="token operator">/</span>gi<span class="token punctuation">;</span>
var regStr_saf <span class="token operator">=</span> <span class="token operator">/</span>safari\<span class="token operator">/</span><span class="token punctuation">[</span>\d<span class="token punctuation">.</span><span class="token punctuation">]</span><span class="token operator">+</span><span class="token operator">/</span>gi<span class="token punctuation">;</span>
<span class="token operator">//</span>IE
<span class="token keyword">if</span> <span class="token punctuation">(</span>agent<span class="token punctuation">.</span>indexOf<span class="token punctuation">(</span><span class="token string">"msie"</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> agent<span class="token punctuation">.</span><span class="token keyword">match</span><span class="token punctuation">(</span>regStr_ie<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator">//</span>firefox
<span class="token keyword">if</span> <span class="token punctuation">(</span>agent<span class="token punctuation">.</span>indexOf<span class="token punctuation">(</span><span class="token string">"firefox"</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> agent<span class="token punctuation">.</span><span class="token keyword">match</span><span class="token punctuation">(</span>regStr_ff<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator">//</span>Chrome
<span class="token keyword">if</span> <span class="token punctuation">(</span>agent<span class="token punctuation">.</span>indexOf<span class="token punctuation">(</span><span class="token string">"chrome"</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> agent<span class="token punctuation">.</span><span class="token keyword">match</span><span class="token punctuation">(</span>regStr_chrome<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator">//</span>Safari
<span class="token keyword">if</span> <span class="token punctuation">(</span>agent<span class="token punctuation">.</span>indexOf<span class="token punctuation">(</span><span class="token string">"safari"</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span> <span class="token operator">&</span><span class="token operator">&</span> agent<span class="token punctuation">.</span>indexOf<span class="token punctuation">(</span><span class="token string">"chrome"</span><span class="token punctuation">)</span> <span class="token operator"><</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> agent<span class="token punctuation">.</span><span class="token keyword">match</span><span class="token punctuation">(</span>regStr_saf<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
var ip_content <span class="token operator">=</span> document<span class="token punctuation">.</span>querySelector<span class="token punctuation">(</span><span class="token string">".ip_content"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>ip_content <span class="token operator">!=</span> null <span class="token operator">&</span><span class="token operator">&</span> typeof <span class="token punctuation">(</span>returnCitySN<span class="token punctuation">)</span> <span class="token operator">!=</span> undefined<span class="token punctuation">)</span> <span class="token punctuation">{</span>
ip_content<span class="token punctuation">.</span>innerHTML <span class="token operator">=</span> <span class="token string">'欢迎来自 <span class="p red">'</span> <span class="token operator">+</span> returnCitySN<span class="token punctuation">[</span><span class="token string">"cname"</span><span class="token punctuation">]</span> <span class="token operator">+</span> <span class="token string">"</span> 的小伙伴<br>"</span> <span class="token operator">+</span> <span class="token string">"访问IP为: <span class='p cyan'>"</span> <span class="token operator">+</span> returnCitySN<span class="token punctuation">[</span><span class="token string">"cip"</span><span class="token punctuation">]</span> <span class="token operator">+</span> <span class="token string">"</span><br>浏览器版本:<span class='p blue'>"</span> <span class="token operator">+</span> getBrowserInfo<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token string">'</span>'</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
<h6>编辑 _config.butterfly.yml 文件、在 inject->bottom 下面添加如下内容:</h6>
<pre><code class="prism language-python"><span class="token operator">-</span> <span class="token operator"><</span>script src<span class="token operator">=</span><span class="token string">"https://pv.sohu.com/cityjson?ie=utf-8"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
<span class="token operator">-</span> <span class="token operator"><</span>script src<span class="token operator">=</span><span class="token string">"/js/ip_content.js"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
</code></pre>
<p><font color="blue">使用的是搜狐的获取 ip 和位置、显示的并不是很准确,但是目前体验来看还是很不错的!!!</font></p>
<h6>2.24 移动端默认折叠</h6>
<blockquote>
<p>方法 1:</p>
</blockquote>
<h6>在 <code>themes\Butterfly\source\js</code> 文件夹新建 <code>Mobile_folding.js</code> 文件,文件内容如下:</h6>
<pre><code class="prism language-python"><span class="token operator">//</span>手机侧边栏默认不展开
var mobile_sidebar_menus <span class="token operator">=</span> document<span class="token punctuation">.</span>getElementById<span class="token punctuation">(</span><span class="token string">"mobile-sidebar-menus"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>mobile_sidebar_menus <span class="token operator">!=</span> null<span class="token punctuation">)</span> <span class="token punctuation">{</span>
var menus_item_child <span class="token operator">=</span> mobile_sidebar_menus<span class="token punctuation">.</span>getElementsByClassName<span class="token punctuation">(</span><span class="token string">"menus_item_child"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
var menus_expand <span class="token operator">=</span> mobile_sidebar_menus<span class="token punctuation">.</span>getElementsByClassName<span class="token punctuation">(</span><span class="token string">"expand"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">for</span> <span class="token punctuation">(</span>var i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator"><</span> menus_item_child<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">+</span><span class="token operator">+</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
menus_item_child<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">.</span>style<span class="token punctuation">.</span>display <span class="token operator">=</span> <span class="token string">"none"</span><span class="token punctuation">;</span>
menus_expand<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">.</span>className <span class="token operator">+=</span> <span class="token string">" closed"</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<h6>编辑 <code>_config.butterfly.yml</code> 文件</h6>
<p>在 <code>inject->bottom</code> 下面添加如下内容:</p>
<pre><code class="prism language-python"><span class="token operator">-</span> <span class="token operator"><</span>script src<span class="token operator">=</span><span class="token string">"/js/Mobile_folding.js"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
</code></pre>
<blockquote>
<p>方法 2:</p>
</blockquote>
<p>最新版主题配置、 编辑<code>_config.butterfly.yml</code></p>
<pre><code class="prism language-python"><span class="token comment"># Hide the child menu items in mobile sidebar</span>
hide_sidebar_menu_child<span class="token punctuation">:</span> true
</code></pre>
<h6>2.25 Aplayer 播放器自动收缩</h6>
<blockquote>
<p>注意:此方法只针对左下角开启了 Aplayer</p>
</blockquote>
<h6>找到 <code>themes\Butterfly\source\css</code> 下创建 <code>aplayerdiy.css</code> 文件、输入以下内容:</h6>
<pre><code class="prism language-python"><span class="token punctuation">.</span>aplayer<span class="token punctuation">.</span>aplayer<span class="token operator">-</span>fixed<span class="token punctuation">.</span>aplayer<span class="token operator">-</span>narrow <span class="token punctuation">.</span>aplayer<span class="token operator">-</span>body <span class="token punctuation">{</span>
left<span class="token punctuation">:</span> <span class="token operator">-</span>66px !important<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span>aplayer<span class="token punctuation">.</span>aplayer<span class="token operator">-</span>fixed<span class="token punctuation">.</span>aplayer<span class="token operator">-</span>narrow <span class="token punctuation">.</span>aplayer<span class="token operator">-</span>body<span class="token punctuation">:</span>hover <span class="token punctuation">{</span>
left<span class="token punctuation">:</span> <span class="token number">0</span> !important<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
<h6>编辑 <code>_config.butterfly.yml</code> 文件、在 <code>inject->head</code> 下面添加如下内容:</h6>
<pre><code class="prism language-python"><span class="token operator">-</span> <span class="token operator"><</span>link rel<span class="token operator">=</span><span class="token string">"stylesheet"</span> href<span class="token operator">=</span><span class="token string">"/css/aplayerdiy.css"</span><span class="token operator">></span>
</code></pre>
<h6>2.26 鼠标指针样式</h6>
<blockquote>
<p>看我博客的鼠标指针</p>
</blockquote>
<h6>找到 <code>themes\Butterfly\source\css</code> 下创建 <code>mouse.css</code> 文件、输入以下内容:</h6>
<p><font color="blue">url里的图片链接可以自行替换成自己的</font></p>
<pre><code class="prism language-python"><span class="token operator">/</span><span class="token operator">*</span>鼠标样式<span class="token operator">*</span><span class="token operator">/</span>
body<span class="token punctuation">,</span>
html <span class="token punctuation">{</span>
cursor<span class="token punctuation">:</span> url<span class="token punctuation">(</span>https<span class="token punctuation">:</span><span class="token operator">//</span>cdn<span class="token punctuation">.</span>jsdelivr<span class="token punctuation">.</span>net<span class="token operator">/</span>gh<span class="token operator">/</span>zykjofficial<span class="token operator">/</span>zykjresource@master<span class="token operator">/</span>img<span class="token operator">/</span>Arrow<span class="token punctuation">.</span>cur<span class="token punctuation">)</span><span class="token punctuation">,</span>
auto !important<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
a<span class="token punctuation">,</span>
img <span class="token punctuation">{</span>
cursor<span class="token punctuation">:</span> url<span class="token punctuation">(</span>https<span class="token punctuation">:</span><span class="token operator">//</span>cdn<span class="token punctuation">.</span>jsdelivr<span class="token punctuation">.</span>net<span class="token operator">/</span>gh<span class="token operator">/</span>zykjofficial<span class="token operator">/</span>zykjresource@master<span class="token operator">/</span>img<span class="token operator">/</span>link<span class="token punctuation">.</span>cur<span class="token punctuation">)</span><span class="token punctuation">,</span>
auto !important<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator">/</span><span class="token operator">*</span>a标签<span class="token operator">*</span><span class="token operator">/</span>
a<span class="token punctuation">:</span>hover <span class="token punctuation">{</span>
cursor<span class="token punctuation">:</span> url<span class="token punctuation">(</span>https<span class="token punctuation">:</span><span class="token operator">//</span>cdn<span class="token punctuation">.</span>jsdelivr<span class="token punctuation">.</span>net<span class="token operator">/</span>gh<span class="token operator">/</span>zykjofficial<span class="token operator">/</span>zykjresource@master<span class="token operator">/</span>img<span class="token operator">/</span>link<span class="token punctuation">.</span>cur<span class="token punctuation">)</span><span class="token punctuation">,</span>
auto !important<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator">/</span><span class="token operator">*</span>按钮<span class="token operator">*</span><span class="token operator">/</span>
button<span class="token punctuation">:</span>hover <span class="token punctuation">{</span>
cursor<span class="token punctuation">:</span> url<span class="token punctuation">(</span>https<span class="token punctuation">:</span><span class="token operator">//</span>cdn<span class="token punctuation">.</span>jsdelivr<span class="token punctuation">.</span>net<span class="token operator">/</span>gh<span class="token operator">/</span>zykjofficial<span class="token operator">/</span>zykjresource@master<span class="token operator">/</span>img<span class="token operator">/</span>link<span class="token punctuation">.</span>cur<span class="token punctuation">)</span><span class="token punctuation">,</span>
auto !important<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator">/</span><span class="token operator">*</span>i标签<span class="token operator">*</span><span class="token operator">/</span>
i<span class="token punctuation">:</span>hover <span class="token punctuation">{</span>
cursor<span class="token punctuation">:</span> url<span class="token punctuation">(</span>https<span class="token punctuation">:</span><span class="token operator">//</span>cdn<span class="token punctuation">.</span>jsdelivr<span class="token punctuation">.</span>net<span class="token operator">/</span>gh<span class="token operator">/</span>zykjofficial<span class="token operator">/</span>zykjresource@master<span class="token operator">/</span>img<span class="token operator">/</span>link<span class="token punctuation">.</span>cur<span class="token punctuation">)</span><span class="token punctuation">,</span>
auto !important<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator">/</span><span class="token operator">*</span>页脚a标签<span class="token operator">*</span><span class="token operator">/</span>
<span class="token comment">#footer-wrap a:hover {</span>
cursor<span class="token punctuation">:</span> url<span class="token punctuation">(</span>https<span class="token punctuation">:</span><span class="token operator">//</span>cdn<span class="token punctuation">.</span>jsdelivr<span class="token punctuation">.</span>net<span class="token operator">/</span>gh<span class="token operator">/</span>zykjofficial<span class="token operator">/</span>zykjresource@master<span class="token operator">/</span>img<span class="token operator">/</span>link<span class="token punctuation">.</span>cur<span class="token punctuation">)</span><span class="token punctuation">,</span>
auto !important<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator">/</span><span class="token operator">*</span>分页器<span class="token operator">*</span><span class="token operator">/</span>
<span class="token comment">#pagination .page-number:hover {</span>
cursor<span class="token punctuation">:</span> url<span class="token punctuation">(</span>https<span class="token punctuation">:</span><span class="token operator">//</span>cdn<span class="token punctuation">.</span>jsdelivr<span class="token punctuation">.</span>net<span class="token operator">/</span>gh<span class="token operator">/</span>zykjofficial<span class="token operator">/</span>zykjresource@master<span class="token operator">/</span>img<span class="token operator">/</span>link<span class="token punctuation">.</span>cur<span class="token punctuation">)</span><span class="token punctuation">,</span>
auto !important<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator">/</span><span class="token operator">*</span>头部的导航栏<span class="token operator">*</span><span class="token operator">/</span>
<span class="token comment">#nav .site-page:hover {</span>
cursor<span class="token punctuation">:</span> url<span class="token punctuation">(</span>https<span class="token punctuation">:</span><span class="token operator">//</span>cdn<span class="token punctuation">.</span>jsdelivr<span class="token punctuation">.</span>net<span class="token operator">/</span>gh<span class="token operator">/</span>zykjofficial<span class="token operator">/</span>zykjresource@master<span class="token operator">/</span>img<span class="token operator">/</span>link<span class="token punctuation">.</span>cur<span class="token punctuation">)</span><span class="token punctuation">,</span>
auto !important<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token operator">/</span><span class="token operator">*</span>鼠标样式END<span class="token operator">*</span><span class="token operator">/</span>
</code></pre>
<h6>编辑 <code>_config.butterfly.yml</code> 文件、在 <code>inject->head</code> 下面添加如下内容:</h6>
<pre><code class="prism language-python"><span class="token operator">-</span> <span class="token operator"><</span>link rel<span class="token operator">=</span><span class="token string">"stylesheet"</span> href<span class="token operator">=</span><span class="token string">"/css/mousediy.css"</span><span class="token operator">></span>
</code></pre>
<h6>2.27 渐变背景</h6>
<h6>编辑 <code>_config.butterfly.yml</code> 文件、找到 <code>background</code> 修改里面的内容</h6>
<pre><code class="prism language-python">background<span class="token punctuation">:</span> <span class="token string">'linear-gradient(0deg,rgba(247,149,51,0.1) 0,rgba(243,112,85,0.1) 15%,rgba(239,78,123,0.1) 30%,rgba(161,102,171,0.1) 44%,rgba(80,115,184,0.1) 58%,rgba(16,152,173,0.1) 72%,rgba(7,179,155,0.1) 86%,rgba(109,186,130,0.1) 100%);'</span>
</code></pre>
<h4>🌈第三部分 优化 Hexo</h4>
<h5>1. 网站SEO优化</h5>
<p>网站推广是一个比较烦人的事情,特别是对于专心搞技术的来说,可能就不是很擅长,那么怎么才能让别人知道我们网站呢?也就是说我们需要想办法让别人通过搜索就可以搜索到博客的内容,给我们带来自然流量,这就需要<code>seo</code>优化,让我们的站点变得对搜索引擎友好</p>
<p><code>SEO</code>是由英文<code>Search Engine Optimization</code>缩写而来, 中文意译为“搜索引擎优化”。<code>SEO</code>是指通过站内优化比如网站结构调整、网站内容建设、网站代码优化等以及站外优化。</p>
<h6>1.1 让百度收录你的站点</h6>
<p>首先要做的就是让各大搜索引擎收录你的站点,我们在刚建站的时候各个搜索引擎是没有收录我们网站的,在搜索引擎中输入site:<域名>,如果如下图所示就是说明我们的网站并没有被百度收录。我们可以直接点击下面的“网址提交”来提交我们的网站<br> <img src="https://i-blog.csdnimg.cn/blog_migrate/8becb62fa10fa574e5aecbe1f5288f41.png#pic_center" alt="在这里插入图片描述"></p>
<h6>查看站点是否被百度收录</h6>
<h6>1.1.1 验证网站所有权</h6>
<p>登录百度站长搜索资源平台:http://zhanzhang.baidu.com, 只要有百度旗下的账号就可以登录,登录成功之后在站点管理中点击添加网站然后输入你的站点地址。</p>
<blockquote>
<p>注意,这里需要输入我们自己购买的域名,不能使用<code>xxx.github.io</code>之类域名.因为<code>github</code>是不允许百度的<code>spider</code>(蜘蛛)爬取<code>github</code>上的内容的,所以如果想让你的站点被百度收录,只能使用自己购买的域名</p>
</blockquote>
<p><font color="blue">向百度站长添加网站</font><br> 在填完网址选择完网站的类型之后需要验证网站的所有权,验证网站所有权的方式有三种:</p>
<ul><li> <p>文件验证。</p> </li><li> <p><code>html</code>标签验证</p> </li><li> <p><code>CNAME</code>解析验证(<font color="blur">推荐使用</font>)</p> </li></ul>
<p><font color="blue">验证网站所有权</font></p>
<p>其实使用哪一种方式都可以,都是比较简单的。</p>
<blockquote>
<p><font color="blue">但是一定要注意,使用文件验证文件存放的位置需要放在<code>sourc</code>文件夹下,如果是<code>html</code>文件那么<code>hexo</code>就会将其编译,所以必须要在<code>html</code>头部加上的<code>layout:false</code>,这样就不会被<code>hexo</code>编译。(如果验证文件是<code>txt</code>格式的就不需要)</font></p>
</blockquote>
<p>其他两种方式也是很简单的,个人推荐<code>文件验证</code>和<code>CNAME验证</code>,<code>CNAME验证</code>最为简单,只需加一条解析就好~</p>
<p><font color="blue">添加云解析</font></p>
<p><font color="blue">验证通过</font></p>
<h6>1.1.2 生成网站地图</h6>
<p>我们需要使用<code>npm</code>自动生成网站的<code>sitemap</code>,然后将生成的<code>sitemap</code>提交到百度和其他搜索引擎</p>
<p><font color="blue">1.1.2.1 安装sitemap插件</font></p>
<pre><code class="prism language-python">npm install hexo<span class="token operator">-</span>generator<span class="token operator">-</span>sitemap <span class="token operator">-</span><span class="token operator">-</span>save
npm install hexo<span class="token operator">-</span>generator<span class="token operator">-</span>baidu<span class="token operator">-</span>sitemap <span class="token operator">-</span><span class="token operator">-</span>save
</code></pre>
<p><font color="blue">1.1.2.2 修改博客配置文件</font><br> 在根目录配置文件<code>.yml</code>中修改<code>url</code>为你的站点地址</p>
<pre><code class="prism language-python"><span class="token comment"># URL</span>
<span class="token comment">## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'</span>
<span class="token comment"># url: https://shw2018.github.io/</span>
url<span class="token punctuation">:</span> https<span class="token punctuation">:</span><span class="token operator">//</span>sunhwee<span class="token punctuation">.</span>com
root<span class="token punctuation">:</span> <span class="token operator">/</span>
permalink<span class="token punctuation">:</span> <span class="token punctuation">:</span>year<span class="token operator">/</span><span class="token punctuation">:</span>month<span class="token operator">/</span><span class="token punctuation">:</span>day<span class="token operator">/</span><span class="token punctuation">:</span>title<span class="token operator">/</span>
permalink_defaults<span class="token punctuation">:</span>
</code></pre>
<p>Yml</p>
<p>执行完<code>hexo g</code>命令之后就会在网站根目录生成<code>sitemap.xml</code>文件和<code>baidusitemap.xml</code>文件,可以通过:<code>https://sunhwee.com/baidusitemap.xml</code>, 查看该文件是否生成,其中<code>sitemap.xml</code>文件是搜索引擎通用的文件,<code>baidusitemap.xml</code>是百度专用的<code>sitemap</code>文件。</p>
<h6>1.1.3 向百度提交链接</h6>
<p>然后我们就可以将我们生成的<code>sitemap</code>文件提交给百度,还是在百度站长平台,找到链接提交,这里我们可以看到有两种提交方式,自动提交和手动提交,自动提交又分为主动推送、自动推送和<code>sitemap</code></p>
<p>如何选择链接提交方式</p>
<ul><li> <p>主动推送:最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。</p> </li><li> <p>自动推送:最为便捷的提交方式,请将自动推送的<code>JS</code>代码部署在站点的每一个页面源代码中,部署代码的页面在每次被浏览时,链接会被自动推送给百度。可以与主动推送配合使用。</p> </li><li> <p>sitemap:您可以定期将网站链接放到<code>sitemap</code>中,然后将sitemap提交给百度。百度会周期性的抓取检查您提交的<code>sitemap</code>,对其中的链接进行处理,但收录速度慢于主动推送。</p> </li><li> <p>手动提交:一次性提交链接给百度,可以使用此种方式。</p> </li></ul>
<p>一般主动提交比手动提交效果好,这里介绍主动提交的三种方法</p>
<p>从效率上来说:</p>
<blockquote>
<p><font color="blue">主动推送>自动推送>sitemap</font></p>
</blockquote>
<p>[</p>
<p><font color="blue">连接提交</font></p>
<p><font color="blue">1.1.3.1 设置主动推送</font><br> 安装插件<code>hexo-baidu-url-submit</code></p>
<pre><code class="prism language-python">npm install hexo<span class="token operator">-</span>baidu<span class="token operator">-</span>url<span class="token operator">-</span>submit <span class="token operator">-</span><span class="token operator">-</span>save
</code></pre>
<p>然后再根目录的配置文件中新增字段</p>
<pre><code class="prism language-python">baidu_url_submit<span class="token punctuation">:</span>
count<span class="token punctuation">:</span> <span class="token number">80</span> <span class="token comment"># 提交最新的一个链接</span>
host<span class="token punctuation">:</span> www<span class="token punctuation">.</span>sunhwee<span class="token punctuation">.</span>com <span class="token comment"># 在百度站长平台中注册的域名</span>
token<span class="token punctuation">:</span> xxxxxxxxxxxxxx <span class="token comment"># 请注意这是您的秘钥, 所以请不要把博客源代码发布在公众仓库里!</span>
path<span class="token punctuation">:</span> baidu_urls<span class="token punctuation">.</span>txt<span class="token comment"># 文本文档的地址, 新链接会保存在此文本文档里</span>
</code></pre>
<p>再加入新的<code>deploy</code>:</p>
<pre><code class="prism language-python">deploy<span class="token punctuation">:</span>
<span class="token operator">-</span> <span class="token builtin">type</span><span class="token punctuation">:</span> baidu_url_submitter
</code></pre>
<blockquote>
<p>**注意,<font color="blue">这里多个 <code>type</code> 的写法应该这么写</font>,前面那个 <code>type</code> 是我推送到 <code>Github</code> 与 <code>Coding</code>的<code>page</code>页面的配置,后面再讲这个。</p>
</blockquote>
<p><font color="blue">主动推送成功提示</font></p>
<blockquote>
<p>各种不同的推送反馈字段说明在这里查看,一般来说,推送失败基本都是地址不相符造成的,我们只需对比<code>baidu_url_submit</code>在<code>public</code>中生成的<code>baidu_urls.txt</code>的地址,与自己填写在<code>host</code>字段中的地址对比看是否一样即可。</p>
</blockquote>
<p><font color="blue">1.1.3.2 设置自动推送</font><br> 在主题配置文件下设置,将<code>baidu_push</code>设置为<code>true</code>:</p>
<pre><code class="prism language-python"><span class="token comment"># Enable baidu push so that the blog will push the url to baidu automatically which is very helpful for SEO</span>
baidu_push<span class="token punctuation">:</span> true
</code></pre>
<p>然后主题文件目录加入下面代码,一般在目录<code>/themes/matery/layout/_partial</code>中的<code>head.ejs</code>中加入下面<code>JS</code>代码(有可能你的目录不是这样,原理类似),这样全站都有了:</p>
<pre><code class="prism language-python"><span class="token operator"><</span><span class="token operator">%</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>theme<span class="token punctuation">.</span>baidu_push<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">%</span><span class="token operator">></span>
<span class="token operator"><</span>script<span class="token operator">></span>
<span class="token punctuation">(</span>function<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
var bp <span class="token operator">=</span> document<span class="token punctuation">.</span>createElement<span class="token punctuation">(</span><span class="token string">'script'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
var curProtocol <span class="token operator">=</span> window<span class="token punctuation">.</span>location<span class="token punctuation">.</span>protocol<span class="token punctuation">.</span>split<span class="token punctuation">(</span><span class="token string">':'</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>curProtocol <span class="token operator">==</span><span class="token operator">=</span> <span class="token string">'https'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
bp<span class="token punctuation">.</span>src <span class="token operator">=</span> <span class="token string">'https://zz.bdstatic.com/linksubmit/push.js'</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">else</span> <span class="token punctuation">{</span>
bp<span class="token punctuation">.</span>src <span class="token operator">=</span> <span class="token string">'http://push.zhanzhang.baidu.com/push.js'</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
var s <span class="token operator">=</span> document<span class="token punctuation">.</span>getElementsByTagName<span class="token punctuation">(</span><span class="token string">"script"</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
s<span class="token punctuation">.</span>parentNode<span class="token punctuation">.</span>insertBefore<span class="token punctuation">(</span>bp<span class="token punctuation">,</span> s<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">%</span> <span class="token punctuation">}</span> <span class="token operator">%</span><span class="token operator">></span>
</code></pre>
<p>Js</p>
<p>这样每次访问博客中的页面就会自动向百度提交<code>sitemap</code></p>
<p><font color="blue">1.1.3.3 sitemap方式</font><br> 将我们上一步生成的<code>sitemap</code>文件提交到百度就可以了~</p>
<p><font color="blue">将sitemap提交到百度</font></p>
<p>我记得被百度收录过程还是蛮久的,一度让我以为我的方法有问题,提交链接在站长工具中有显示大概是有两天的时候,站点被百度收录大概花了半个月= =,让大家看一下现在的成果<br> 在百度搜索<code>site:sunhwee.com</code>已经可以搜索到结果</p>
<p><img src="https://i-blog.csdnimg.cn/blog_migrate/0842e92bad4e9d362514e31bc9b89191.png#pic_center" alt="在这里插入图片描述"></p>
<p><font color="blue">站点已被百度收录</font></p>
<p><font color="blue">站点已被百度收录</font></p>
<h6>1.2 让google收录你的站点</h6>
<h6>1.2.1 操作步骤</h6>
<p>相比于百度,<code>google</code>的效率实在不能更快,貌似十分钟左右站点就被收录了,其实方法是和百度是一样的。</p>
<p><code>google</code>站点平台:https://www.google.com/webmasters/</p>
<ul><li> <p>注册账号</p> </li><li> <p>验证站点</p> </li><li> <p>提交<code>sitemap</code></p> </li></ul>
<blockquote>
<p>向 <code>google</code> 添加 <code>sitemap</code> 后: 进入 <code>Google Search Console</code> - 抓取 - 站点地图,点击「添加/测试站点地图」,输入你的博客网址. 若无报错则站点地图提交成功</p>
</blockquote>
<p><font color="blue">sitemap提交成功</font></p>
<p>一步一步来就好,过不了过久就可以被<code>google</code>收录了</p>
<p><font color="blue">站点已被google收录</font></p>
<h6>1.2.2 提交 robots.txt:</h6>
<p><code>robots.txt</code> 是一种存放于网站根目录下的 <code>ASCII</code> 编码的文本文件,它的作用是告诉搜索引擎此网站中哪些内容是可以被爬取的,哪些是禁止爬取的。<code>robots.txt</code> 放在博客目录下的 <code>source</code> 文件夹中,博客生成后在站点目录 <code>/public/</code> 下。</p>
<p>我的 <code>robots.txt</code> 文件内容如下:</p>
<pre><code class="prism language-python">User<span class="token operator">-</span>agent<span class="token punctuation">:</span> <span class="token operator">*</span>
Allow<span class="token punctuation">:</span> <span class="token operator">/</span>
Allow<span class="token punctuation">:</span> <span class="token operator">/</span>archives<span class="token operator">/</span>
Allow<span class="token punctuation">:</span> <span class="token operator">/</span>categories<span class="token operator">/</span>
Allow<span class="token punctuation">:</span> <span class="token operator">/</span>about<span class="token operator">/</span>
Disallow<span class="token punctuation">:</span> <span class="token operator">/</span>js<span class="token operator">/</span>
Disallow<span class="token punctuation">:</span> <span class="token operator">/</span>css<span class="token operator">/</span>
Disallow<span class="token punctuation">:</span> <span class="token operator">/</span>fonts<span class="token operator">/</span>
Disallow<span class="token punctuation">:</span> <span class="token operator">/</span>vendors<span class="token operator">/</span>
</code></pre>
<p>Yml</p>
<p><code>robots.txt</code> 文件更新至网站后可进入 <code>Google Search Console</code> - 抓取 - <code>robots.txt</code> 测试工具进行测试。</p>
<p>这里部分参考自<code>Hexo</code>博客搜索 SEO优化-谷歌篇</p>
<h6>1.3 让其他搜索引擎收录你的站点</h6>
<p>除了百度和<code>google</code>两大搜索引擎,还有搜狗、360等其他的搜索引擎,流程都是一样的,大家就自行选择添加哈,这里就不再赘述了~</p>
<h6>1.4 优化你的url</h6>
<pre><code class="prism language-python">seo`搜索引擎优化认为,网站的最佳结构是<span class="token operator">**</span>用户从首页点击三次就可以到达任何一个页面<span class="token operator">**</span>,但是我们使用`hexo`编译的站点打开文章的`url`是:`sitename<span class="token operator">/</span>year<span class="token operator">/</span>mounth<span class="token operator">/</span>day<span class="token operator">/</span>title`四层的结构,这样的`url`结构很不利于`seo`,爬虫就会经常爬不到我们的文章,于是,我们需要优化一下网站文章`url
</code></pre>
<h6>方案一:</h6>
<p>我们可以将<code>url</code>直接改成<code>sitename/title</code>的形式,并且<code>title</code>最好是用英文,在根目录的配置文件下修改<code>permalink</code>如下:</p>
<pre><code class="prism language-python">url<span class="token punctuation">:</span> https<span class="token punctuation">:</span><span class="token operator">//</span>sunhwee<span class="token punctuation">.</span>com
root<span class="token punctuation">:</span> <span class="token operator">/</span>
permalink<span class="token punctuation">:</span> <span class="token punctuation">:</span>title<span class="token punctuation">.</span>html
permalink_defaults<span class="token punctuation">:</span>
</code></pre>
<h6>方案二:</h6>
<p>使用插件优化<code>url</code></p>
<p>插件<code>hexo-abbrlink</code>实现了这个功能,它将原来的<code>URL</code>地址重新进行了进制转换和再编码。</p>
<p>安装<code>hexo-abbrlink</code>。</p>
<pre><code class="prism language-python">npm install hexo<span class="token operator">-</span>abbrlink <span class="token operator">-</span><span class="token operator">-</span>save
</code></pre>
<p>Bash</p>
<p>配置博客根目录下的_config.yml文件。</p>
<pre><code class="prism language-python"><span class="token comment"># permalink: :title/</span>
permalink<span class="token punctuation">:</span> archives<span class="token operator">/</span><span class="token punctuation">:</span>abbrlink<span class="token punctuation">.</span>html
abbrlink<span class="token punctuation">:</span>
alg<span class="token punctuation">:</span> crc32<span class="token comment"># 算法:crc16(default) and crc32</span>
rep<span class="token punctuation">:</span> <span class="token builtin">hex</span> <span class="token comment"># 进制:dec(default) and hex</span>
</code></pre>
<p>运行<code>hexo clean</code>和<code>hexo g</code>命令来重新生成文件看看,可以清楚的看到,URL结构成功变为了3层。</p>
<h6>1.5 其他seo优化</h6>
<p><code>seo</code>优化应该说是一个收益延迟的行为,可能你做的优化短期内看不到什么效果,但是一定要坚持,<code>seo</code>优化也是有很深的可以研究的东西,从我们最初的网站设计,和最基础的标签的选择都有很大的关系,网站设计就如我们刚刚说的,要让用户点击三次可以到达网站的任何一个页面,要增加高质量的外链,增加相关推荐(比如说我们经常见到右侧本站的最高阅读的排名列表),然后就是给每一个页面加上<code>keyword</code>和描述</p>
<p>在代码中,我们应该写出能让浏览器识别的语义化<code>HTML</code>,这样有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;并且对外链设置<code>nofollow</code>标签,避免<code>spider</code>爬着爬着就爬出去了(减少网站的跳出率),并且我们要尽量在一些比较大的网站增加我们站点的曝光率,因为<code>spider</code>会经常访问大站,比如我们在掘金等技术社区发表文章中带有我们的站点,这样<code>spider</code>是很有可能爬到我们中的站点的,so….</p>
<ul><li> <p>网站<font color="blue">外链</font>的推广度、数量和质量</p> </li><li> <p>网站的<font color="blue">内链</font>足够强大</p> </li><li> <p>网站的<font color="blue">原创</font>质量</p> </li><li> <p>网站的<font color="blue">年龄</font>时间</p> </li><li> <p>网站的<font color="blue">更新频率</font>(更新次数越多越好)</p> </li><li> <p>网站的<font color="blue">服务器</font></p> </li><li> <p>网站的<font color="blue">流量</font>:流量越高网站的权重越高</p> </li><li> <p>网站的<font color="blue">关键词排名</font>:关键词排名越靠前,网站的权重越高</p> </li><li> <p>网站的<font color="blue">收录</font>数量:网站百度收录数量越多,网站百度权重越高</p> </li><li> <p>网站的浏览量及深度:<font color="blue">用户体验</font>越好,网站的百度权重越高</p> </li></ul>
<h5>2. 优化代码块样式</h5>
<p>由于代码高亮插件<code>prism_plugin</code>的样式没有行号显示和代码块整体复制功能,不是很方便,为了优化观感和易用性,我们可以对其进行修改:<br> 待续……</p>
<h6>2.1 给代码块开启行号</h6>
<p>我们在配置文件<code>.yml</code>中找到<code>prism_plugin</code>配置项<code>line_number: false(# default false)</code>改为<code>true</code>,开启行号,但是在我们这个<code>matery</code>主题中中是无效的,有bug需要改一下<code>matery.css</code>样式参数,在第<code>95</code>行位置将:</p>
<pre><code class="prism language-python">pre <span class="token punctuation">{</span>
padding<span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">.</span>5rem !important<span class="token punctuation">;</span>
margin<span class="token punctuation">:</span> 1rem <span class="token number">0</span> !important<span class="token punctuation">;</span>
background<span class="token punctuation">:</span> <span class="token comment">#272822;</span>
overflow<span class="token punctuation">:</span> auto<span class="token punctuation">;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">.</span>35rem<span class="token punctuation">;</span>
tab<span class="token operator">-</span>size<span class="token punctuation">:</span> <span class="token number">4</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
<p>Css</p>
<p>改为:</p>
<pre><code class="prism language-python">pre <span class="token punctuation">{</span>
padding<span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">.</span>5rem <span class="token number">1</span><span class="token punctuation">.</span>5rem <span class="token number">1</span><span class="token punctuation">.</span>5rem <span class="token number">3</span><span class="token punctuation">.</span>3rem !important<span class="token punctuation">;</span>
margin<span class="token punctuation">:</span> 1rem <span class="token number">0</span> !important<span class="token punctuation">;</span>
background<span class="token punctuation">:</span> <span class="token comment">#272822;</span>
overflow<span class="token punctuation">:</span> auto<span class="token punctuation">;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">.</span>35rem<span class="token punctuation">;</span>
tab<span class="token operator">-</span>size<span class="token punctuation">:</span> <span class="token number">4</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
<p>Css</p>
<p>注释掉紧接着的<code>code</code>代码块里面的<code>font-size</code>项,如下:</p>
<pre><code class="prism language-python">code <span class="token punctuation">{</span>
padding<span class="token punctuation">:</span> 1px 5px<span class="token punctuation">;</span>
font<span class="token operator">-</span>family<span class="token punctuation">:</span> Inconsolata<span class="token punctuation">,</span> Monaco<span class="token punctuation">,</span> Consolas<span class="token punctuation">,</span> <span class="token string">'Courier New'</span><span class="token punctuation">,</span> Courier<span class="token punctuation">,</span> monospace<span class="token punctuation">;</span>
<span class="token operator">/</span><span class="token operator">*</span>font<span class="token operator">-</span>size<span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">.</span>91rem<span class="token punctuation">;</span><span class="token operator">*</span><span class="token operator">/</span>
color<span class="token punctuation">:</span> <span class="token comment">#e96900;</span>
background<span class="token operator">-</span>color<span class="token punctuation">:</span> <span class="token comment">#f8f8f8;</span>
border<span class="token operator">-</span>radius<span class="token punctuation">:</span> 2px<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
<h6>代码块显示行号</h6>
<h6>2.2 添加代码块复制功能</h6>
<h5>3. 优化网站加载速度</h5>
<h6>3.1 优化图片加载</h6>
<p><code>issue</code>问题:<br> 优化网站加载逻辑问题:图片最后加载,加入图片懒加载方法</p>
<p>hexo-lazyload-image的作用原理是讲你博客里面img标签的src属性替换为一个loading image,把真实的图片地址放在data-origin属性下面。然后当你的网页翻到那张图片时(也就是图片在窗口中完全可见时),他会有一段js用data-origin的内容替换src,打到懒加载的目的。</p>
<p>一般情况下懒加载和gallery插件会发生冲突,比如按照我上面所说,最终结果就会变成,可能只有第一张图片在gallery中打开是原图,右翻左翻都会是那张loading image,需要你掌握js,可以修改matery.js里面的内容,甚至可能换一个gallery,比如photosiwpe之类的</p>
<p>解决方法:修改<code>/themes/matery/source/js</code>中的<code>matery.js</code>文件</p>
<p>第103行:</p>
<pre><code class="prism language-python">$<span class="token punctuation">(</span><span class="token string">'#articleContent, #myGallery'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>lightGallery<span class="token punctuation">(</span><span class="token punctuation">{</span>
selector<span class="token punctuation">:</span> <span class="token string">'.img-item'</span><span class="token punctuation">,</span>
<span class="token operator">//</span> 启用字幕
subHtmlSelectorRelative<span class="token punctuation">:</span> true<span class="token punctuation">,</span>
showThumbByDefault<span class="token punctuation">:</span> false <span class="token operator">//</span>这句加上
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<p>后面加上:</p>
<pre><code class="prism language-python">$<span class="token punctuation">(</span>document<span class="token punctuation">)</span><span class="token punctuation">.</span>find<span class="token punctuation">(</span><span class="token string">'img'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>each<span class="token punctuation">(</span>function<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
$<span class="token punctuation">(</span>this<span class="token punctuation">)</span><span class="token punctuation">.</span>parent<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>attr<span class="token punctuation">(</span><span class="token string">"href"</span><span class="token punctuation">,</span> $<span class="token punctuation">(</span>this<span class="token punctuation">)</span><span class="token punctuation">.</span>attr<span class="token punctuation">(</span><span class="token string">"data-original"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<p>再装个插件,https://github.com/Troy-Yang/hexo-lazyload-image<br> 在博客根目录配置.yml文件加入对应字段,如下:</p>
<pre><code class="prism language-python"><span class="token comment"># lazyload configuration2019.08.23</span>
lazyload<span class="token punctuation">:</span>
enable<span class="token punctuation">:</span> true
onlypost<span class="token punctuation">:</span> false
loadingImg<span class="token punctuation">:</span> <span class="token comment"># eg ./images/loading.gif</span>
</code></pre>
<p>好了,这样实现了博客网站的图片懒加载。</p>
<h5>3.2 Gulp实现代码压缩</h5>
<p><code>Gulp</code>实现代码压缩,以提升网页加载速度。</p>
<h6>1 首先我们需要安装Gulp插件和5个功能模块,依次运行下面的两条命令。</h6>
<pre><code class="prism language-python">npm install gulp <span class="token operator">-</span><span class="token operator">-</span>save<span class="token comment">#安装gulp</span>
<span class="token comment"># 安装功能模块</span>
npm install gulp<span class="token operator">-</span>htmlclean gulp<span class="token operator">-</span>htmlmin gulp<span class="token operator">-</span>minify<span class="token operator">-</span>css gulp<span class="token operator">-</span>uglify gulp<span class="token operator">-</span>imagemin <span class="token operator">-</span><span class="token operator">-</span>save
<span class="token comment"># 额外的功能模块</span>
npm install gulp<span class="token operator">-</span>debug gulp<span class="token operator">-</span>clean<span class="token operator">-</span>css gulp<span class="token operator">-</span>changed gulp<span class="token operator">-</span><span class="token keyword">if</span> gulp<span class="token operator">-</span>plumber gulp<span class="token operator">-</span>babel babel<span class="token operator">-</span>preset<span class="token operator">-</span>es2015 <span class="token keyword">del</span> <span class="token operator">-</span><span class="token operator">-</span>save
</code></pre>
<h6>2 接下来在博客的根目录下新建gulpfile.js文件,并复制下面的内容到文件中。</h6>
<pre><code class="prism language-python">var gulp <span class="token operator">=</span> require<span class="token punctuation">(</span><span class="token string">"gulp"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
var debug <span class="token operator">=</span> require<span class="token punctuation">(</span><span class="token string">"gulp-debug"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
var cleancss <span class="token operator">=</span> require<span class="token punctuation">(</span><span class="token string">"gulp-clean-css"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">//</span>css压缩组件
var uglify <span class="token operator">=</span> require<span class="token punctuation">(</span><span class="token string">"gulp-uglify"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">//</span>js压缩组件
var htmlmin <span class="token operator">=</span> require<span class="token punctuation">(</span><span class="token string">"gulp-htmlmin"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">//</span>html压缩组件
var htmlclean <span class="token operator">=</span> require<span class="token punctuation">(</span><span class="token string">"gulp-htmlclean"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">//</span>html清理组件
var imagemin <span class="token operator">=</span> require<span class="token punctuation">(</span><span class="token string">"gulp-imagemin"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">//</span>图片压缩组件
var changed <span class="token operator">=</span> require<span class="token punctuation">(</span><span class="token string">"gulp-changed"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">//</span>文件更改校验组件
var gulpif <span class="token operator">=</span> require<span class="token punctuation">(</span><span class="token string">"gulp-if"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">//</span>任务 帮助调用组件
var plumber <span class="token operator">=</span> require<span class="token punctuation">(</span><span class="token string">"gulp-plumber"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">//</span>容错组件(发生错误不跳出任务,并报出错误内容)
var isScriptAll <span class="token operator">=</span> true<span class="token punctuation">;</span> <span class="token operator">//</span>是否处理所有文件,<span class="token punctuation">(</span>true<span class="token operator">|</span>处理所有文件<span class="token punctuation">)</span><span class="token punctuation">(</span>false<span class="token operator">|</span>只处理有更改的文件<span class="token punctuation">)</span>
var isDebug <span class="token operator">=</span> true<span class="token punctuation">;</span> <span class="token operator">//</span>是否调试显示 编译通过的文件
var gulpBabel <span class="token operator">=</span> require<span class="token punctuation">(</span><span class="token string">"gulp-babel"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
var es2015Preset <span class="token operator">=</span> require<span class="token punctuation">(</span><span class="token string">"babel-preset-es2015"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
var <span class="token keyword">del</span> <span class="token operator">=</span> require<span class="token punctuation">(</span><span class="token string">"del"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
var Hexo <span class="token operator">=</span> require<span class="token punctuation">(</span><span class="token string">"hexo"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
var hexo <span class="token operator">=</span> new Hexo<span class="token punctuation">(</span>process<span class="token punctuation">.</span>cwd<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">//</span> 初始化一个hexo对象
<span class="token operator">//</span> 清除public文件夹
gulp<span class="token punctuation">.</span>task<span class="token punctuation">(</span><span class="token string">"clean"</span><span class="token punctuation">,</span> function<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token keyword">del</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">"public/**/*"</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">//</span> 下面几个跟hexo有关的操作,主要通过hexo<span class="token punctuation">.</span>call<span class="token punctuation">(</span><span class="token punctuation">)</span>去执行,注意<span class="token keyword">return</span>
<span class="token operator">//</span> 创建静态页面 (等同 hexo generate)
gulp<span class="token punctuation">.</span>task<span class="token punctuation">(</span><span class="token string">"generate"</span><span class="token punctuation">,</span> function<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> hexo<span class="token punctuation">.</span>init<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>then<span class="token punctuation">(</span>function<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> hexo
<span class="token punctuation">.</span>call<span class="token punctuation">(</span><span class="token string">"generate"</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
watch<span class="token punctuation">:</span> false
<span class="token punctuation">}</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>then<span class="token punctuation">(</span>function<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> hexo<span class="token punctuation">.</span>exit<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>catch<span class="token punctuation">(</span>function<span class="token punctuation">(</span>err<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> hexo<span class="token punctuation">.</span>exit<span class="token punctuation">(</span>err<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">//</span> 启动Hexo服务器
gulp<span class="token punctuation">.</span>task<span class="token punctuation">(</span><span class="token string">"server"</span><span class="token punctuation">,</span> function<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> hexo
<span class="token punctuation">.</span>init<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>then<span class="token punctuation">(</span>function<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> hexo<span class="token punctuation">.</span>call<span class="token punctuation">(</span><span class="token string">"server"</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>catch<span class="token punctuation">(</span>function<span class="token punctuation">(</span>err<span class="token punctuation">)</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span>log<span class="token punctuation">(</span>err<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">//</span> 部署到服务器
gulp<span class="token punctuation">.</span>task<span class="token punctuation">(</span><span class="token string">"deploy"</span><span class="token punctuation">,</span> function<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> hexo<span class="token punctuation">.</span>init<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>then<span class="token punctuation">(</span>function<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> hexo
<span class="token punctuation">.</span>call<span class="token punctuation">(</span><span class="token string">"deploy"</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
watch<span class="token punctuation">:</span> false
<span class="token punctuation">}</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>then<span class="token punctuation">(</span>function<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> hexo<span class="token punctuation">.</span>exit<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>catch<span class="token punctuation">(</span>function<span class="token punctuation">(</span>err<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> hexo<span class="token punctuation">.</span>exit<span class="token punctuation">(</span>err<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">//</span> 压缩public目录下的js文件
gulp<span class="token punctuation">.</span>task<span class="token punctuation">(</span><span class="token string">"compressJs"</span><span class="token punctuation">,</span> function<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> gulp
<span class="token punctuation">.</span>src<span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">"./public/**/*.js"</span><span class="token punctuation">,</span> <span class="token string">"!./public/libs/**"</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">//</span>排除的js
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>gulpif<span class="token punctuation">(</span>!isScriptAll<span class="token punctuation">,</span> changed<span class="token punctuation">(</span><span class="token string">"./public"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>gulpif<span class="token punctuation">(</span>isDebug<span class="token punctuation">,</span> debug<span class="token punctuation">(</span><span class="token punctuation">{</span> title<span class="token punctuation">:</span> <span class="token string">"Compress JS:"</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>plumber<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>
gulpBabel<span class="token punctuation">(</span><span class="token punctuation">{</span>
presets<span class="token punctuation">:</span> <span class="token punctuation">[</span>es2015Preset<span class="token punctuation">]</span> <span class="token operator">//</span> es5检查机制
<span class="token punctuation">}</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>uglify<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">//</span>调用压缩组件方法uglify<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span>对合并的文件进行压缩
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>gulp<span class="token punctuation">.</span>dest<span class="token punctuation">(</span><span class="token string">"./public"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">//</span>输出到目标目录
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">//</span> 压缩public目录下的css文件
gulp<span class="token punctuation">.</span>task<span class="token punctuation">(</span><span class="token string">"compressCss"</span><span class="token punctuation">,</span> function<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
var option <span class="token operator">=</span> <span class="token punctuation">{</span>
rebase<span class="token punctuation">:</span> false<span class="token punctuation">,</span>
<span class="token operator">//</span>advanced<span class="token punctuation">:</span> true<span class="token punctuation">,</span> <span class="token operator">//</span>类型:Boolean 默认:true <span class="token punctuation">[</span>是否开启高级优化(合并选择器等)<span class="token punctuation">]</span>
compatibility<span class="token punctuation">:</span> <span class="token string">"ie7"</span> <span class="token operator">//</span>保留ie7及以下兼容写法 类型:String 默认:<span class="token string">''</span>o<span class="token string">r'*'</span> <span class="token punctuation">[</span>启用兼容模式; <span class="token string">'ie7'</span>:IE7兼容模式,<span class="token string">'ie8'</span>:IE8兼容模式,<span class="token string">'*'</span>:IE9<span class="token operator">+</span>兼容模式<span class="token punctuation">]</span>
<span class="token operator">//</span>keepBreaks<span class="token punctuation">:</span> true<span class="token punctuation">,</span> <span class="token operator">//</span>类型:Boolean 默认:false <span class="token punctuation">[</span>是否保留换行<span class="token punctuation">]</span>
<span class="token operator">//</span>keepSpecialComments<span class="token punctuation">:</span> <span class="token string">'*'</span> <span class="token operator">//</span>保留所有特殊前缀 当你用autoprefixer生成的浏览器前缀,如果不加这个参数,有可能将会删除你的部分前缀
<span class="token punctuation">}</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> gulp
<span class="token punctuation">.</span>src<span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">"./public/**/*.css"</span><span class="token punctuation">,</span> <span class="token string">"!./public/**/*.min.css"</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">//</span>排除的css
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>gulpif<span class="token punctuation">(</span>!isScriptAll<span class="token punctuation">,</span> changed<span class="token punctuation">(</span><span class="token string">"./public"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>gulpif<span class="token punctuation">(</span>isDebug<span class="token punctuation">,</span> debug<span class="token punctuation">(</span><span class="token punctuation">{</span> title<span class="token punctuation">:</span> <span class="token string">"Compress CSS:"</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>plumber<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>cleancss<span class="token punctuation">(</span>option<span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>gulp<span class="token punctuation">.</span>dest<span class="token punctuation">(</span><span class="token string">"./public"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">//</span> 压缩public目录下的html文件
gulp<span class="token punctuation">.</span>task<span class="token punctuation">(</span><span class="token string">"compressHtml"</span><span class="token punctuation">,</span> function<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
var cleanOptions <span class="token operator">=</span> <span class="token punctuation">{</span>
protect<span class="token punctuation">:</span> <span class="token operator">/</span><span class="token operator"><</span>\!<span class="token operator">-</span><span class="token operator">-</span><span class="token operator">%</span>fooTemplate\b<span class="token punctuation">.</span><span class="token operator">*</span>?<span class="token operator">%</span><span class="token operator">-</span><span class="token operator">-</span><span class="token operator">></span><span class="token operator">/</span>g<span class="token punctuation">,</span> <span class="token operator">//</span>忽略处理
unprotect<span class="token punctuation">:</span> <span class="token operator">/</span><span class="token operator"><</span>script <span class="token punctuation">[</span><span class="token operator">^</span><span class="token operator">></span><span class="token punctuation">]</span><span class="token operator">*</span>\btype<span class="token operator">=</span><span class="token string">"text\/x-handlebars-template"</span><span class="token punctuation">[</span>\s\S<span class="token punctuation">]</span><span class="token operator">+</span>?<span class="token operator"><</span>\<span class="token operator">/</span>script<span class="token operator">></span><span class="token operator">/</span>gi <span class="token operator">//</span>特殊处理
<span class="token punctuation">}</span><span class="token punctuation">;</span>
var minOption <span class="token operator">=</span> <span class="token punctuation">{</span>
collapseWhitespace<span class="token punctuation">:</span> true<span class="token punctuation">,</span> <span class="token operator">//</span>压缩HTML
collapseBooleanAttributes<span class="token punctuation">:</span> true<span class="token punctuation">,</span> <span class="token operator">//</span>省略布尔属性的值<span class="token operator"><</span><span class="token builtin">input</span> checked<span class="token operator">=</span><span class="token string">"true"</span><span class="token operator">/</span><span class="token operator">></span> <span class="token operator">==</span><span class="token operator">></span> <span class="token operator"><</span><span class="token builtin">input</span> <span class="token operator">/</span><span class="token operator">></span>
removeEmptyAttributes<span class="token punctuation">:</span> true<span class="token punctuation">,</span> <span class="token operator">//</span>删除所有空格作属性值 <span class="token operator"><</span><span class="token builtin">input</span> <span class="token builtin">id</span><span class="token operator">=</span><span class="token string">""</span> <span class="token operator">/</span><span class="token operator">></span> <span class="token operator">==</span><span class="token operator">></span> <span class="token operator"><</span><span class="token builtin">input</span> <span class="token operator">/</span><span class="token operator">></span>
removeScriptTypeAttributes<span class="token punctuation">:</span> true<span class="token punctuation">,</span> <span class="token operator">//</span>删除<span class="token operator"><</span>script<span class="token operator">></span>的<span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"text/javascript"</span>
removeStyleLinkTypeAttributes<span class="token punctuation">:</span> true<span class="token punctuation">,</span> <span class="token operator">//</span>删除<span class="token operator"><</span>style<span class="token operator">></span>和<span class="token operator"><</span>link<span class="token operator">></span>的<span class="token builtin">type</span><span class="token operator">=</span><span class="token string">"text/css"</span>
removeComments<span class="token punctuation">:</span> true<span class="token punctuation">,</span> <span class="token operator">//</span>清除HTML注释
minifyJS<span class="token punctuation">:</span> true<span class="token punctuation">,</span> <span class="token operator">//</span>压缩页面JS
minifyCSS<span class="token punctuation">:</span> true<span class="token punctuation">,</span> <span class="token operator">//</span>压缩页面CSS
minifyURLs<span class="token punctuation">:</span> true <span class="token operator">//</span>替换页面URL
<span class="token punctuation">}</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> gulp
<span class="token punctuation">.</span>src<span class="token punctuation">(</span><span class="token string">"./public/**/*.html"</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>gulpif<span class="token punctuation">(</span>isDebug<span class="token punctuation">,</span> debug<span class="token punctuation">(</span><span class="token punctuation">{</span> title<span class="token punctuation">:</span> <span class="token string">"Compress HTML:"</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>plumber<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>htmlclean<span class="token punctuation">(</span>cleanOptions<span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>htmlmin<span class="token punctuation">(</span>minOption<span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>gulp<span class="token punctuation">.</span>dest<span class="token punctuation">(</span><span class="token string">"./public"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">//</span> 压缩 public<span class="token operator">/</span>uploads 目录内图片
gulp<span class="token punctuation">.</span>task<span class="token punctuation">(</span><span class="token string">"compressImage"</span><span class="token punctuation">,</span> function<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
var option <span class="token operator">=</span> <span class="token punctuation">{</span>
optimizationLevel<span class="token punctuation">:</span> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token operator">//</span>类型:Number默认:<span class="token number">3</span>取值范围:<span class="token number">0</span><span class="token operator">-</span><span class="token number">7</span>(优化等级)
progressive<span class="token punctuation">:</span> true<span class="token punctuation">,</span> <span class="token operator">//</span>类型:Boolean 默认:false 无损压缩jpg图片
interlaced<span class="token punctuation">:</span> false<span class="token punctuation">,</span> <span class="token operator">//</span>类型:Boolean 默认:false 隔行扫描gif进行渲染
multipass<span class="token punctuation">:</span> false <span class="token operator">//</span>类型:Boolean 默认:false 多次优化svg直到完全优化
<span class="token punctuation">}</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> gulp
<span class="token punctuation">.</span>src<span class="token punctuation">(</span><span class="token string">"./public/medias/**/*.*"</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>gulpif<span class="token punctuation">(</span>!isScriptAll<span class="token punctuation">,</span> changed<span class="token punctuation">(</span><span class="token string">"./public/medias"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>gulpif<span class="token punctuation">(</span>isDebug<span class="token punctuation">,</span> debug<span class="token punctuation">(</span><span class="token punctuation">{</span> title<span class="token punctuation">:</span> <span class="token string">"Compress Images:"</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>plumber<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>imagemin<span class="token punctuation">(</span>option<span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">.</span>pipe<span class="token punctuation">(</span>gulp<span class="token punctuation">.</span>dest<span class="token punctuation">(</span><span class="token string">"./public"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">//</span> 执行顺序: 清除public目录 <span class="token operator">-</span><span class="token operator">></span> 产生原始博客内容 <span class="token operator">-</span><span class="token operator">></span> 执行压缩混淆 <span class="token operator">-</span><span class="token operator">></span> 部署到服务器
gulp<span class="token punctuation">.</span>task<span class="token punctuation">(</span>
<span class="token string">"build"</span><span class="token punctuation">,</span>
gulp<span class="token punctuation">.</span>series<span class="token punctuation">(</span>
<span class="token string">"clean"</span><span class="token punctuation">,</span>
<span class="token string">"generate"</span><span class="token punctuation">,</span>
<span class="token string">"compressHtml"</span><span class="token punctuation">,</span>
<span class="token string">"compressCss"</span><span class="token punctuation">,</span>
<span class="token string">"compressJs"</span><span class="token punctuation">,</span>
<span class="token string">"compressImage"</span><span class="token punctuation">,</span>
gulp<span class="token punctuation">.</span>parallel<span class="token punctuation">(</span><span class="token string">"deploy"</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span>
<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">//</span> 默认任务
gulp<span class="token punctuation">.</span>task<span class="token punctuation">(</span>
<span class="token string">"default"</span><span class="token punctuation">,</span>
gulp<span class="token punctuation">.</span>series<span class="token punctuation">(</span>
<span class="token string">"clean"</span><span class="token punctuation">,</span>
<span class="token string">"generate"</span><span class="token punctuation">,</span>
gulp<span class="token punctuation">.</span>parallel<span class="token punctuation">(</span><span class="token string">"compressHtml"</span><span class="token punctuation">,</span> <span class="token string">"compressCss"</span><span class="token punctuation">,</span> <span class="token string">"compressImage"</span><span class="token punctuation">,</span> <span class="token string">"compressJs"</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span>
<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">//</span>Gulp4最大的一个改变就是gulp<span class="token punctuation">.</span>task函数现在只支持两个参数,分别是任务名和运行任务的函数
</code></pre>
<h6>3 最后 <code>hexo clean</code> && <code>hexo g</code> && <code>gulp</code> && <code>hexo d</code> 就可以了。</h6>
<p>注意,很可能你会运行到第三步,也就是运行gulp压缩命令时会报错</p>
<h6>gulp运行错误</h6>
<p>那是因为gulp安装的本地版本和hexo自带的版本不对应导致,第三步gulp压缩可以用下面命令强制使用本地版本:</p>
<pre><code class="prism language-python">node <span class="token punctuation">.</span><span class="token operator">/</span>node_modules<span class="token operator">/</span>gulp<span class="token operator">/</span><span class="token builtin">bin</span><span class="token operator">/</span>gulp<span class="token punctuation">.</span>js
</code></pre>
<h5>3.3 Github & Coding Pages 双部署</h5>
<p><code>Github</code> & <code>Coding Pages</code> 双部署,对国内,国外用户进行分流访问,以提升网站的访问速度.<br> <code>Github Pages</code> 的部署前面已经说了,这里就讲一讲 <code>Coding Pages</code> 如何部署.其实与 G<code>ithub Pages</code> 也类似,先到<code>coding</code>官网注册,创建一个与用户名同名的仓库,添加仓库地址到配置文件中,在根目录<code>_config.yml</code>对应地方添加如下:</p>
<pre><code class="prism language-python"><span class="token comment"># Deployment</span>
<span class="token comment">## Docs: https://hexo.io/docs/deployment.html</span>
deploy<span class="token punctuation">:</span>
<span class="token operator">-</span> <span class="token builtin">type</span><span class="token punctuation">:</span> git
repo<span class="token punctuation">:</span>
github<span class="token punctuation">:</span> https<span class="token punctuation">:</span><span class="token operator">//</span>github<span class="token punctuation">.</span>com<span class="token operator">/</span>shw2018<span class="token operator">/</span>shw2018<span class="token punctuation">.</span>github<span class="token punctuation">.</span>io<span class="token punctuation">.</span>git<span class="token comment"># github 仓库地址</span>
coding<span class="token punctuation">:</span> https<span class="token punctuation">:</span><span class="token operator">//</span>git<span class="token punctuation">.</span>dev<span class="token punctuation">.</span>tencent<span class="token punctuation">.</span>com<span class="token operator">/</span>sunhwee<span class="token operator">/</span>sunhwee<span class="token punctuation">.</span>git <span class="token comment"># coding 仓库地址</span>
branch<span class="token punctuation">:</span> master
<span class="token operator">-</span> <span class="token builtin">type</span><span class="token punctuation">:</span> baidu_url_submitter
</code></pre>
<p>把本地生成 <code>SSH</code> 公匙添加到 <code>Coding</code> 这一步看我前面的教程,原理类似.</p>
<p>然后 <code>hexo clean</code> && <code>hexo g</code> && <code>hexo d</code> 部署上去就是了.</p>
<p>当然,部署上去后,你需要开启 <code>page</code> 服务.</p>
<p>你可以在 <code>pages</code> 设置里面自定义域名,区域名解析控制台,添加两条 <code>CNAME</code> 记录,将域名指向<code>RepoName.coding.me</code>就可以的,申请 <code>ssl</code> 证书,强制开启<code>https</code></p>
<blockquote>
<h6>可能遇到的问题:</h6>
</blockquote>
<h6>[coding pages 申请ssl 证书总是提示:错误!]</h6>
<p>这里提一句,如果你是<code>github pages</code> 和 <code>coding pages</code>双部署,用<font color="blue">同一个域名</font>的话,可以将<code>xxx.github.io</code> 解析成 <code>境外</code>, <code>xxx.coding.me</code> 解析成 <code>默认</code>,这个时候如果你之前就申请过 <code>ssl</code> 证书的话,再在 <code>coding</code> 里面申请 <code>ssl</code>证书会一直提示 <code>失败</code>,解决办法:</p>
<p>先去域名解析控制台,将境外解析的两条 <code>CNAME</code> 记录 <code>暂停</code>,过个五六分钟,回到 <code>coding</code> 点击申请 <code>ssl</code>,很快就会提示,申请成功!</p>
<p>刚好我过程中遇到了这个问题,所以把它记下来,方便后面的小伙伴看到.</p>
<h6>到这里整个Hexo博客部署美化教程就完结啦,大家快行动起来,开始自己的Hexo之旅吧!!</h6>
<p><br><br> <br></p>
<hr>
<br>
<br>
<p>LeoToJavaer</p>
<p>Hexo+Github博客搭建教程</p><br><br>
来源:https://www.cnblogs.com/liupiaos/p/18465725
頁:
[1]