本篇文章繼續(xù)講解一些hexo下next主題博客樣式的修改。主要內(nèi)容為修改首頁文章摘要樣式,文章詳情樣式,以及文章閱讀次數(shù)的統(tǒng)計深入講解,酷炫的博客背景,在首頁菜單里添加的獨立的標簽頁,文章結尾的模版樣式修改。暫時想到了這么多,歡迎大家提出新的東西,等后面有空了再講新東西。
假設看這篇文章的人是沒有前端樣式調(diào)試基礎的,建議去看我上一篇文章——,看完后再繼續(xù)看這篇。
傳送門:2017年最新基于hexo搭建個人免費博客——自定義頁面樣式一 http://www.cduyzh.com/hexo-settings-3/
通過瀏覽器的開發(fā)者工具可以查看到首頁文章摘要對應的CSS 可以看到header標簽內(nèi)為文章的頭部的樣式,大家可以進行一些修改,但是基本沒什么需要改動的,大家可以自己DIY,
大家看下箭頭,修改對應的CSS樣式,進行重寫覆蓋,修改的文件路徑如下(以我自己的為例):
D:\hexo\blog\themes\next\source\css\_custom\custom.styl
修改代碼如下
// Custom styles.
//首頁文章陰影樣式
.post {
margin-top: 60px;
margin-bottom: 60px;
padding: 25px;
-webkit-box-shadow: 0 0 14px rgba(202, 203, 203, .5);
-moz-box-shadow: 0 0 14px rgba(202, 203, 204, .5);
}
主要為三個CSS樣式的修改
.post-button .btn
.post-button .btn a
.btn:hover, .post-button .btn:hover
最后一個為偽類,有時候查找元素的時候不能第一時間看到,多抓取幾次。
也可以自己在本地編輯器測試修改.btn:hover, .post-button .btn:hover樣式下的屬性,測試顯示效果就行。
默認主題下把鼠標移入按鈕時的樣式中,按鈕下方有個陰影,是主題自帶的,如果不想要可以添加對應的CSS樣式
border:none
來取消這效果,然后調(diào)整一下圓角值,居中設置,還有顏色的變化,大家自己參考下我之前發(fā)的樣式表,或自己測試。
這個樣式的修改和前面首頁那個的樣式基本一致,所以此處跳過,但是說一點 圖中框內(nèi)的圖標元素更改CSS樣式是無法更改的,我更改了字數(shù)統(tǒng)計和閱讀市場的ICON,具體做法大家可以看我以前寫過的一篇文章,要在源碼中更改CSS的值。
2017年最新基于hexo搭建個人免費博客——基本設置和了解http://www.cduyzh.com/hexo-settings-2/
最大的紅框部分的內(nèi)容都不是我編輯的文章里的,都是我更改了源代碼加入的DIV樣式標簽形成的效果,當然還可以在每一篇文章最后加入對應的代碼也可以,但是為了麻煩每次來粘貼所以我就沒去這樣做
修改文章模板文件
哪個是文章主要內(nèi)容的模板文件,對應的路徑themes\next\layout\_macro\post.swig
文章底部的代碼位置如下:
{{ content.substring(0, theme.auto_excerpt.length) }}
{% if content.length > theme.auto_excerpt.length %}...{% endif %}
<div class="post-more-link text-center">
<a class="btn" href="{{ url_for(post.path) }}{% if theme.scroll_to_more %}#more{% endif %}" rel="contents">
{{ __('post.read_more') }} »
</a>
</div>
{% else %}
{% if post.type === 'picture' %}
<a href="{{ url_for(post.path) }}">{{ post.content }}</a>
{% else %}
{{ post.content }}
{% endif %}
{% endif %}
{% else %}
{{ post.content }}
### 編輯區(qū)域
{% endif %}
那個打賞功能是主題自帶的一個參數(shù)配置,大家可以去next主題官方文檔上看。
小紅框里面的一條線,有些人覺得想換樣式,換顏色或直接去掉。 直接在.post-nav下加入一個樣式
.post-nav {
border: none;
}
再次用下這張圖,我這里面的閱讀次數(shù)是通過leanCloud,來實現(xiàn)文章閱讀量統(tǒng)計的,next主題還自帶了一個不蒜子的統(tǒng)計參數(shù)配置,相信大家用過了,在主題的配置文件里有如下代碼:
## Show PV/UV of the website/page with busuanzi.
## Get more information on http://ibruce.info/2015/04/04/busuanzi/
busuanzi_count:
# count values only if the other configs are false
enable: true
# custom uv span for the whole site
site_uv: true
site_uv_header: <i class="fa fa-user"></i> 訪問用戶:
site_uv_footer: 人
# custom pv span for the whole site
site_pv: true
site_pv_header: <i class="fa fa-eye"></i> 訪問次數(shù):
site_pv_footer: 次
# custom pv span for one page only
page_pv: false
page_pv_header: <i class="fa fa-file-o"></i> 點擊量
page_pv_footer: 次
我設置page_pv為false因為我打算用leanCloud來實現(xiàn),因為用不蒜子這個來統(tǒng)計是沒問題,但是它說了 # custom pv span for one page only意思是只顯示在文章相應這里,你在首頁是看不到閱讀次數(shù)統(tǒng)計的,對用戶體驗來說十分不好,所以打算用leanCloud,如果覺得首頁不展示閱讀次數(shù)什么的無所謂的,就可以用next主題的不蒜子插件,具體的查看官方文檔上面有寫方法。
這里講下官方文檔上沒有詳細說明的leanCloud,來實現(xiàn)文章閱讀量統(tǒng)計的方法
我現(xiàn)在版本的next主題是集成了這個插件的,并且給出了對應的參數(shù)配置
## Show number of visitors to each article.
## You can visit https://leancloud.cn get AppID and AppKey.
leancloud_visitors:
enable: true
app_id: TxBSdzFliqxOpec29xEd8pO5-gzGzoHsz
app_key: 5rH911Nhs9V7AWFjEYqe8Bz7
過程是:
1.注冊leancloud賬戶并完成驗證后登錄leanCloud的,創(chuàng)建應用并配置相關操作
2.獲取對應的AppID和AppKey
3.配置相應參數(shù)完成閱讀文章的數(shù)量的統(tǒng)計
過程省略...沒啥好說的
我之前已經(jīng)創(chuàng)建好了一個Class名為Counter,創(chuàng)建成功就會出來了。
設置主題配置文件
設置主題配置文件_config.yml相關字段,實現(xiàn)閱讀數(shù)量的統(tǒng)計 添加以下字段
leancloud_visitors:
enable: true
app_id: #你的App ID
app_key: #你的的App Key
完成配置并重新編譯。
通過在本地服務器測試是看不到閱讀次數(shù)的統(tǒng)計的,所以要發(fā)布到網(wǎng)上查看才行。
背景的幾何線條是采用的nest效果,一個基于html5
canvas繪制的網(wǎng)頁背景效果,非常贊!來自github的開源項目canvas-nest 特性
不依賴任何框架或者內(nèi)庫,比如不依賴jQuery,使用原生的javascript。
非常小,只有1.66kb,如果開啟gzip,可以更小。
非常容易實現(xiàn),配置簡單,即使你不是web開發(fā)者,也能簡單搞定。
使用非常簡單
color: 線條顏色, 默認: ‘0,0,0’ ;三個數(shù)字分別為(R,G,B),注意用,分割 opacity: 線條透明度(0~1), 默認: 0.5 count: 線條的總數(shù)量, 默認: 150 zIndex: 背景的z-index屬性,css屬性用于控制所在層的位置, 默認: -1
next/layout/_layout.swig
,在body標簽之前添加如下代碼:
{% if theme.canvas_nest %}
<script type="text/javascript" src="http://cdn.bootcss.com/canvas-nest.js/1.0.0/canvas-nest.min.js" rel="external nofollow" ></script>
{% endif %}
打開next/_config.yml
,添加以下代碼:
## Canvas-nest
canvas_nest: true
如果是最新的next主題是集成了這段代碼的,如果沒手動添加,有就設置為true
### 完成
重新編譯配置后,在本地測試就能看到效果了。
標題的意思大概是文章列表實現(xiàn) 效果如圖:
1、修改HEXO POST模板,添加categories。以后的文章將會以此作為模板新增。
2、新增一文章,并修改分類屬性。分類屬性如果被設置,在HEXO編譯會生成對應分類目錄
3、修改主題配置文件(config.yml),添加MENU分類字段 ,導航欄顯示分類鏈接
4、假定為中文網(wǎng)站,修改主題目錄下的語言配置文件(zh-Hans.yml) .導航欄鏈接顯示中文
添加categories
在你的HEXO根目錄下,找到文件夾scaffolds
,此文件夾下定義創(chuàng)建文章的基本模型,你可以修改此模板
實現(xiàn)每次進行HEXO NEW 文章名,文章會以您的模板進行對應配置屬性創(chuàng)建。這里我們主要是新增categories
字段,讓每次新增文章都會打上此屬性字段。
scaffolds
里有三個文件分別對應草稿、頁面、文章,建議都加上如下代碼:
---
title: {{ title }}
date: {{ date }}
tags:
categories:
---
新增一文章,并修改分類屬性 新建文章后如: hexo new 你的文章名,并打開您的文章,在categories寫上你的分類名字, 此操作后并保存文檔,在你進行hexo g編譯的時候會在你的PUBLIC目錄下的 categories下建立以你分類名字命名的 文件夾, 以后的鏈接將定向到此文件夾。(本文的測試分類名為:life 中文名生活)
修改代碼大概如下,參考下就行了。
menu:
home: /
categories: /categories
about: /about
archives: /archives
tags: /tags
#commonweal: /404.html
#sitemap: /sitemap.xml
life: /categories/life
technology: /categories/technology
路徑為themes\next\languages
文件為zh-Hans.yml
修改代碼如下
menu:
home: 首頁
archives: 歸檔
categories: 分類
tags: 標簽
about: 關于
search: 搜索
schedule: 日程表
sitemap: 站點地圖
commonweal: 公益404
life: 生活
technology: 技術
重新編譯預覽下效果。
這篇寫了不少小技巧,都是平時總結的,當然還有一些沒講到的點,如果有疑問的可以在下面評論說,我會在后面的文章提及。
更多建議: