创建主题配置文件 主题目录下的 _config.yml
文件通常负责主题相关配置,我们强烈建议您使用代替的主题配置文件以防止自己的配置丢失。那么如何使用代替主题配置文件呢?
在博客根目录的 _config.yml
文件旁边新建一个文件: _config.volantis.yml
,这个文件中的配置信息优先级高于主题文件夹中的配置文件。
当您需要修改某项内容时,例如导航栏菜单,那么您需要在主题配置文件中找到相关内容,复制进自己创建的配置文件中:
blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 navbar: visiable: auto logo: img: volantis-static/media/org.volantis/blog/Logo-NavBar@3x.png icon: title: menu: - name: 博客 icon: fa-solid fa-rss url: /
小提示 使用「npm i hexo-theme-volantis
」方式安装的主题,主题配置文件在「blog/node_modules/hexo-theme-volantis/_config.yml
」 使用传统方式安装的主题,主题配置文件在「blog/themes/volantis/_config.yml
」
自定义主题外观 最大布局宽度 blog/_config.volantis.yml 1 2 3 custom_css: ... max_width: 1080px
网页所呈现的内容的最大宽度,即 body 和 sidebar 的宽度之和。
抗锯齿 blog/_config.volantis.yml 1 2 3 custom_css: ... font_smoothing: true
自定义光标样式 blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 custom_css: ... cursor: enable: true text: volantis-static/media/cursor/text.png pointer: volantis-static/media/cursor/pointer.png default: volantis-static/media/cursor/left_ptr.png not-allowed: volantis-static/media/cursor/circle.png zoom-out: volantis-static/media/cursor/zoom-out.png zoom-in: volantis-static/media/cursor/zoom-in.png grab: volantis-static/media/cursor/openhand.png
导航栏样式 您可以设置导航栏的高度以及视觉特效,视觉特效目前可选的有:
shadow :卡片阴影。
floatable :当鼠标移动到容器内时,呈现出浮起来的效果。
blur :背景模糊效果(毛玻璃),当浏览器不支持时显示为不透明。
blog/_config.volantis.yml 1 2 3 4 5 6 custom_css: ... navbar: height: 64px width: auto effect: [shadow , blur ]
滚动条样式 blog/_config.volantis.yml 1 2 3 4 5 6 7 custom_css: ... scrollbar: size: 4px border: 2px color: '#2196f3' hover: '#ff5722'
侧边栏样式 视觉特效参数同上,值得注意的是:卡片的 floatable
效果和 blur
效果相冲突。
blog/_config.volantis.yml 1 2 3 4 custom_css: ... sidebar: effect: [shadow ]
正文区域样式 视觉特效参数同上,值得注意的是:卡片的 floatable
效果和 blur
效果相冲突。您可以在 language: true
这里设置代码块显示语言名称。text_align
可以设置 h1/h2/h3/h4/p 的文字对齐方向。
blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 custom_css: ... body: effect: [shadow ] highlight: language: true copy_btn: true text_align: h1: left h2: left h3: left h4: left p: justify
布局间距 您可以设置几种标题的布局间距 h2/h3/h4、段落间距 line、区块内部的段落间距 inline。
blog/_config.volantis.yml 1 2 3 4 5 6 7 8 custom_css: ... gap: h2: 48px h3: 24px h4: 16px p: 1em line_height: 1.6
自定义字体 您可以自定义正文和代码字体。
blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 custom_css: ... fontfamily: logofont: fontfamily: '"Varela Round", "PingFang SC", "Microsoft YaHei", Helvetica, Arial' name: 'Varela Round' url: volantis-static/media/fonts/VarelaRound/VarelaRound-Regular.ttf weight: normal style: normal bodyfont: fontfamily: 'UbuntuMono, "Varela Round", "PingFang SC", "Microsoft YaHei", Helvetica, Arial' name: 'UbuntuMono' url: volantis-static/media/fonts/UbuntuMono/UbuntuMono-Regular.ttf weight: normal style: normal codefont: fontfamily: 'Menlo, UbuntuMono, Monaco'
自定义颜色 多彩配色方案
查看所有相关配置
blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 color_scheme: common: theme: '#3dd9b6' link: '#2092ec' button: '#44D7B6' hover: '#ff5722' inner: '#fff' selection: 'alpha(#2196f3, 0.2)' light: site_bg: '#f4f4f4' site_inner: '#fff' site_footer: '#666' card: '#fff' text: '#444' block: '#f6f6f6' codeblock: '#FFF7EA' inlinecode: '#c74f00' h1: '#3a3a3a' h2: '#3a3a3a' h3: '#333' h4: '#444' h5: '#555' h6: '#666' p: '#444' list: '#666' list_hl: 'mix($color-theme, #000, 80)' meta: '#888' copyright_bkg: '#f5f5f5' dark: site_bd: '#121212' site_bg: '#1f1f1f' card: '#262626' site_inner: '#eeeeeede' site_footer: '#aaaaaade' text: '#eeeeeede' block: '#434343' codeblock: '#1f1f1f' inlinecode: '#D56D28' h1: '#FFFFFFde' h2: '#FFFFFFde' h3: '#FFFFFF99' h4: '#FFFFFF99' h5: '#FFFFFF99' h6: '#FFFFFF99' p: '#d9d9d9de' list: '#d9d9d9de' list_hl: 'mix($color-theme, #fff, 80)' meta: '#bfbfbfde' copyright_bkg: '#21252b' brightness: 70 %
自定义右键菜单 右键菜单 右键在菜单项上根据配置文件自行生成前端代码,所以统一了一个共用的菜单对象:
1 {id : '' , name : '' , icon : '' , link : '' , event : '' , group : '' }
同时为了响应不同状态下的右键行为,提出了内置组 (defaultGroup
)的概念,相应的对于右键默认提供的功能实现则定义为内置实现 (defaultEvent
)。
1 2 3 4 { defaultEvent : ['copyText' , 'copyLink' , 'copyPaste' , 'copyAll' , 'copyCut' , 'copyImg' , 'printMode' , 'readMode' ], defaultGroup : ['navigation' , 'inputBox' , 'seletctText' , 'elementCheck' , 'elementImage' , 'articlePage' ] }
具体来说,内置组对应右键行为,例如 inputBox
代表在输入框下右键行为;内置实现对应自定义右键默认提供的功能实现,例如 readMode
代表了阅读模式。
参数解释 plugins/menus 类的组内数据支持对象(单个菜单)或数组(一系列菜单) 1 2 3 4 5 6 7 8 9 10 rightmenus: order: menus.groupName plugins: defaultGroupItem menus: groupName: - {menu } - {menu } groupName1: {menu }
右键菜单加载 菜单的具体加载由 order
控制,可供使用的内容为:plugins.[组名], menus.[组名], hr, music 这四大类。
右键菜单排序 菜单的排序由 order
字段的先后顺序和组内菜单项的先后顺序决定。
右键菜单类 菜单项共分为两大类:plugins
和 menus
,前者放置内置组及内置菜单,允许添加/修改组内菜单;后者为用户自建菜单类,允许添加/修改组及组内菜单。一般意义上 plugins 类的组为动态组,根据实际的右键状态进行显示;menus 类中内容由用户添加,菜单项默认显示。
右键菜单项 菜单项共六个字段:id
, name
, icon
, link
, event
, group
,具体作用如下:
id: 唯一值
name: 用于菜单名称显示
icon: 用于菜单图标显示
link: 跳转链接
event: 事件,当输入内容不为内置事件时,作 JavaScript 代码执行
group: 菜单项所处分组名称
note link/event 二选一,同时出现时仅处理 link。
内置功能 内置组
组名
描述
备注
navigation
导航组件,横向排列,共用一行,仅显示图标
原则上支持的数量不限
inputBox
文本输入框相关组件
生效于 input/textarea
seletctText
文本选中类组件
生效于右键选中文本,text 为选中的文本
elementCheck
链接判断组件
生效于链接处的右键行为,link 为链接地址
elementImage
图片判断类组件
生效于图片类的右键行为,link 为链接地址
articlePage
文章页面组件
生效于 post.article 页面
note 除 navigation 外的内置组,在显示时会隐藏含 link 属性的菜单项。
内置实现
事件名
描述
备注
copyText
复制文本
复制选中文本
copyLink
复制链接地址
复制 a
或 image
下的链接至剪切板
copyPaste
粘贴文本
需要用户批准相应权限,仅支持粘贴文本至输入框(暂不支持粘贴图片)
copyAll
全选文本
选中输入框内的文本内容
copyCut
剪切文本
剪切输入框中选中的文本内容
copyImg
复制图片
支持 Chrome 浏览器,复制图片资源至剪切板
printMode
打印页面
一个调制过样式的打印功能
readMode
阅读模式
一个简单的阅读模式功能
默认设置 iconPrefix
Fontawesome 图标前缀,音乐类组件使用,参考内容:fa-solid, fa-regular, fa-light, fa-thin, fa-duotone, fa-brands 。
articleShowLink
在 articlePage 组显示时(文章页)时依旧显示含 link 属性的菜单项。
musicAlwaysShow
当设定全局音乐播放器时,是否一直显示音乐控制菜单。false:仅当音乐播放时启用。
回调方法 volantis.rightmenu.handle
在右键菜单打开时执行。
volantis.rightmenu.handle(callBack[,”callBackName”, “setRequestAnimationFrame = true”])。
此外,你还可以在 volantis.mouseEvent
处获得 MouseEvent 信息。
配置文件 blog/_config.volantis.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 rightmenus: enable: true order: - plugins.navigation - hr - plugins.inputBox - plugins.seletctText - plugins.elementCheck - plugins.elementImage - menus.link - hr - menus.darkMode - plugins.articlePage - music options: iconPrefix: fa-solid articleShowLink: false musicAlwaysShow: false plugins: navigation: - {id: 'left' , name: '转到上一页' , icon: 'fa-solid fa-arrow-left' , event: 'history.back()' , group: 'navigation' } - {id: 'right' , name: '转到下一页' , icon: 'fa-solid fa-arrow-right' , event: 'history.forward()' , group: 'navigation' } - {id: 'redo' , name: '刷新当前页面' , icon: 'fa-solid fa-redo' , event: 'window.location.reload()' , group: 'navigation' } - {id: 'up' , name: '回到顶部' , icon: 'fa-solid fa-arrow-up' , event: 'VolantisApp.scrolltoElement(volantis.dom.bodyAnchor)' , group: 'navigation' } inputBox: - {id: 'copyPaste' , name: '粘贴文本' , icon: 'fa-solid fa-paste' , event: 'copyPaste' , group: 'inputBox' } - {id: 'copyAll' , name: '全选文本' , icon: 'fa-solid fa-object-ungroup' , event: 'copyAll' , group: 'inputBox' } - {id: 'copyCut' , name: '剪切文本' , icon: 'fa-solid fa-cut' , event: 'copyCut' , group: 'inputBox' } seletctText: - {id: 'copyText' , name: '复制文本' , icon: 'fa-solid fa-copy' , event: 'copyText' , group: 'seletctText' } - {id: 'searchWord' , name: '站内搜索' , icon: 'fa-solid fa-search' , event: 'OpenSearch(__text__)' , group: 'seletctText' } - {id: 'bingSearch' , name: '必应搜索' , icon: 'fa-solid fa-search' , event: 'window.open(`https://cn.bing.com/search?q=${__text__}`)' , group: 'seletctText' } elementCheck: - {id: 'openTab' , name: '新标签页打开' , icon: 'fa-solid fa-external-link-square-alt' , event: 'window.open(__link__)' , group: 'elementCheck' } - {id: 'copyLink' , name: '复制链接地址' , icon: 'fa-solid fa-link' , event: 'copyLink' , group: 'elementCheck' } elementImage: - {id: 'copyImg' , name: '复制图片' , icon: 'fa-solid fa-image' , event: 'copyImg' , group: 'elementImage' } - {id: 'googleImg' , name: '谷歌识图' , icon: 'fa-solid fa-images' , event: 'window.open(`https://www.google.com.hk/searchbyimage?image_url=${__link__}`)' , group: 'elementImage' } articlePage: - {id: 'printMode' , name: '打印页面' , icon: 'fa-solid fa-print' , event: 'printMode' , group: 'articlePage' } - {id: 'readMode' , name: '阅读模式' , icon: 'fa-solid fa-book-open' , event: 'readMode' , group: 'articlePage' } menus: link: - {id: 'help' , name: '常见问题' , icon: 'fa-solid fa-question' , link: 'https://volantis.js.org/faqs/' , group: 'link' } - {id: 'examples' , name: '示例博客' , icon: 'fa-solid fa-rss' , link: 'https://volantis.js.org/examples/' , group: 'link' } - {id: 'contributors' , name: '加入社区' , icon: 'fa-solid fa-fan' , link: 'https://volantis.js.org/contributors/' , group: 'link' } - hr - {id: 'source_docs' , name: '本站源码' , icon: 'fa-solid fa-code-branch' , link: 'https://github.com/volantis-x/volantis-docs/' , group: 'link' } - {id: 'source_theme' , name: '主题源码' , icon: 'fa-solid fa-code-branch' , link: 'https://github.com/volantis-x/hexo-theme-volantis/' , group: 'link' } darkMode: - {id: 'darkMode' , name: '暗黑模式' , icon: 'fa-solid fa-moon' , event: 'volantis.dark.toggle()' , group: 'darkMode' }
高级玩法 可以利用 Custom Files 自定义文件 功能,实现自定义右键菜单脚本及菜单项控制。
一个在右键菜单中添加 查看上一篇 、查看下一篇 菜单项的范例:
设置网站导航栏 导航栏配置 导航栏分为 logo、menu、search 三个区域设置,其中 logo 区域如果设置了图片,则不能显示图标和标题, menu 区域的设置可以写在一个单独的文件中。
blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 navbar: visiable: auto logo: img: volantis-static/media/org.volantis/blog/Logo-NavBar@3x.png icon: title: menu: - name: 博客 icon: fa-solid fa-rss url: / - name: 分类 icon: fa-solid fa-folder-open url: categories/ - name: 标签 icon: fa-solid fa-tags url: tags/ - name: 归档 icon: fa-solid fa-archive url: archives/ - name: 友链 icon: fa-solid fa-link url: friends/ - name: 关于 icon: fa-solid fa-info-circle url: about/ search: Search...
菜单嵌套 导航栏菜单支持嵌套,嵌套的属性名为 rows
,写法示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ... - name: 更多 icon: fa-solid fa-ellipsis-v rows: - name: 主题源码 url: https://github.com/volantis-x/hexo-theme-volantis/ - name: 更新日志 url: https://github.com/volantis-x/hexo-theme-volantis/releases/ - name: hr - name: 有疑问? rows: - name: 看 FAQ url: faqs/ - name: 看 本站源码 url: https://github.com/volantis-x/volantis-docs/ - name: 提 Issue url: https://github.com/volantis-x/hexo-theme-volantis/issues/ - name: hr - name: 公告和测试博文 url: archives/ - name: 示例博客 url: examples/ - name: 特别感谢 url: contributors/
分割线 在子菜单中,新增一个只有 name: hr
的“菜单”就会被渲染成一个分割线。
小标题 在子菜单中,新增一个只有 name: 小标题内容
(也可以有 icon: 小标题的图标
)的“菜单”就会被渲染成一个小标题。
1 2 3 4 5 6 7 8 9 10 11 12 13 ... - name: 近期 icon: fa-solid fa-clock url: / rows: - name: 热门文章 icon: fa-solid fa-fire - name: ProHUD 开源库的设计思路 url: blog/2019-08-27-prohud/ - name: ValueX:实用的安全对象类型转换库 url: blog/2019-08-29-valuex/ - name: 心率管家 App 的设计与开发 url: blog/2019-07-23-heartmate/
播放器 在子菜单中,新增一个 icon: fa-solid fa-compact-disc
的“菜单”就会被渲染成一个 APlayer 播放器。
1 2 - name: 背景音乐 icon: fa-solid fa-compact-disc
设置网站页脚 您通过 layout
可以自由布局网站页脚内容 aplayer
, social
, license
, info
, copyright
。
blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 site_footer: layout: [aplayer , social , license , info , copyright ] social: - icon: fas fa-rss url: atom.xml - icon: fas fa-envelope url: mailto:me@xaoxuu.com - icon: fab fa-github url: https://github.com/xaoxuu - icon: fas fa-headphones-alt url: https://music.163.com/#/user/home?id=63035382 copyright: '[Copyright © 2017-2021 XXX](/)' br: '<br>'
其中,aplayer
需要在插件部分设置中启用。您可以新增文字属性,用于展示其它文字信息,例如:
blog/_config.volantis.yml 1 2 3 4 5 6 site_footer: layout: [... , br , hello , ... ] ... br: '<br>' hello: '[Hello World](/)'
网站与文章封面 封面高度 blog/_config.volantis.yml 1 2 3 cover: height_scheme: full ...
目前主题提供两种首页封面高度方案,其它页面均为半屏幕高度。
封面布局方案 blog/_config.volantis.yml 1 2 3 4 cover: ... scheme: dock ...
布局方案
适合场景
search
注重搜索
dock
入口选项比较多
featured
选项在4个左右
focus
选项在4个左右
默认显示设置 blog/_config.volantis.yml 1 2 3 4 5 6 cover: ... display: home: true archive: false others: false
由于主页、归档是 hexo 自动生成的,您需要在主题配置文件中设置是否显示封面,而其它页面则可以在 front-matter
中通过设置 cover: true/false
来决定显示封面或者不显示封面。
文章布局配置 查看所有相关配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 article: preview: scheme: landscape pin_icon: volantis-static/media/twemoji/assets/svg/1f4cc.svg auto_title: true auto_excerpt: true hide_excerpt: false line_style: solid author: false readmore: auto body: top_meta: [author , category , date , counter ] bottom_meta: [updated , tags , share ] footer_widget: references: title: 参考资料 icon: fa-solid fa-quote-left related_posts: enable: false title: 相关文章 icon: fa-solid fa-bookmark max_count: 5 placeholder_img: https://gcore.jsdelivr.net/gh/MHG-LAB/cron@gh-pages/bing/bing.jpg copyright: enable: false permalink: '本文永久链接是:' content: - '博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议' - permalink custom: false customData: default: type1 rules: type1: text: <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh#" target="_blank">CC BY-NC-SA 4.0 </a> desc: 署名-非商业性使用-相同方式共享 4.0 国际。 type2: text: 禁止转载引用 desc: 除非获得原作者的单独授权,任何第三方不得转载! type3: text: 原作许可协议 desc: 本文转载自他站,转载或引用本文时,请遵守原作许可协议! type4: text: 来自互联网 desc: 本文来自互联网,未知来源,侵权请联系删除。 type5: text: 允许规范转载 desc: 转载请保留本文转载地址,著作权归作者所有! type6: text: 允许付费转载 desc: 您可以联系作者通过付费方式获得授权。 donate: enable: false images: - volantis-static/media/org.volantis/blog/qrcode/github@volantis.png - volantis-static/media/org.volantis/blog/qrcode/github@volantis.png meta_library: author: avatar: volantis-static/media/org.volantis/blog/favicon/apple-touch-icon.png name: 请设置文章作者 url: / date: icon: fa-solid fa-calendar-alt title: '发布于:' format: 'll' updated: icon: fa-solid fa-edit title: '更新于:' format: 'll' category: icon: fa-solid fa-folder-open counter: icon: fa-solid fa-eye unit: '次浏览' walinecount: icon: fa-solid fa-comment-dots desc: '条评论' artalkcount: icon: fa-solid fa-comment-dots desc: '条评论' wordcount: icon_wordcount: fa-solid fa-keyboard icon_duration: fa-solid fa-hourglass-half tags: icon: fa-solid fa-hashtag share: - id: qq img: volantis-static/media/org.volantis/logo/128/qq.png - id: qzone img: volantis-static/media/org.volantis/logo/128/qzone.png - id: weibo img: volantis-static/media/org.volantis/logo/128/weibo.png - id: img: - id: img:
其中 top_meta
和 bottom_meta
部分的取值自 meta_library
库。
侧边栏配置 侧边栏小组件与 meta 库不同的是:除了现有的 widget ,您可以很轻易地创建自己的 widget ,然后放在需要的地方。此外,您还可以将 widget 写在单独的文件中。
查看所有相关配置
blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 sidebar: position: right for_page: [blogger , category , tagcloud , donate ] for_post: [toc ] widget_library: blogger: class: blogger display: [desktop , mobile ] avatar: volantis-static/media/org.volantis/blog/Logo-NavBar@3x.png shape: rectangle url: /about/ title: subtitle: jinrishici: true social: - icon: fa-solid fa-rss url: /atom.xml - icon: fa-solid fa-envelope url: mailto:me@xxx.com - icon: fab fa-github url: https://github.com/volantis-x/ - icon: fa-solid fa-headphones-alt url: / toc: class: toc display: [desktop , mobile ] sticky: true header: icon: fa-solid fa-list title: 本文目录 list_number: false min_depth: 2 max_depth: 5 music: class: music display: [desktop , mobile ] pjaxReload: false category: class: category display: [desktop ] header: icon: fa-solid fa-folder-open title: 文章分类 url: /blog/categories/ tagcloud: class: tagcloud display: [desktop , mobile ] header: icon: fa-solid fa-tags title: 热门标签 url: /blog/tags/ min_font: 14 max_font: 24 color: true start_color: '#999' end_color: '#555' qrcode: class: qrcode display: [desktop , mobile ] height: 64px images: - volantis-static/media/org.volantis/blog/qrcode/github@volantis.png - volantis-static/media/org.volantis/blog/qrcode/github@volantis.png webinfo: class: webinfo display: [desktop ] header: icon: fa-solid fa-award title: 站点信息 type: article: enable: true text: '文章数目:' unit: '篇' runtime: enable: false data: '2020/01/01' text: '已运行时间:' unit: '天' wordcount: enable: false text: '本站总字数:' unit: '字' visitcounter: enable: true siteuv: text: '本站访客数:' unit: '人' sitepv: text: '本站总访问量:' unit: '次' lastupd: enable: true friendlyShow: true text: '最后活动时间:' unit: '日' lastupdated: class: lastupdated display: [desktop , mobile ] header: icon: fa-solid fa-clock WISTERIA title: 最近更新
每一个小部件都有 class
和 display
,前者代表这个小部件是什么,后者代表这个小部件在什么桌面和移动平台中是否显示,如果在移动平台显示,由于屏幕宽度有限,侧边栏的小部件则会被移动到正文区域下方,因此部分侧边栏小部件便失去意义,建议设置为仅桌面端显示。
1 2 3 4 5 小部件名: class: 小部件类别 display: [小部件在桌面端是否显示 , 小部件在移动设备是否显示 ] pjaxReload: true sticky: true
博主信息部件 blog/_config.volantis.yml 1 2 3 4 5 6 7 8 blogger: class: blogger display: [desktop ] avatar: https://gcore.jsdelivr.net/gh/xaoxuu/cdn-assets/avatar/avatar.png title: subtitle: jinrishici: true social: true
其中,今日诗词 jinrishici
如果设置为一个字符串,这个字符串会变成占位文字,加载失败时显示。如果不需要,就请设置为 jinrishici: false
。social
的具体内容请在网站页脚部分设置。
文章目录部件 blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 toc: class: toc display: [desktop , mobile ] header: icon: fas fa-list title: 本文目录 list_number: false min_depth: 2 max_depth: 5
这个部件只能放置在侧边栏,并且在文章中有效。在移动设备中预览时,手指向上滑动时,导航栏右边会出现 TOC 按钮,点击即可展开 TOC 部件。如果您需要显示章节序号,请设置 list_number
。 min_depth
和 max_depth
代表 TOC 支持的标题层级,最大范围是2~6。
文章分类部件 blog/_config.volantis.yml 1 2 3 4 5 6 7 category: class: category display: [desktop ] header: icon: fas fa-folder-open title: 文章分类 url: /blog/categories/
这个部件可以直接显示所有文章分类,如果您希望有一个独立的页面来展示,需要自己创建一个文件,具体操作在「页面」部分文档中。
标签云部件 blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 tagcloud: class: tagcloud display: [desktop ] header: icon: fas fa-tags title: 热门标签 url: /blog/tags/ min_font: 14 max_font: 24 color: true start_color: '#999' end_color: '#555'
这个部件可以直接显示所有文章的标签,如果您希望有一个独立的页面来展示,需要自己创建一个文件,具体操作在「页面」部分文档中。
二维码部件 blog/_config.volantis.yml 1 2 3 4 5 6 7 donate: class: qrcode display: [desktop , mobile ] height: 64px images: - https://gcore.jsdelivr.net/gh/volantis-x/cdn-org/blog/qrcode/github@volantis.png - https://gcore.jsdelivr.net/gh/volantis-x/cdn-org/blog/qrcode/github@volantis.png
您可以放置在文章页脚用于展示打赏图片,也可以放置在侧边栏。
通用文本部件 blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 repos: class: text display: [desktop ] header: icon: fab fa-github title: 点个赞吧 url: https://github.com/xaoxuu/ content: - '您的赞对我来说很重要,如果您喜欢本主题,希望能够给下面的项目点个赞来支持一下。' - '[<img src="https://gcore.jsdelivr.net/gh/xaoxuu/cdn-assets/proj/prohud/logo.png" height="50px">](https://github.com/xaoxuu/ProHUD)' - '[<img src="https://gcore.jsdelivr.net/gh/xaoxuu/cdn-assets/proj/valuex/logo.png" height="50px">](https://github.com/xaoxuu/ValueX)' - '[<img src="https://gcore.jsdelivr.net/gh/xaoxuu/cdn-assets/proj/inspire/logo.png" height="50px">](https://github.com/xaoxuu/Inspire)'
您可以创建用于展示任何文本内容的文本部件。
通用列表部件 blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 wiki-hexo-theme: class: list display: [desktop , mobile ] header: icon: fas fa-chevron-left title: Hexo Themes url: /wiki/ rows: - name: Volantis for Hexo url: /wiki/volantis/ - name: Resume for Hexo url: /wiki/resume/
您可以创建用于展示任何链接列表的列表部件。列表的 rows
中的每一项支持的属性有: name
、url
、icon
、img
、avatar
,其中 img
是方形图片的链接,avatar
是圆形图片的链接。
组索引 这个部件的布局继承自 list 部件,用于展示文章所属的分组的文章列表。请将您的 Volantis 升级至 2.5 版本以上使用。
blog/_config.volantis.yml 1 2 3 4 5 6 7 group-1: class: group display: [desktop , mobile ] header: icon: fab fa-github title: Git url: /wiki/git/
在文章的 front-matter 中设置:
front-matter 1 2 3 group: group-1 order: 16 sidebar: [group-1 , toc ]
「group-1」卡片将会以列表的形式显示所有设置了 group: group-1
的文章,顺序按照 order
从小到大排列。
通用网格部件 blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 feedback: class: grid display: [desktop , mobile ] header: icon: fas fa-headset title: 联系开发者 url: https://github.com/volantis-x/hexo-theme-volantis fixed: true rows: - name: 反馈BUG icon: fas fa-bug url: https://github.com/volantis-x/hexo-theme-volantis/issues/ - name: 疑问求助 icon: fas fa-question-circle url: https://github.com/volantis-x/hexo-theme-volantis/issues/ - name: 提个建议 icon: fas fa-lightbulb url: https://github.com/volantis-x/hexo-theme-volantis/issues/
您可以创建用于展示任何链接列表的网格部件。网格默认根据文字长度自动确定每一个格子的宽度,如果文字长短不一,建议通过设置 fixed: true
来固定宽度,此时文字过长的格子中的文字会换行显示。
通用页面部件 blog/_config.volantis.yml 1 2 3 4 5 test: class: page display: [desktop , mobile ] pid: haha content: excerpt
您可以把整个页面的md内容作为一个小部件渲染显示出来。只需要设置小部件里的 pid
属性和文章的 front-matter
中设置一样的 pid
即可。 content
代表这个部件显示的内容,可选 excerpt
,more
,content
分别对应文章的摘要、摘要后面的内容、全文。
音乐部件 blog/_config.volantis.yml 1 2 3 4 music: class: music display: [desktop , mobile ] pjaxReload: false
选择评论系统 目前共支持 14 款评论系统:
artalk, giscus, beaudar, utterances, twikoo, waline, discuss, disqus, disqusjs, gitalk, vssue, livere, isso, hashover
blog/_config.volantis.yml 1 2 3 4 comments: title: <i class='fas fa-comments'></i> 评论 subtitle: service: giscus
GitHub Discussions 系列
GitHub Issues 系列
Disqus 系列
Valine 衍生系列
以下是在解决 valine 遗留问题同一时期产生的评论系统故归为一类, 然在其社区issue中也报告了类似的攻击事件(eg: twikoo#157 waline#424 waline#430 ),故请谨慎选择.
Others 其他系列
可以通过在 front-matter 设置 config 实现在特定页面修改评论系统的相关配置。
支持的有(按字母顺序): discuss, giscus, gitalk, twikoo, waline
front-matter 1 2 3 4 5 --- gitalk: config: id: /233/ ---
站内搜索 配置代码
blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 search: enable: true service: hexo algolia: searchAsYouType: true hitsPerPage: 5 placeholder: 'Search...' meilisearch: placeholder: 'Search...' searchKey: '' indexName: '' hostUrl: ''
MeiliSearch 为自托管搜索引擎,需要服务器支撑,部署文档详见:Meilisearch Doc 。
数据集需要自行上传,可使用 hexo-generator-json-content 生成索引,同时配置修改如下: blog/_config.yml 1 2 3 4 5 6 7 8 jsonContent: meta: false pages: false posts: title: true path: true text: true uuid: true
你需要为文章分配一个唯一 ID 作为主键,此处推荐使用 hexo-uuid 生成。
修改 主题配置文件 。
blog/_config.volantis.yml 1 2 3 search: enable: true service: meilisearch
原 google, azure, baidu 站内搜索 系祖传代码, 且文档丢失, 不便后续维护 在 5.0 版本移除
插件库 概述 Volantis 为丰富的插件提供了兼容性优化。大部分插件您只需开启和关闭,无需进行设置。
幻灯片背景(视差滚动效果) jquery.backstretch 在 5.0 版本 移除, 被 parallax 替代
blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 plugins: ... parallax: enable: true position: cover shuffle: true duration: 10000 fade: 1500 images: - https://gcore.jsdelivr.net/gh/volantis-x/cdn-wallpaper/abstract/41F215B9-261F-48B4-80B5-4E86E165259E.jpeg ...
幻灯片背景图片显示的位置可以选择粘贴在封面上,跟随封面一起滑动,也可以选择固定作为网页背景图片。
语法高亮 blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 plugins: ... code_highlight: highlightjs highlightjs: copy_code: true prismjs: copy_code: true js: - https://unpkg.com/prismjs/components/prism-core.min.js - https://unpkg.com/prismjs/plugins/autoloader/prism-autoloader.min.js - https://unpkg.com/prismjs/plugins/line-numbers/prism-line-numbers.min.js css: - https://unpkg.com/prismjs/themes/prism-dark.css - https://unpkg.com/prismjs/plugins/line-numbers/prism-line-numbers.css
如果需要使用 highlight.js 进行语法高亮,请将站点配置文件中的 highlight.enable
设置为 false
否则不会加载插件。您可以在 94 种 语法高亮主题 中挑选喜爱的主题,然后替换上面的 css 链接。
如果您使用 highlight.js 请确保没有使用 hexo 官方的 codeblock 标签,否则会报错。
经测试,使用 highlight.js 的情况下,部分容器内的代码可能仍然会被渲染甚至报错。
APlayer 音乐播放器 blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 plugins: ... aplayer: enable: true server: netease type: playlist id: 3175833810 fixed: false theme: '#1BCDFC' autoplay: false order: list loop: all volume: 0.7 list_max_height: 320px list_folded: true autoHide: true
暗黑模式 blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 plugins: ... darkmode: enable: true
结束支持 blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 plugins: ... killOldVersionsOfIE: enable: true killNoScript: enable: true
Artitalk blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 plugins: ... artitalk: appId: ogP8qj3veMh0LFpFWMPOyF0X-MdYXbMMI appKey: nHXLd3N3Jgh460t2iRQKWAtr
BBtalk blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 plugins: ... bbtalk: js: https://unpkg.com/bbtalk@0.1.5/dist/bbtalk.min.js appId: 0KzOX4vC7Jsk6vzUGNeEiUaI-gzGzoHsz appKey: HwCiWuxfpvKiLm4teCUgTIba serverURLs: https://bbapi.heson10.com
Tidio blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 plugins: ... chat_service: tidio tidio: id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
友链朋友圈 blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 plugins: ... fcircle: private_api_url: https://fcircle-api.example.com/ page_turning_number: 10 error_img: https://sdn.geekzu.org/avatar/57d8260dfb55501c37dde588e7c3852c sort_rule: updated app: https://unpkg.com/imgscdn@1.1.33/fcircle/app.min.js bundle: https://unpkg.com/imgscdn@1.1.33/fcircle/bundle.js
消息提示 blog/_config.volantis.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 plugins: ... message: enable: true icon: default: fa-solid fa-info-circle light-blue quection: fa-solid fa-question-circle light-blue time: default: 5000 quection: 20000 position: 'topRight' transitionIn: 'bounceInLeft' transitionOut: 'fadeOutRight' titleColor: 'var(--color-text)' messageColor: 'var(--color-text)' backgroundColor: 'var(--color-card)' zindex: 2147483647 copyright: enable: true title: '知识共享许可协议' message: '请遵守 CC BY-NC-SA 4.0 协议。' icon: 'far fa-copyright light-blue' aplayer: enable: true play: fa-solid fa-play pause: fa-solid fa-pause rightmenu: enable: true notice: true
轮播标签 使用方法参见:swiper
blog/_config.volantis.yml