博客园第三方主题数不胜数,或者你确定也为你的博客园做了一些优化。接下来不管如何你均可以将你已经存在的代码稍做修改(无非就是建一个文件夹,修改一下文件名)加入这个仓库,安装过的人均可以互相共享主题样式。ok,先放个效果GIF,若是有兴趣请往下看吧,笔芯。css
固然还能够切换更多全局主题,它在不断扩充!html
awesCnb 是多套主题的合集,能够快速切换多套主题,安装(所谓安装就是几回复制粘贴)后,只须要在博客园设置页面更改 name
的值就能直接切换整套主题。git
这个过程看起来很长,其实只是简单的复制粘贴,我写的足够详细每一个人都可以安装它,哪怕你刚刚注册博客园!github
Custom
:root{--sk-size:60px;--sk-color:#ffb3cc} #home{display:none} #loading{position:fixed;top:0;left:0;right:0;height:100vh;display:flex;justify-content:center;align-items:center;background-image:url(https://guangzan.gitee.io/awescnb/assets/images/background/cell.gif);z-index:99999} .sk-fold{width:var(--sk-size);height:var(--sk-size);position:relative;transform:rotateZ(45deg)} .sk-fold-cube{float:left;width:50%;height:50%;position:relative;transform:scale(1.1)} .sk-fold-cube:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--sk-color);animation:sk-fold 2.4s infinite linear both;transform-origin:100% 100%} .sk-fold-cube:nth-child(2){transform:scale(1.1) rotateZ(90deg)} .sk-fold-cube:nth-child(4){transform:scale(1.1) rotateZ(180deg)} .sk-fold-cube:nth-child(3){transform:scale(1.1) rotateZ(270deg)} .sk-fold-cube:nth-child(2):before{animation-delay:.3s} .sk-fold-cube:nth-child(4):before{animation-delay:.6s} .sk-fold-cube:nth-child(3):before{animation-delay:.9s} @keyframes sk-fold{ 0%,10%{transform:perspective(140px) rotateX(-180deg);opacity:0} 25%,75%{transform:perspective(140px) rotateX(0);opacity:1} 100%,90%{transform:perspective(140px) rotateY(180deg);opacity:0}}
<script src="https://guangzan.gitee.io/awescnb/index.js"></script> <script>$.awesCnb({ theme: { name: 'reacg', // 在这里配置全局主题 } }); </script>
<section id="loading"> <div class="sk-fold"> <div class="sk-fold-cube"></div> <div class="sk-fold-cube"></div> <div class="sk-fold-cube"></div> <div class="sk-fold-cube"></div> </div> </section>
安装完以后,过了好久,不免喜新厌旧。这一套主题玩够了,ok,接下来打开设置,将 theme
对象下的 name
的值修改一下( 你能够看上面 安装中的 js ),点击保存,从新进入你的博客。Oh my God!你换了一整套新的皮肤!npm
若是你火烧眉毛想要加入进来那么请你直接跳过这部分,经过 文章目录 转到下方 项目目录 吧!gulp
theme(全局主题)dom
名称 | 类型 | 可选值 | 默认值 | 描述 |
---|---|---|---|---|
name | String | 'acg' 'gshang' 'light' 'reacg' | 'acg' | 全局主题 |
color | String | 全部色值 | '#FFB3CC' | 全局主题色 |
avatar | String | 图片连接 | '' | 头像 |
headerBackground | String | 图片连接 | '' | 头部背景图 |
live2d(模型)ide
名称 | 类型 | 可选值 | 默认值 | 描述 |
---|---|---|---|---|
enable | Boolean | true false | true | 是否启用 |
page | String | 'index' 'post' 'all' | 'all' | 生效页面 |
agent | String | 'pc' 'mobile' 'all' | 'all' | 生效用户端 |
model | String | 见下方 | 'random' | 模型 |
width | Number | 图片连接 | 150 | 头像 |
height | Number | 图片连接 | 200 | 头像 |
position | String | 'left' 'right' | 'right' | 头像 |
modelsvg
太多了,我歇(写)不过来了,我把她们通通施了魔法,放进 CDN
了,干脆像我同样设为随机显示吧,它不会阻塞加载你的博客。若是你非要知道还有哪些指定的 model
可供你使用,往后再说,这不是重点。函数
musicPlayer(音乐播放器)
名称 | 类型 | 可选值 | 默认值 | 描述 |
---|---|---|---|---|
enable | Boolean | true false | true | 是否启用 |
page | String | 'index' 'post' 'all' | 'all' | 生效页面 |
agent | String | 'pc' 'mobile' 'all' | 'all' | 生效用户端 |
autoplay | Boolean | true false | false | 自动播放 |
audio | Array | [{}] | [{}] | 音乐 |
click(点击特效)
名称 | 类型 | 可选值 | 默认值 | 描述 |
---|---|---|---|---|
enable | Boolean | true false | true | 是否启用 |
page | String | 'index' 'post' 'all' | 'all' | 生效页面 |
agent | String | 'pc' 'mobile' 'all' | 'all' | 生效用户端 |
auto | Boolean | true false | false | 进入页面自动产生特效 |
colors | Array | [] | [] | 颜色列表 |
topProgress(头部进度条)
名称 | 类型 | 可选值 | 默认值 | 描述 |
---|---|---|---|---|
enable | Boolean | true false | true | 是否启用 |
page | String | 'index' 'post' 'all' | 'all' | 生效页面 |
agent | String | 'pc' 'mobile' 'all' | 'all' | 生效用户端 |
background | String | 全部色值 | '#FFB3CC' | 背景色 |
height | String | [] | '5px' | 高度 |
github(github图标)
名称 | 类型 | 可选值 | 默认值 | 描述 |
---|---|---|---|---|
enable | Boolean | true false | true | 是否启用 |
background | String | 全部色值 | '#000' | 颜色 |
url | Number | 图片连接 | 200 | 连接 |
postSignature(随笔签名)
名称 | 类型 | 可选值 | 默认值 | 描述 |
---|---|---|---|---|
enable | Boolean | true false | true | 是否启用 |
content | Array | [''] | [''] | 颜色 |
imagebox(图片灯箱)
名称 | 类型 | 可选值 | 默认值 | 描述 |
---|---|---|---|---|
enable | Boolean | true false | true | 是否启用 |
highLight (代码高亮)
名称 | 类型 | 可选值 | 默认值 | 描述 |
---|---|---|---|---|
type | String | 'atomOneDark' 'atomOneLight' 'github' | 'atomOneDark' | 类型 |
lineNumbers(代码行号)
名称 | 类型 | 可选值 | 默认值 | 描述 |
---|---|---|---|---|
enable | Boolean | true false | true | 是否启用 |
catalog(文章目录)
名称 | 类型 | 可选值 | 默认值 | 描述 |
---|---|---|---|---|
enable | Boolean | true false | true | 是否启用 |
position | String | 'sidebar' 'left' 'right' | left | 位置 |
back2top(返回顶部)
名称 | 类型 | 可选值 | 默认值 | 描述 |
---|---|---|---|---|
enable | Boolean | true false | true | 是否启用 |
links(底部连接)
名称 | 类型 | 可选值 | 默认值 | 描述 |
---|---|---|---|---|
links | Array | [{name: '', link: ''}] | 本仓库连接 | 是否启用 |
固然不是全部主题都支持全部配置的,目前我一我的精力有限,不过大多数配置都覆盖了。
reacg
acg
gshang
light
index.js
将用户配置和默认配置合并而后将它放到 window
下,根据用户所选主题调用方法加载主题入口文件 theme.js (例如 light.js)
。
theme.js
使用 window
对象下的用户配置对象,构建主题。
全部主题都放在 theme
文件夹下,至少包含一个 js 文件和 一个 css 文件, 下面以主题 acg
为例:
const userMassage = { // 储存用户基本信息 // 经过DOM获取 }; const urls = { // 储存该主题依赖的文件(js css)名称 按需加载 // 仓库地址 ... // 为了访问更快这个主题的依赖都放在了 gitee }; const icons = { // 储存iconfont图标名称 // symbol引用 }; const headerElements = { // 储存博客header DOM元素 // 由于我须要给他们批量添加事件 包含移动端和 pc 端的事件 }; class ACG{ constructor() { this.defaultOptions = window.userOptions; // 拿到window下的用户配置 this.v = 'v1.0.0'; // version } // ------- 初始化 ---- init() { // 调用loadFiles加载必须依赖如iconfont文件 // 根据客户端和当前页面名称调用对应方法构建页面 } // ---------- tools -------- get pageName() { // 储存函数 返回当前页面名称 // 包含主页 随笔页 标签页 ... // 在 init 函数中判断,当进入这些页面时执行对应的方法 } get userAgent() { // 储存函数 返回当前用户的客户端 // 包含 PC 手机 ... // 在 init 函数中判断并执行对应的方法 } loadFiles() { // 加载依赖文件 } iconInSvg(icon) { // 根据传入的 icons.xxx 返回对应的 <svg> } // Other instrumental functions. // ------构建博客的函数------- setHeader() { // do something for setting header. } // Other functions that build blog. } // 实例化类并调用初始化方法 new ACG().init();
若是你不知道如何开始你的 theme.js,那么你直接到项目仓库看看 gshang.js 是如何写的吧! 它只有几行,复制过来修改一下便可!
欢迎任何人加入进来, 哪怕你只会写一点点 css 就足够,你们一块儿交流,共享彼此的主题 !
您须要先联系我,我会无条件邀请您加入这个仓库。由于我同时还将代码同步到了 GitHub,你彻底不用担忧搞乱了代码。(不要问我为何不新建一个分支)。
你须要在 theme
文件夹下新建主题文件夹如 demo
新建 demo.js
demo.css
, 注意 js 文件名称与文件夹名称一致
接下来你能够尽情修改你的 js 和 css
assets
下的依赖供你使用,你能够自行添加
其余皮肤已经有的功能能够参考
假设你写完了,运行 gulp
开始打包,固然要事先 npm i
推送到码云上去
Good work !
另外加入进来的全部主题都直接附带来几个经常使用插件,哪怕你不写一句代码,均可以使用,由于我在index.js 中将它们配置好了!节省你的时间!
顶部进度条
看板娘 (live2d)
音乐播放器
鼠标点击特效
qq:923665892
wx:wx923665892
qq群:541802647
qq邮箱:923665892@qq.com
GShang 提供了一套主题。