GitHub page提供了免費的服務搭建javascript
(若是已擁有GitHub帳號 無需從新註冊) css
點擊sign in 頁面的Create an accounthtml
註冊頁面信息填寫: java
註冊完成以後直接登陸node
本地安裝nodejs環境,此處就不在詳細介紹安裝了。react
爲了把本地的網頁文件上傳到github上面去,咱們須要用到分佈式版本控制工具————Git[下載地址]。git
安裝選項仍是所有默認,只不過最後一步添加路徑時選擇Use Git from the Windows Command Prompt
,這樣咱們就能夠直接在命令提示符裏打開git了。github
安裝完成後在命令提示符中輸入git --version
驗證是否安裝成功。shell
window須要安裝git bash或者其餘工具來支持git命令的使用npm
接下來就是去GitHub上註冊一個git page來存放咱們的博客靜態頁面
點擊新增項目
打開新增頁面
填寫新增信息。
填寫注意事項:
建立完成會自動生成https://gongchenghuigch.githu... 這樣的訪問地址
Repository那麼必定要按規則填寫 否則後期會出現博客代碼提交不上去的問題
若是你的這個page地址已佔用看是否能把它遷移到別的page下面
在本地代碼push是須要你的GitHub權限,可是直接使用用戶名和密碼太不安全了,因此咱們使用ssh key來解決本地和服務器的鏈接問題。
ssh-keygen -t rsa -C "郵箱地址"
若是本地目錄下面已存在 直接覆蓋原有的就能夠
setting>SSH and GPG keys>New SSH key
copy本地剛剛生成的.ssh/id_rsa.pub裏面的所有內容
每一個人生成的目錄地址多是不同的,能夠在ssh生成的時候看到你本地的生成地址
ssh -T git@github.com # 注意郵箱地址不用改
若是提示Are you sure you want to continue connecting (yes/no)?
,輸入yes,而後會看到:
Hi gongchenghuigch! You've successfully authenticated, but GitHub does not provide shell access.
看到這個信息說明SSH已配置成功
git config --global user.name "xxx"// 你的github用戶名,非暱稱 git config --global user.email "xxx@163.com"// 填寫你的github註冊郵箱
Hexo 是一個快速、簡潔且高效的博客框架。Hexo 使用 Markdown(或其餘渲染引擎)解析文章,在幾秒內,便可利用靚麗的主題生成靜態網頁。
因爲github pages存放的都是靜態文件,博客存放的不僅是文章內容,還有文章列表、分類、標籤、翻頁等動態內容,假如每次寫完一篇文章都要手動更新博文目錄和相關連接信息,相信誰都會瘋掉,因此hexo所作的就是將這些md文件都放在本地,每次寫完文章後調用寫好的命令來批量完成相關頁面的生成,而後再將有改動的頁面提交到github。
npm install -g hexo-cli
在你電腦找一個文件目錄下執行
$ hexo init <folder> $ cd <folder> $ npm install
執行完成會出現如下的目錄結構:
. ├── _config.yml ├── package.json ├── scaffolds ├── source | ├── _drafts | └── _posts └── themes
_config.yml網站的 配置 信息,您能夠在此配置大部分的參數。
hexo server 或者 hexo s
瀏覽器窗口訪問http://localhost:4000 會出現如下頁面:
這個是默認主題 比較醜陋;下面會介紹一些我的比較喜歡的主題。
配置_config.yml
中有關deploy的部分:
deploy: type: git repository: git@github.com:gongchenghuigch/gongchenghuigch.github.io.git branch: master
注意:
repository不要寫成git clone的https的地址
錯誤寫法:
deploy: type: git repository: https://github.com/gongchenghuigch/gongchenghuigch.github.io.git branch: master
配置完以後直接執行命令:
hexo d
執行完命名以後會在本地生成public打包的靜態文件和.deploy_git提交git的編譯以後的靜態文件
public和.deploy_git下編譯的靜態文件以下:
若是在開發過程當中想看的編譯的靜態文件直接執行命令:
hexo generate
注意:
在發佈時若是本地已存在public須要執行hexo clean或者手動刪除public目錄,否則不會提交最新代碼
hexo new page test
hexo會建立source/test/index.md
hexo new page --path _posts/text "測試頁面"
hexo會建立source/_posts/text.md同時頁面title爲「測試頁面」
我的比較喜歡的主題是hexo-theme-matery,下面也都是基於這個主題的一些配置
項目下面執行
git clone https://github.com/blinkfox/hexo-theme-matery.git themes/matery
更換根目錄下的_config.yml配置文件中的theme參數
## Plugins: https://hexo.io/plugins/ ## Themes: https://hexo.io/themes/ theme: matery
修改爲你剛剛clone到本地要更換的主題
將/scaffolds/post.md
修改成以下代碼:
--- title: {{ title }} date: {{ date }} top: false cover: false password: summary: tags: categories: ---
效果示例:
--- title: TypeScript聲明文件 date: 2019-09-05 10:29:29 categories: - TypeScript tags: - TypeScript ---
根目錄_config.yml配置
title: gongchenghui subtitle: 淺夏晴空 description: 北冥有魚,其名爲鯤,鯤之大,不知其幾千裏也; 化而爲鳥,其名爲鵬. keywords: gongchenghui,github author: 淺夏晴空 language: zh-CN timezone:
主題配置themes/matery/_config.yml
menu: 主頁: url: / icon: fa-home 標籤: url: /tags icon: fa-tags 分類: url: /categories icon: fa-bookmark 工具: url: /friends icon: fa-rocket 歸檔: url: /archives icon: fa-archive 關於: url: /about icon: fa-user-circle-o
效果:
頁面文章標籤配置:
--- title: nvm版本管理 date: 2019-09-05 10:29:29 tags: - nodejs - npm - nvm ---
在每一個md文件的頭部添加tags標籤屬性, 標籤下面能夠寫任意的標籤value值;
文章裏面展現效果以下(左側):
導航上配置完標籤以後須要在本地新建標籤的目錄
hexo new page tags
切換到標籤頁展現以下:
點擊每一個標籤都能篩選出該標籤下對應的文章。
文章分類配置:
--- title: nvm版本管理 date: 2019-09-05 10:29:29 categories: - nodejs ---
文章內部展現效果以下(右側):
導航上配置完分類以後須要在本地新建分類的目錄
hexo new page categories
切換到分類頁展現以下:
原來的主題沒有404頁面,首先在/source/
目錄下新建一個404.md
,內容以下:
--- title: 404 date: 2017-07-19 16:41:10 type: "404" layout: "404" description: "你訪問的頁面被外星人叼走了 :(" ---
而後在/themes/matery/layout/
目錄下新建一個404.ejs
文件,內容以下:
<style type="text/css"> /* don't remove. */ .about-cover { height: 75vh; } </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(/medias/banner/' + new Date().getDay() + '.jpg)'); </script>
效果以下:
修改/themes/matery/layout/_partial/footer.ejs
文件,在最後加上
<script language = javascript > function siteTime() { window.setTimeout("siteTime()", 1000); var seconds = 1000; var minutes = seconds * 60; var hours = minutes * 60; var days = hours * 24; var years = days * 365; var today = new Date(); var todayYear = today.getFullYear(); var todayMonth = today.getMonth() + 1; var todayDate = today.getDate(); var todayHour = today.getHours(); var todayMinute = today.getMinutes(); var todaySecond = today.getSeconds(); var t1 = Date.UTC(2018, 08, 11, 00, 00, 00); //北京時間2018-2-13 00:00:00 var t2 = Date.UTC(todayYear, todayMonth, todayDate, todayHour, todayMinute, todaySecond); var diff = t2 - t1; var diffYears = Math.floor(diff / years); var diffDays = Math.floor((diff / days) - diffYears * 365); var diffHours = Math.floor((diff - (diffYears * 365 + diffDays) * days) / hours); var diffMinutes = Math.floor((diff - (diffYears * 365 + diffDays) * days - diffHours * hours) / minutes); var diffSeconds = Math.floor((diff - (diffYears * 365 + diffDays) * days - diffHours * hours - diffMinutes * minutes) / seconds); document.getElementById("sitetime").innerHTML = "本站已運行 " +diffYears+" 年 "+diffDays + " 天 " + diffHours + " 小時 " + diffMinutes + " 分鐘 " + diffSeconds + " 秒"; } siteTime(); </script>
而後在適當位置加上一下代碼
<span id="sitetime"></span>
如:
<div class="col s12 m8 l8 copy-right"> <span id="sitetime"></span> <br> 本站由©<a href="https://gongchenghuigch.github.io/" target="_blank">gongchenghui</a>基於 <a href="https://hexo.io/" target="_blank">Hexo</a> 的 <a href="https://github.com/blinkfox/hexo-theme-matery" target="_blank">hexo-theme-matery</a>主題搭建.
先看看添加卡通人物以後的效果:
😯😲
安裝插件
npm install --save hexo-helper-live2d
安裝下載動畫人物庫 如:
npm install live2d-widget-model-z16 -D
根目錄_config.yml配置裏面添加:
live2d: enable: true scriptFrom: local pluginRootPath: live2dw/ pluginJsPath: lib/ pluginModelPath: assets/ tagMode: false log: false model: use: live2d-widget-model-z16 display: position: right width: 150 height: 300 mobile: show: true react: opacity: 0.7
動畫庫的樣式示例:
Epsilon2.1
Gantzert_Felixander:
ni-j:
nico:
shizuku:
z16:
動漫人物只好不要和不蒜子一塊兒使用,否則不蒜子會顯示不出來。
如何在文章裏面插入音樂呢?
打開網易雲音樂網頁版,找到你本身想聽的音樂
點擊生成外連接:
而後把裏面的HTML代碼複製到你的文章裏面就能夠了。
安裝搜索插件:
npm install hexo-generator-search --save
根目錄_config.yml配置:
search: path: search.xml field: post