Hexo-Butterfly主题修改记录

2022-07-28 16:18:24 浏览数 (1)

前言

博客主题已更新至3.8.4

本文主要用于记录及分享博主在使用butterfly主题时所使用的功能及涉及到的部分修改;

一些直接修改主题配置文件的功能,请移步Hexo-theme-butterfly开源仓库,参阅官方文档,这里就不做赘述。

此文不涉及源码的修改,源码修改部分请参照Hexo-Butterfly主题修改记录-2

Front-matter

markdown文件最上方以---分隔的区域

代码语言:javascript复制
---
title:
date:
updated:
tags:
categories:
keywords:
description:
top_img:
comments:
cover:  
toc:  
toc_number:
auto_open:
copyright:
mathjax:
katex:
aplayer:
highlight_shrink:
---

写法

说明

title

【必需】文章标题

date

【必需】文章创建日期

updated

【可选】文章更新日期

tags

【可选】文章标籤

categories

【可选】文章分类

keywords

【可选】文章关键字

description

【可选】文章描述

top_img

【可选】文章顶部图片

cover

【可选】文章缩略图(如果没有设置top_img,文章页顶部将显示缩略图,可设为false/图片地址/留空)

comments

【可选】显示文章评论模块(默认 true)

toc

【可选】显示文章TOC(默认为设置中toc的enable配置)

toc_number

【可选】显示toc_number(默认为设置中toc的number配置)

auto_open

【可选】是否自动打开TOC(默认为设置中toc的auto_open配置)

copyright

【可选】显示文章版权模块(默认为设置中post_copyright的enable配置)

mathjax

【可选】显示mathjax(当设置mathjax的per_page: false时,才需要配置,默认 false)

katex

【可选】显示katex(当设置katex的per_page: false时,才需要配置,默认 false)

aplayer

【可选】在需要的页面加载aplayer的js和css,请参考文章下面的音乐 配置

highlight_shrink

【可选】配置代码框是否展开(true/false)(默认为设置中highlight_shrink的配置)

主页文章节选(自动节选和文章页description)

因为主题UI的关係,主页文章节选只支持自动节选和文章页description。

在butterfly里,有四种可供选择

  1. description: 只显示description
  2. both: 优先选择description,如果没有配置description,则显示自动节选的内容
  3. auto_excerpt:只显示自动节选
  4. false: 不显示文章内容

修改主题配置文件:

代码语言:javascript复制
index_post_content:
  method: 3
  length: 500 # if you set method to 2 or 3, the length need to config

description在front-matter里添加

代码语言:javascript复制
title: Hexo-Butterfly主题修改记录(持续更新)
date: 2020-7-20 17:25:00
categories: 
  - 记录分享
  - 网站搭建
description: 这里填写展示在首页的预览文字内容
tags: 
  - Hexo

新建页面

代码语言:javascript复制
hexo new page "pagename"

代码换行

配置butterfly.yml

代码语言:javascript复制
code_word_wrap: true

找到HEXO根目录配置文件,將line_number改成false:

代码语言:javascript复制
highlight:
  enable: true
  line_number: false
  auto_detect: false
  tab_replace:

文章置顶

首先安裝插件(hexo-generator-index-pin-top 或者 hexo-generator-indexed)

如果使用hexo-generator-index-pin-top, 需要先卸载掉hexo-generator-index,然後在文章的front-matter区域添加top: true屬性來把這篇文章置頂

如果使用hexo-generator-indexed, 需要先卸载掉hexo-generator-index,然后在文章的front-matter区域添加sticky: 1。数值越大,置頂的优先越大。

顶部图

page页直接在主题配置文件中修改,post页可在front-matter中设置top_img属性,即top_img: 图片地址

文章封面

在Front-matter中添加cover: 图片地址,同时在主题配置文件中修改封面配置。

标签外挂

Note

代码语言:javascript复制
note:
  # Note tag style values:
  #  - simple    bs-callout old alert style. Default.
  #  - modern    bs-callout new (v2-v3) alert style.
  #  - flat      flat callout style with background, like on Mozilla or StackOverflow.
  #  - disabled  disable all CSS styles import of note tag.
  style: flat
  icons: false
  border_radius: 3
  # Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6).
  # Offset also applied to label tag variables. This option can work with disabled note tag.
  light_bg_offset: 0

用法:

代码语言:javascript复制
{%note [class] [no-icon] %}
Any content (support inline tags too.io).
{%endnote %}

[class]   : default | primary | success | info | warning | danger.
[no-icon] : Disable icon in note.

All parameters are optional.

示例:

代码语言:javascript复制
{%note default %}
default 提示
{%endnote %}

{%note primary no-icon %}
primary 提示
{%endnote %}

{%note success %}
success 提示
{%endnote %}

{%note info %}
info 提示
{%endnote %}

{%note warning %}
warning 提示
{%endnote %}

{%note danger %}
danger 提示
{%endnote %}

default 提示

primary 提示

success 提示

info 提示

warning 提示

danger 提示

相册图库

示例:

代码语言:javascript复制
<div class="gallery-group-main">
{%galleryGroup 'Pixiv' '收藏的一些插画' '/photo/pixiv' https://s.ahzoo.cn/img/pixiv/07.jpg %}
{%galleryGroup 'CG' '永远的7日之都' '/photo/forever7' https://s.ahzoo.cn/img/forever7/05.jpg %}
</div>

Pixiv

收藏的一些插画

CG

永远的7日之都

相册

示例:

代码语言:javascript复制
{%gallery %}
![图片](https://s.ahzoo.cn/img/pixiv/01.jpg)
![图片](https://s.ahzoo.cn/img/pixiv/02.jpg)
![图片](https://s.ahzoo.cn/img/pixiv/03.jpg)
![图片](https://s.ahzoo.cn/img/pixiv/04.jpg)
![图片](https://s.ahzoo.cn/img/pixiv/05.jpg)
![图片](https://s.ahzoo.cn/img/pixiv/06.jpg)
![图片](https://s.ahzoo.cn/img/pixiv/07.jpg)
{%endgallery %}

Tabs

使用方法:

代码语言:javascript复制

{%tabs Unique name, [index] %}
<!-- tab [Tab caption] [@icon] -->
Any content (support inline tags too).
<!-- endtab -->
{%endtabs %}

Unique name   : Unique name of tabs block tag without comma.
                Will be used in #id's as prefix for each tab with their index numbers.
                If there are whitespaces in name, for generate #id all whitespaces will replaced by dashes.
                Only for current url of post/page must be unique!
[index]       : Index number of active tab.
                If not specified, first tab (1) will be selected.
                If index is -1, no tab will be selected. It's will be something like spoiler.
                Optional parameter.
[Tab caption] : Caption of current tab.
                If not caption specified, unique name with tab index suffix will be used as caption of tab.
                If not caption specified, but specified icon, caption will empty.
                Optional parameter.
[@icon]       : FontAwesome icon name (full-name, look like 'fas fa-font')
                Can be specified with or without space; e.g. 'Tab caption @icon' similar to 'Tab caption@icon'.
                Optional parameter.

示例:

代码语言:javascript复制
{%tabs test1 %}
<!-- tab -->
**This is Tab 1.**
<!-- endtab -->

<!-- tab -->
**This is Tab 2.**
<!-- endtab -->

<!-- tab -->
**This is Tab 3.**
<!-- endtab -->
{%endtabs %}
  • test1 1
  • test1 2
  • test1 3

This is Tab 1.

This is Tab 2.

This is Tab 3.

代码语言:javascript复制
{%tabs test2, 3 %}
<!-- tab -->
**This is Tab 1.**
<!-- endtab -->

<!-- tab -->
**This is Tab 2.**
<!-- endtab -->

<!-- tab -->
**This is Tab 3.**
<!-- endtab -->
{%endtabs %}
  • test2 1
  • test2 2
  • test2 3

This is Tab 1.

This is Tab 2.

This is Tab 3.

代码语言:javascript复制
{%tabs test3, -1 %}
<!-- tab -->
**This is Tab 1.**
<!-- endtab -->

<!-- tab -->
**This is Tab 2.**
<!-- endtab -->

<!-- tab -->
**This is Tab 3.**
<!-- endtab -->
{%endtabs %}
  • test3 1
  • test3 2
  • test3 3

This is Tab 1.

This is Tab 2.

This is Tab 3.

自定义 Tab 名 只有 icon icon 和 Tab 名:

代码语言:javascript复制
{%tabs test4 %}
<!-- tab 第一個Tab -->
**tab名字為第一個Tab**
<!-- endtab -->

<!-- tab @fab fa-apple-pay -->
**只有圖標 沒有Tab名字**
<!-- endtab -->

<!-- tab 炸彈@fas fa-bomb -->
**名字 icon**
<!-- endtab -->
{%endtabs %}
  • 第一個Tab
  • 炸彈

tab名字為第一個Tab

只有圖標 沒有Tab名字

名字 icon

tag-hide

tag-hide 内的标签外挂 content 内都不建议有 h1 - h6 等标题。因为 Toc 会把隐藏内容标题也显示出来,而且当滚动屏幕时,如果隐藏内容没有显示出来,会导致 Toc 的滚动出现异常。

  • Inline
  • Block
  • Toggle

inline 在文本里面添加按钮隐藏内容,只限文字

代码语言:javascript复制
{%hideInline content,display,bg,color %}

content: 文本内容 display: 按钮显示的文字 (可选) bg: 按钮的背景颜色 (可选) color: 按钮文字的颜色 (可选) ( content 不能包含英文逗号,可用 ‚)

示例:

代码语言:javascript复制



	

0 人点赞