分享幾套不一樣的部落格園面板 ?
產生
部落格園第三方主題數不勝數,或者你肯定也為你的部落格園作了一些優化。接下來無論如何你都可以將你已經存在的程式碼稍作修改(無非就是建一個資料夾,修改一下檔名)加入這個倉庫,安裝過的人都可以互相共享主題樣式。ok,先放個效果GIF,如果有興趣請往下看吧,筆芯。
當然還可以切換更多全域性主題,它在不斷擴充!
介紹
awesCnb 是多套主題的合集,可以快速切換多套主題,安裝(所謂安裝就是幾次複製貼上)後,只需要在部落格園設定頁面更改 name
的值就能直接切換整套主題。
- 風格變化莫測(因為你可以快速切換多套主題)
- 根據配置載入 (沒有使用的外掛不會載入)
- 安裝後靜靜享受更新
- 相容性強(通過 gulp 自動處理 js css)
- 訪問快速 (程式碼部署在 碼雲 而不是 GitHub,你看我的部落格導航欄有個大大的 GitHub 連結,其實點選去是 Gitee碼雲 )
- 易於安裝
- 大量的可選配置
- 都是廢話我不囉嗦了
安裝
這個過程看起來很長,其實只是簡單的複製貼上,我寫的足夠詳細每個人都能夠安裝它,哪怕你剛剛註冊部落格園!
- 你的部落格首頁 -> 管理 -> 設定
- 設定部落格預設面板為
Custom
- 複製如下 css 貼上到 頁面定製 css
: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}}
- 禁用預設 css 樣式
- 複製如下 js 貼上到 部落格側邊欄公告(支援 HTML 程式碼) (支援 JS 程式碼) 沒開通 js 許可權請先開通
<script src="https://guangzan.gitee.io/awescnb/index.js"></script> <script>$.awesCnb({ theme: { name: 'reacg', // 在這裡配置全域性主題 } }); </script>
- 複製如下 html 貼上到 頁首 HTML
<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!你換了一整套新的面板!
大量的可選配置
如果你迫不及待想要加入進來那麼請你直接跳過這部分,通過 文章目錄 轉到下方 專案目錄 吧!
theme(全域性主題)
名稱 | 型別 | 可選值 | 預設值 | 描述 |
---|---|---|---|---|
name | String | 'acg' 'gshang' 'light' 'reacg' | 'acg' | 全域性主題 |
color | String | 所有色值 | '#FFB3CC' | 全域性主題色 |
avatar | String | 圖片連結 | '' | 頭像 |
headerBackground | String | 圖片連結 | '' | 頭部背景圖 |
live2d(模型)
名稱 | 型別 | 可選值 | 預設值 | 描述 |
---|---|---|---|---|
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' | 頭像 |
model
- chitose
- epsilon2_1
- haru-01
- haru-02
- hijiki
- izumi
- shizuku
- tororo
- 小埋
- ....
太多了,我歇(寫)不過來了,我把她們統統施了魔法,放進 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
- theme
- live2d
- click
- topProgress
- musicPlayer
- github
- catalog
acg
- catalog > position x
- 其他支援
gshang
- theme
- live2d
- click
- topProgress
- musicPlayer
light
- live2d
- click
- topProgress
- musicPlayer
- theme > avatar x headerBackground x
- 儲存
目錄
- docs 文件
- assets 所有外掛、依賴
- index.js 入口
- theme 存放不同主題
- acg 一套主題
- acg.css 主題樣式檔案
- acg.js 構建主題的 js
- light 一套主題
- light.css
- light.js
- ...
- acg 一套主題
- package 打包生成
如何執行
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,你完全不用擔心搞亂了程式碼。(不要問我為什麼不新建一個分支)。
程式碼地址點我-Gitee
如何開始
你需要在
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郵箱:[email protected]
感謝
GShang 提供了一套主題。