就算悲傷難抑,遍體鱗傷地處於谷底,也不能中止演奏!
php
本人博客預覽: https://blog.onfree.cncss
本博客基於hexo開發,使用的主題是 @blinkfox 的主題 hexo-theme-materyhtml
hexo 是基於node.js製做的一個博客工具,支持多種主題更換,主要是基於YAML來配置所需信息便可,經過markdown編寫文章,hexo 可以快速構建出靜態的html頁面,而靜態頁面能夠放在GitHub、Gitee等代碼託管上,而無需本身購買服務器。前端
本地安裝Git(版本控制工具)git
本地安裝NodeJs(服務端的 JavaScript)github
GitHub建立和Github Pages建立web
1.1 Git下載地址(本文默認基於Window環境下開發)git官網ajax
由於官網下載會比較慢,推薦使用淘寶鏡像快速下載 點擊下載算法
1.2 下載完後點擊安裝文件並一直下一步運行成功便可,右鍵會看見 Git Bash
,
打開輸入 git --version
出現版本數即爲成功。
1.3 有關Git用法請參考 文檔
經常使用命令:
#使用前配置全局信息 git config --global user.name '你的名字' git config --global user.email '你的郵箱' #查看是否已配置成功 git config --list --global #在你須要使用Git的文件夾下運行 git init #初始化 git add . #添加變動文件到暫存區 git status #查看變動信息 git commit -m '你須要寫的信息' #提交到工做區 git remote add origin https://github.com/用戶名/倉庫名.git #添加Github遠程鏈接 git push origin #上傳到GitHub git push origin -f #強制上傳到GitHub
2.1 NodeJs 下載地址: 點擊下載
2.2 下載完後也是一直下一步就好 ,輸入 node -v 查詢版本就可。
由於官方鏡像源比較慢,推薦以下修改成國內的淘寶鏡像源
# 臨時修改鏡像源 npm --registry=https://registry.npm.taobao.org # 永久設置爲淘寶鏡像源 npm config set registry https://registry.npm.taobao.org # 查看npm的配置 npm config list
修改默認內置路徑,在安裝路徑上建立 node_global
和
node_cache, 如如下:
D:\Program Files\nodejs\node_global D:\Program Files\nodejs\node_cache
執行命令:
npm config set prefix"D:\Program Files\nodejs\node_global" npm config set cache "D:\Program Files\nodejs\node_cache"
3.1 打開Github官網首頁,註冊登陸並建立倉庫,並建立文件 index.html 便可.
3.2 在Setting 中往下拉找到 GitHub Pages 配置便可訪問鏈接。
在你想要保存博客文件的路徑上建立文件夾,如E:\my\hexo_blog,按住 win+r 彈出框裏輸入 cmd 進入控制檯
#進入博客文件夾的上一級目錄 cd E:\my # 安裝hexo npm install -g hexo-cli #初始化文件夾 hexo init hexo_blog #進入博客文件夾 cd E:\my\hexo_blog # 安裝博客須要的依賴文件 npm install
hexo命令 官網文檔
hexo cl #清理 hexo g #生成 hexo s #本地服務 hexo d #發佈
本地測試 http://locakhost:4000 或者127.0.0.1:4000
hexo 目錄結構
_config.yml 配置文件 _public 生成的靜態文件,這個目錄最終會發布到服務器 _scaffolds 通用模板 _source 保存編寫的markdown文件 drafts 草稿文件 themes 博客主題 node_modules 類庫
_config.yml
配置
#網站 title: 你的博客名 subtitle: 博客副標題 description: 博客描述(主要用於SEO) keywords: 博客關鍵詞(主要用於SEO) author: 做者(用於主題顯示文章的做者) language: 博客語言 timezone: 時區 #網址 url :網址 root :網站根目錄 permalink: 文章的永久連接格式 :year/:month/:day/:title/ permalink_defaults: 永久連接中各部分的默認值 pretty_urls: 改寫 permalink 的值來美化 URL pretty_urls.trailing_index: 是否在永久連接中保留尾部的 index.html,設置爲 false時去除 pretty_urls.trailing_html: 是否在永久連接中保留尾部的 .html, 設置爲 false 時去除 #目錄(基本不需改) source_dir 資源文件夾,這個文件夾用來存放內容 public_dir 公共文件夾,這個文件夾用於存放chang生成的站點文件 tag_dir 標籤文件夾 archive_dir 歸檔文件夾 category_dir 分類文件夾 code_dir Include code 文件夾,source_dir 下的子目錄 i18n_dir 國際化(i18n)文件夾 skip_render 跳過指定文件的渲染。(經常使用於跳過GitHub的README.md渲染) #分頁 per_page 每頁顯示的文章量 (0 關閉分頁功能,默認10) pagination_dir 分頁目錄 #主題 theme:當前主題名稱 #發佈 deploy: type: git repo: 倉庫 branch: 分支
themes
文件夾中便可。_config.yml
修改theme: 主題名
防坑指南:設置的主題名和下載的主題名要徹底一致
hexo new page "categories"
編輯文件 /source/categories/index.md
,內容以下:
--- title: categories date: 2020-02-10 type: "categories" layout: "categories" ---
hexo new page "tags"
編輯文件 /source/tags/index.md
,內容以下:
--- title: tags date: 2018-09-30 18:23:38 type: "tags" layout: "tags" ---
hexo new page "about"
編輯文件 /source/about/index.md
,內容以下:
--- title: about date: 2018-09-30 17:25:30 type: "about" layout: "about" ---
hexo new page "friends"
編輯文件 /source/friends/index.md
,內容以下:
--- title: friends date: 2018-12-12 21:25:30 type: "friends" layout: "friends" ---
同時,在你的博客 source
目錄下新建 _data
目錄,在 _data
目錄中新建 friends.json
文件,文件內容以下所示:
[{ "avatar": "https://s2.ax1x.com/2020/02/13/1q6iAs.th.png", "name": "Athink_", "introduction": "加油 你能夠的", "url": "https://blog.onfree.cn/", "title": "前去學習" }]
使用 hexo-prism-plugin的 Hexo 插件來增強代碼高亮,安裝命令以下:
npm i -S hexo-prism-plugin
修改 Hexo 根目錄下 _config.yml
中 highlight.enable
的值爲 false
,並新增 prism
插件相關配置,主要配置以下:
highlight: enable: false prism_plugin: mode: 'preprocess' # realtime/preprocess theme: 'tomorrow' line_number: false # default false custom_css:
使用 hexo-generator-search 的 Hexo 插件來作內容搜索,安裝命令以下:
npm install hexo-generator-search --save
在 Hexo 根目錄下的 _config.yml
文件中,新增如下的配置項:
search: path: search.xml field: post
使用 hexo-permalink-pinyin Hexo 插件使在生成文章時生成中文拼音的永久連接,安裝命令以下:
npm i hexo-permalink-pinyin --save
在 Hexo 根目錄下的 _config.yml
文件中,新增如下的配置項:
permalink_pinyin: enable: true separator: '-' # default: '-'
注:除了此插件外,hexo-abbrlink 插件也能夠生成非中文的連接。
3.10 文章字數統計插件(可選的)
安裝 hexo-wordcount插件,在文章中顯示文章字數、閱讀時長信息,安裝命令以下:
npm i --save hexo-wordcount
而後只需在本主題下的 _config.yml 文件中,激活如下配置項便可:
wordCount: enable: true postWordCount: true min2read: true totalCount: true
頁腳信息可在主題文件的 /layout/_partial/footer.ejs
文件中定製化修改,包括站點、使用的主題、訪問量等。
在主題的 _config.yml
文件中,默認支持 QQ
、GitHub
和郵箱的配置,你能夠在主題文件的 /layout/_partial/social-link.ejs
文件中,新增、修改你須要的社交連接地址,增長連接可參考以下代碼:
<a href="https://github.com/blinkfox" class="tooltipped" target="_blank" data-tooltip="訪問個人GitHub" data-position="top" data-delay="50"> <i class="fa fa-github"></i> </a>
其中,社交圖標(如:fa-github
)你能夠在 Font Awesome 中搜索找到。如下是經常使用社交圖標的標識,供你參考:
fa-facebook
fa-twitter
fa-google-plus
fa-linkedin
fa-tumblr
fa-medium
fa-slack
fa-weibo
fa-wechat
fa-qq
在主題文件的 source/medias/reward
文件中,替換成你的的微信和支付寶的打賞二維碼圖片。
在主題的 _config.yml
配置文件中激活配置:
# 是否在首頁顯示音樂. music: enable: true title: #非吸底模式 有效 enable: false show: 聽聽音樂 server: netease #必須 服務源: netease, tencent, kugou, xiami, baidu type: playlist #必須 歌曲, playlist, album, search, artist id: 260222983 #必須 歌曲 id / playlist id / album id / search keyword fixed: true # 開啓吸底模式 autoplay: false # 是否自動播放 theme: '#C4C4C4' loop: all # 音頻循環播放, 可選值: 'all', 'one', 'none' order: 'random' # 音頻循環順序, 可選值: 'list', 'random' preload: 'auto' # 預加載,可選值: 'none', 'metadata', 'auto' volume: 0.9 # 默認音量,請注意播放器會記憶用戶設置,用戶手動設置音量後默認音量即失效 listFolded: true # 列表默認摺疊 listMaxHeight: 600px #列表最大高度
防坑指南:主題默認開啓歌詞的,簡單粗暴直接修改aplyer源碼
查找 aplayer-icon aplayer-icon-lrc 在後添加 aplayer-icon-lrc-inactivity
查找 this.player.template.lrcButton.addEventListener 在前面添加 e.player.lrc.hide();
防坑指南:主題最新播放器背景顏色和歌曲文章列表顏色相近致使看不清
在/source/css/matery.css裏添加以下:
.aplayer-list-title {
color: #666;
}.aplayer-title {
color: #009688
}
Front-matter
選項中的全部內容均爲非必填的。但我仍然建議至少填寫 title
、categories
、 tags
、date
的值。
配置選項 | 默認值 | 描述 |
---|---|---|
title | Markdown 的文件標題 |
文章標題,強烈建議填寫此選項 |
date | 文件建立時的日期時間 | 發佈時間,強烈建議填寫此選項,且最好保證全局惟一 |
author | 根 _config.yml 中的 author |
文章做者 |
img | featureImages 中的某個值 |
文章特徵圖,推薦使用圖牀(騰訊雲、七牛雲、又拍雲等)來作圖片的路徑.如: http://xxx.com/xxx.jpg |
top | true |
推薦文章(文章是否置頂),若是 top 值爲 true ,則會做爲首頁推薦文章 |
cover | false |
v1.0.2 版本新增,表示該文章是否須要加入到首頁輪播封面中 |
coverImg | 無 | v1.0.2 版本新增,表示該文章在首頁輪播封面須要顯示的圖片路徑,若是沒有,則默認使用文章的特點圖片 |
password | 無 | 文章閱讀密碼,若是要對文章設置閱讀驗證密碼的話,就能夠設置 password 的值,該值必須是用 SHA256 加密後的密碼,防止被他人識破。前提是在主題的 config.yml 中激活了 verifyPassword 選項 |
toc | true |
是否開啓 TOC,能夠針對某篇文章單獨關閉 TOC 的功能。前提是在主題的 config.yml 中激活了 toc 選項 |
mathjax | false |
是否開啓數學公式支持 ,本文章是否開啓 mathjax ,且須要在主題的 _config.yml 文件中也須要開啓才行 |
summary | 無 | 文章摘要,自定義的文章摘要內容,若是這個屬性有值,文章卡片摘要就顯示這段文字,不然程序會自動截取文章的部份內容做爲摘要 |
categories | 無 | 文章分類,本主題的分類表示宏觀上大的分類,只建議一篇文章一個分類 |
tags | 無 | 文章標籤,一篇文章能夠多個標籤 |
注意:
如下爲文章的 Front-matter
示例。
最簡示例
--- title: hello world date: 2020-02-10 08:05:00 categories: 雜文 tags: 測試 ---
最全示例
--- title: hello world date: 2020-02-10 08:05:00 author: athink_ img: /source/images/xxx.jpg top: true cover: true coverImg: /images/1.jpg password: 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92 toc: false mathjax: false summary: 這是你自定義的文章摘要內容,若是這個屬性有值,文章卡片摘要就顯示這段文字,不然程序會自動截取文章的部份內容做爲摘要 categories: 雜文 tags: 測試 ---
在主題文件的 /source/css/matery.css
文件中,搜索 .bg-color
來修改背景顏色:
/* 總體背景顏色,包括導航、移動端的導航、頁尾、標籤頁等的背景顏色. */ .bg-color { background-image: linear-gradient(to right, #4cbf30 0%, #0f9d58 100%); } /*若是想去掉banner圖的顏色漸變效果,請將如下的css屬性註釋掉或者刪除掉便可*/ @-webkit-keyframes rainbow { /* 動態切換背景顏色. */ } @keyframes rainbow { /* 動態切換背景顏色. */ }
推薦配色方案
banner 圖修改在 /layout/_partial/bg-cover-content.ejs` 文件的代碼中修改:
$('.bg-cover').css('background-image', 'url(/medias/banner/' + new Date().getDay() + '.jpg)');
在 /source/medias/featureimages
文件夾中默認有 24 張特點圖片,你能夠再增長或者減小,並須要在 _config.yml
作同步修改。
實現方法,引入js文件,在主題文件下的/source/js/
下新建FunnyTitle.js
,而後在添加到themes/matery/layout/layout.ejs
或者添加到themes/matery/layout/_partial/head.ejs
,其代碼以下:
<!--瀏覽器搞笑標題--> var OriginTitle = document.title; var titleTime; document.addEventListener('visibilitychange', function () { if (document.hidden) { $('[rel="icon"]').attr('href', "https://cdn.jsdelivr.net/gh/Yafine/cdn@2.5/source/favicon.png"); document.title = 'ヽ(●-`Д´-)ノ你要玩捉迷藏嘛'; clearTimeout(titleTime); } else { $('[rel="icon"]').attr('href', "https://cdn.jsdelivr.net/gh/Yafine/cdn@2.5/source/favicon.png"); document.title = 'ヾ(Ő∀Ő3)ノ好哦!' + OriginTitle; titleTime = setTimeout(function () { document.title = OriginTitle; }, 2000); } });
在/themes/matery/layout/_partial/head.ejs
添加下面的一行代碼:
<script src="https://sdk.jinrishici.com/v2/browser/jinrishici.js" charset="utf-8"></script>
而後再將/themes/matery/layout/_partial/bg-cover-content.ejs
中的<%= config.description %>
修改成把<%= config.description %>
改成<%- '正在加載今日詩詞....' %>
,這個使用前提是將主題配置文件的subtitle
的值改成false
。
在\layout\_widget\dream.ejs
中修改以下
<div class="dream"> <% if (theme.dream.showTitle) { %> <div class="title center-align"> <i class="fa fa-paper-plane" aria-hidden="true"></i> <%- theme.dream.title %> </div> <% } %> <div class="row"> <!-- <div class="col l8 offset-l2 m10 offset-m1 s10 offset-s1 center-align text"> <%- theme.dream.text %> </div> --> <div class="col l8 offset-l2 m10 offset-m1 s10 offset-s1 center-align text"> </div> <!-- 添加動態添加一言語錄 --> <% if (theme.dream.textUrl!=null||theme.dream.textUrl!="") { %> <script> $.ajax({ type: "Get", url: "<%- theme.dream.textUrl %>", success: function(data) { $(".text").html(data) }, error:function(){ $(".text").html(" <%- theme.dream.text %>") } }) </script> <% } %> </div> </div>
引用了 一言語錄API : https://api.uixsj.cn/hitokoto/w.php
實現方法,引入js文件,在主題文件下的/source/js/
下新建click_show_text.js
,並添加到themes/matery/layout/layout.ejs
。其代碼以下:
var a_idx = 0; jQuery(document).ready(function ($) { $("body").click(function (e) { var a = new Array("富強", "民主", "文明", "和諧", "自由", "平等", "公正", "法治", "愛國", "敬業", "誠信", "友善"); var $i = $("<span/>").text(a[a_idx]); a_idx = (a_idx + 1) % a.length; var x = e.pageX, y = e.pageY; $i.css({ "z-index": 5, "top": y - 20, "left": x, "position": "absolute", "font-weight": "bold", "color": "#FF0000" }); $("body").append($i); $i.animate({ "top": y - 180, "opacity": 0 }, 3000, function () { $i.remove(); }); }); setTimeout('delay()', 2000); }); function delay() { $(".buryit").removeAttr("onclick"); }
參考教程:傳送門
首先去中國天氣官網:https://cj.weather.com.cn/plugin/pc,配置本身的插件,選擇自定義插件—>自定義樣式——>生成代碼,而後會生成一段代碼,複製粘貼到 themes/matery/layout/layout.ejs
便可。
打開theme/matery/layout/about.ejs
文件,大約在13行。有一個``標籤,找出其對應結尾的標籤,大約在61行左右,而後在新增以下代碼:
<div class="card"> <div class="card-content"> <div class="card-content article-card-content"> <div class="title center-align" data-aos="zoom-in-up"> <i class="fa fa-address-book"></i> <%- __('我的簡歷') %> </div> <div id="articleContent" data-aos="fade-up"> <%- page.content %> </div> </div> </div> </div>
注意粘貼的位置和空格要正確,這裏的位置隨你本身設置,你也能夠把簡歷做爲第一個card,而後/source/about/index.md
下面寫上你的簡歷了(就像寫博客同樣)。
hexo-external-link是一個跳轉外鏈相關插件。自動爲全部html文件中外鏈的a標籤生成對應的屬性。 好比 設置
target=’_blank’, rel=’external nofollow noopener noreferrer’
告訴搜索引擎這是外部連接,不要將該連接計入權重。 同時自動生成外鏈跳轉頁面,默認在根目錄下 go.html;
使用 npm 或者 yarn 安裝
## npm 安裝 npm install hexo-external-link --save ## yarn 安裝 yarn add hexo-external-link
以後再hexo博客站點根目錄下添加以下配置:
hexo_external_link: enable: true enable_base64_encode: true url_param_name: 'u' html_file_name: 'go.html' target_blank: true link_rel: 'external nofollow noopener noreferrer' domain: 'your_domain' # 若是開啓了防盜鏈 safety_chain: true
hexo_external_link
插件 - 默認 falseurl
使用base64編碼
- 默認 faslehtml_file_name
的參數名 - 默認 ‘u’a
標籤添加target='_blank'
- 默認 truea
標籤的rel屬性 - 默認 ‘external nofollow noopener noreferrer’3.24 添加雪花飄落效果
在themes/matery/source/js
目錄下新建snow.js
文件,打開這個網址傳送門,將內容複製粘貼到cursor.js便可。
而後再themes/matery/layout/layout.ejs
文件內添加下面的內容:
<script src="/js/snow.js"></script>
首先在站點目錄下的source文件夾下新建aboutme
文件,文件名可自定義,而後編寫一個index.html
放入aboutme
文件夾下,而後在主題配置文件下的導航配置信息添加下面的配置:
About: url: / icon: fas fa-address-card children: - name: 關於我 url: /about icon: fas fa-user-circle - name: Another #這是新添加的,在原有配置基礎上添加 url: /aboutme icon: fa fa-user-secret
而後在站點配置文件下,找到skip_render
,在後面添加屬性,以下:
skip_render: aboutme/** # 其意思爲在對文件進行渲染時跳過aboutme文件下的全部文件
知道方法後,你能夠添加你本身想要添加的頁面,讓你的博客內容更加充實。
首先再站點根目錄下的source文件夾下新建404.md
文件,裏面內容以下:
--- title: 404 date: 2020-02-10 16:41:10 type: "404" layout: "404" description: "Oops~,我崩潰了!找不到你想要的頁面了" ---
緊接着再新建主題文件夾的layout目錄下新建404.ejs
文件,添加內容以下:
<style type="text/css"> /* don't remove. */ .about-cover { height: 90.2vh; } </style> <div class="bg-cover pd-header about-cover"> <div class="container"> <div class="row"> <div class="col s10 offset-s1 m8 offset-m2 l8 offset-l2"> <div class="brand"> <div class="title center-align"> 404 </div> <div class="description center-align"> <%= page.description %> </div> </div> </div> </div> </div> </div> <script> // 天天切換 banner 圖. Switch banner image every day. $('.bg-cover').css('background-image', 'url(https://cdn.jsdelivr.net/gh/Yafine/cdn@2.6/source/medias/banner/' + new Date().getDay() + '.jpg)'); </script>
主題默認的文章連接配置是
premalink: :year/:month/:day/:title
這種生成的連接地址很長,文章版權的連接地址會出現一大串字符編碼,一點也很差看。所以須要修改文章生成連接的格式。
首先再根目錄下執行下面的命令:
npm install hexo-abbrlink --save
而後再站點配置文件下添加以下配置:
abbrlink: alg: crc16 #算法: crc16(default) and crc32 rep: hex #進制: dec(default) and hex: dec #輸出進制:十進制和十六進制,默認爲10進制。丨dec爲十進制,hex爲十六進制
再將站點配置文件的permalink
的值修改成:
permalink: posts/:abbrlink.html # 此處能夠本身設置,也能夠直接使用 :/abbrlink
生成文章的連接格式就會是以下樣例(官方樣例):
crc16 & hex https://post.zz173.com/posts/66c8.html crc16 & dec https://post.zz173.com/posts/65535.html crc32 & hex https://post.zz173.com/posts/8ddf18fb.html crc32 & dec https://post.zz173.com/posts/1690090958.html
生成完後,原md文件的Front-matter 內會增長abbrlink
字段,值爲生成的ID 。這個字段確保了在咱們修改了Front-matter 內的博客標題title或建立日期date字段以後而不會改變連接地址。
登陸LeanCloud,建立應用,在設置中將其中APPID和APPKey複製,添加到配置文件中。
valine: enable: false # true即爲開啓評論系統 appId: #此處填寫你的appid appKey: #此處填寫你的appkey notify: false verify: false visitor: true avatar: 'mm' # Gravatar style : mm/identicon/monsterid/wavatar/retro/hide pageSize: 10 placeholder: 'just go go' # Comment Box placeholder background: https://cdn.jsdelivr.net/gh/Yafine/cdn@2.6/social/comment_bg.png
本覺得使用hexo開發博客會很複雜很難,
然而發現大多數都是寫好的,只有在配置文件上修改就行,
對於主題樣式內容等不滿意再去打開源碼修改就行,
其實只有會一點前端知識即可以對源碼大概進行你想要的定製呢,
耐心的能夠研究下主題構造也不錯呢。
今每天氣不錯!加油!!!