美文网首页实用技能github博客前端
2017年最新基于hexo搭建个人免费博客——自定义页面样式二

2017年最新基于hexo搭建个人免费博客——自定义页面样式二

作者: cduyzh | 来源:发表于2017-03-20 13:02 被阅读245次
    2017年最新基于hexo搭建个人免费博客——自定义页面样式

    前言

    本篇文章继续讲解一些hexo下next主题博客样式的修改。主要内容为修改首页文章摘要样式,文章详情样式,以及文章阅读次数的统计深入讲解,酷炫的博客背景,在首页菜单里添加的独立的标签页,文章结尾的模版样式修改。暂时想到了这么多,欢迎大家提出新的东西,等后面有空了再讲新东西。

    首页文章摘要样式修改

    准备

    假设看这篇文章的人是没有前端样式调试基础的,建议去看我上一篇文章——,看完后再继续看这篇。

    传送门:2017年最新基于hexo搭建个人免费博客——自定义页面样式一 http://www.cduyzh.com/hexo-settings-3/

    查看对应样式

    查看对应样式
    通过浏览器的开发者工具可以查看到首页文章摘要对应的CSS
    可以看到header标签内为文章的头部的样式,大家可以进行一些修改,但是基本没什么需要改动的,大家可以自己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来取消这效果,然后调整一下圆角值,居中设置,还有颜色的变化,大家自己参考下我之前发的样式表,或自己测试。

    文章详情样式修改

    文章详情头部样式

    这个样式的修改和前面首页那个的样式基本一致,所以此处跳过,但是说一点


    文章详情头部样式

    图中框内的图标元素更改CSS样式是无法更改的,我更改了字数统计和阅读市场的ICON,具体做法大家可以看我以前写过的一篇文章,要在源码中更改CSS的值。

    2017年最新基于hexo搭建个人免费博客——基本设置和了解http://www.cduyzh.com/hexo-settings-2/

    文章相应底部样式修改

    文章相应底部样式修改

    最大的红框部分的内容都不是我编辑的文章里的,都是我更改了源代码加入的DIV样式标签形成的效果,当然还可以在每一篇文章最后加入对应的代码也可以,但是为了麻烦每次来粘贴所以我就没去这样做

    思路

    修改文章模板文件
    哪个是文章主要内容的模板文件,对应的路径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 }}
            
    ### 编辑区域
            
          {% endif  %}
    

    那个打赏功能是主题自带的一个参数配置,大家可以去next主题官方文档上看。

    文章底部的横线样式修改

    文章底部的横线样式修改

    小红框里面的一条线,有些人觉得想换样式,换颜色或直接去掉。
    直接在.post-nav下加入一个样式

    .post-nav {
        border: none;
    }
    

    文章阅读次数的统计深入讲解

    对比分析方法

    文章详情头部样式

    再次用下这张图,我这里面的阅读次数是通过leanCloud,来实现文章阅读量统计的,next主题还自带了一个不蒜子的统计参数配置,相信大家用过了,在主题的配置文件里有如下代码:

    # 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> 访问次数:
      site_pv_footer: 次
      # custom pv span for one page only
      page_pv: false
      page_pv_header: <i class="fa fa-file-o"></i>&nbsp点击量 
      page_pv_footer: 次
    

    我设置page_pv为false因为我打算用leanCloud来实现,因为用不蒜子这个来统计是没问题,但是它说了 # custom pv span for one page only意思是只显示在文章相应这里,你在首页是看不到阅读次数统计的,对用户体验来说十分不好,所以打算用leanCloud,如果觉得首页不展示阅读次数什么的无所谓的,就可以用next主题的不蒜子插件,具体的查看官方文档上面有写方法。


    这里讲下官方文档上没有详细说明的leanCloud,来实现文章阅读量统计的方法

    leanCloud来实现阅读统计

    我现在版本的next主题是集成了这个插件的,并且给出了对应的参数配置

    # 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的,创建应用并配置相关操作
    2.获取对应的AppID和AppKey
    3.配置相应参数完成阅读文章的数量的统计

    注册账户

    过程省略...没啥好说的

    创建一个应用

    leanCloud来实现阅读统计

    进入应用创建Class

    leanCloud来实现阅读统计

    我之前已经创建好了一个Class名为Counter,创建成功就会出来了。

    获取AppID和AppKey

    leanCloud来实现阅读统计

    设置主题配置文件

    设置主题配置文件_config.yml相关字段,实现阅读数量的统计
    添加以下字段

    leancloud_visitors:
      enable: true
      app_id: #你的App ID
      app_key: #你的的App Key
    

    完成配置并重新编译。

    通过在本地服务器测试是看不到阅读次数的统计的,所以要发布到网上查看才行。


    酷炫的博客背景

    添加背景特效

    背景的几何线条是采用的nest效果,一个基于html5
    canvas绘制的网页背景效果,非常赞!来自github的开源项目canvas-nest 特性

        不依赖任何框架或者内库,比如不依赖jQuery,使用原生的javascript。
        非常小,只有1.66kb,如果开启gzip,可以更小。
        非常容易实现,配置简单,即使你不是web开发者,也能简单搞定。
    

    使用非常简单

    color: 线条颜色, 默认: ‘0,0,0’ ;三个数字分别为(R,G,B),注意用,分割
    opacity: 线条透明度(0~1), 默认: 0.5
    count: 线条的总数量, 默认: 150
    zIndex: 背景的z-index属性,css属性用于控制所在层的位置, 默认: -1
    

    添加修改代码

    next/layout/_layout.swig,在body标签之前添加如下代码:

    {% if theme.canvas_nest %}
    <script type="text/javascript" src="//cdn.bootcss.com/canvas-nest.js/1.0.0/canvas-nest.min.js"></script>
    {% endif %}
    

    打开next/_config.yml,添加以下代码:

    # Canvas-nest
    canvas_nest: true
    

    如果是最新的next主题是集成了这段代码的,如果没手动添加,有就设置为true

    完成

    重新编译配置后,在本地测试就能看到效果了。

    在首页菜单里添加的独立的标签页

    标题的意思大概是文章列表实现
    效果如图:

    文章列表实现

    实现过程思想

    1、修改HEXO POST模板,添加categories。以后的文章将会以此作为模板新增。
    2、新增一文章,并修改分类属性。分类属性如果被设置,在HEXO编译会生成对应分类目录
    3、修改主题配置文件(config.yml),添加MENU分类字段 ,导航栏显示分类链接
    4、假定为中文网站,修改主题目录下的语言配置文件(zh-Hans.yml) .导航栏链接显示中文

    修改HEXO POST模板

    添加categories
    在你的HEXO根目录下,找到文件夹scaffolds,此文件夹下定义创建文章的基本模型,你可以修改此模板
    实现每次进行HEXO NEW 文章名,文章会以您的模板进行对应配置属性创建。这里我们主要是新增categories
    字段,让每次新增文章都会打上此属性字段。
    scaffolds里有三个文件分别对应草稿、页面、文章,建议都加上如下代码:

    ---
    title: {{ title }}
    date: {{ date }}
    tags:
    categories:
    ---
    

    新增一文章,并修改分类属性
    新建文章后如: hexo new 你的文章名,并打开您的文章,在categories写上你的分类名字,
    此操作后并保存文档,在你进行hexo g编译的时候会在你的PUBLIC目录下的 categories下建立以你分类名字命名的
    文件夹,
    以后的链接将定向到此文件夹。(本文的测试分类名为:life 中文名生活)

    修改主题配置文件添加MENU分类字段

    修改代码大概如下,参考下就行了。

    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: 技术
    

    完成

    重新编译预览下效果。

    总结

    这篇写了不少小技巧,都是平时总结的,当然还有一些没讲到的点,如果有疑问的可以在下面评论说,我会在后面的文章提及。

    相关文章

      网友评论

      • 安靜丶_592b:博主,按照你博客中添加背景特效 canvas-nest,修改了next/layout/_layout.swig和next/_config.yml两个文件 运行时并没有效果,是我哪里写错了吗
        安靜丶_592b:@cduyzh 放在body之间就可以了
        cduyzh:@安靜丶_592b 请参考下文档 这个的配置可能变了 我的版本和最新的不一样

      本文标题:2017年最新基于hexo搭建个人免费博客——自定义页面样式二

      本文链接:https://www.haomeiwen.com/subject/jgwbnttx.html