利用github pages与jekyll搭建个人博客(二)

利用github pages与jekyll搭建个人博客(一):基础环境配置与博客搭建
利用github pages与jekyll搭建个人博客(二):添加分页功能以及安装Grunt
查看github上源码
github博客地址

2.1开启分页功能

在_posts目录下文件比较多的情况下,一页展示完全不合理,这时,就需要用到分页功能。

jekyll的分页功能很简单,在index.html文件中,将代码改写成

 {% for post in paginator.posts %}
    <li class="article__item">
        <a class="article__title" href="{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a>
    <span class="article__date">{{ post.date | date_to_string }} </span>
    </li>
{% endfor %}

保存文件,看运行结果,显示有报错的,原因是没有引入改插件

index页面使用了分页功能,但是我引用安装该插件

首先是安装该插件:

sudo gem install jekyll-paginate

然后打开_config.yml,修改代码

# Gems
gems: 
 - jekyll-feed //这个是原来就有的
 - jekyll-paginate
#gems也可以这样写
#gems: [jekyll-feed, jekyll-paginate]
paginate: 10  
paginate_path: "page:num" 

再打开Gemfile文件

Gemfile

将刚才安装的jekyll-paginate进行添加:

# If you have any plugins, put them here!
group :jekyll_plugins do
   gem "jekyll-feed", "~> 0.6"
   gem "jekyll-paginate", "~> 1.1.0"
end

保存文件之后重启服务

jekyll serve

只有分页显示还不够,还得有上一页下一页之类的链接跳转

在Index.html中添加代码:

{% if paginator.total_pages > 1 %}
  <!-- 分页代码 -->

  {% if paginator.previous_page %}
    <a href="{{ paginator.previous_page_path | prepend: site.baseurl | replace: '//', '/' }}"上一页</a>
  {% endif %}

  {% for page in (1..paginator.total_pages) %}
    {% if page == paginator.page %}
      <span class="active">{{ page }}</span>
    {% elsif page == 1 %}
      <a href="{{ '/index.html' | prepend: site.baseurl | replace: '//', '/' }}">{{ page }}</a>
    {% else %}
      <a href="{{ site.paginate_path | prepend: site.baseurl | replace: '//', '/' | replace: ':num', page }}">{{ page }}</a>
    {% endif %}
  {% endfor %}

  {% if paginator.next_page %}
    <a href="{{ paginator.next_page_path | prepend: site.baseurl | replace: '//', '/' }}">下一页</a>
  {% endif %}
{% endif %}

保存文件,刷新页面将会看到文章分页功能已经实现了,之后要做的就是完善分页样式了。

分页功能已经实现

2.2添加Grunt

可参考Grunt安装与环境配置
或者跟我一步步做

1.全局安装grunt

npm install -g grunt-cli

2.进入博客目录,生成package.json

npm init

3.目录下安装grunt

npm install grunt --save-dev

4.安装需要的插件,这里根据个人需要来安装插件

npm install grunt-contrib-sass --save-dev

5.配置Gruntfile.js
在根目录下创建Gruntfile.js文件

/**
 * Created by wangmengfei on 16-12-21.
 *动态数据标签和ejs模板类似 <%= %>
 */

module.exports = function(grunt) {
    grunt.initConfig({
        //读取package.json文件信息
        pkg:grunt.file.readJSON('package.json'),

        sass:{
            dist:{
                options:{
                    sourceMap: false,
                    style: 'expanded'
                },
                files:[{
                    expand:true,
                    cwd:'_sass',
                    src:['*.scss','*.sass'],
                    dest:'css',
                    ext:'.css'
                }]
            }
        }

        //注解:
        //cwd: '', 指向的目录是相对的,全称Change Working Directory更改工作目录
        //src: ['**'], 指向源文件,**是一个通配符,用来匹配Grunt任何文件
        //dest: 'images', 用来输出结果任务
        //expand: true expand参数为true来启用动态扩展,涉及到多个文件处理需要开启
    });
    // 加载任务插件
    grunt.loadNpmTasks('grunt-contrib-sass');


    // 默认被执行的任务列表。
    grunt.registerTask('default',['sass']);
};

6.创建_sass文件夹,编写scss代码

//test.scss文件
@import './testb.scss';
.test{
  &__red{
    color:red;
  }
  &__green{
    color:green;
  }
}

//testb.scss文件
.test{
  &_red{
    color: red;
  }
}

7.保存文件,编译scss

grunt

8.在目录下可以看到编译之后的css文件,说明可以正常运行。

// 编译后的test.css文件
.testb_red {
 color: red;
}

.test__red {
 color: red;
}
.test__green {
 color: green;
}

/*# sourceMappingURL=test.css.map */

现在,就可以使用scss来编写css文件啦。当然,其他的插件也是一样的,需要的移步Grunt安装与环境配置,这里有更详细的插件和配置信息。

9.根目录下现在有目录node_modules,git上传的时候并不需要它,因此,在根目录下创建文件.gitignore,将目录node_modules写在.gitignore文件中

.gitignore文件

2.3 grunt watch自动编译改动的文件

在完成2.2步之后,_sass目录下的文件改动后,需要grunt一下进行编译,然后再运行jekyll serve,改动后的样式才会显示到页面上,但是这样很麻烦,能不能像jekyll serve一样,改动之后直接编译运行呢?办法是有的,就是使用grunt的watch功能。

首先要安装这个插件

npm install grunt-contrib-watch --save-dev

安装完成之后修改Gruntfile.js文件

/**
 * Created by wangmengfei on 16-12-21.
 *动态数据标签和ejs模板类似 <%= %>
 */

module.exports = function(grunt) {
    grunt.initConfig({
        //读取package.json文件信息
        pkg:grunt.file.readJSON('package.json'),

        sass:{
            dist:{
                options:{
                    sourceMap: false,
                    style: 'expanded'
                },
                files:[{
                    expand:true,
                    cwd:'_sass',
                    src:['*.scss','*.sass'],
                    dest:'css',
                    ext:'.css'
                }]
            }
        },
        // watch部分为新增内容
        watch:{
            start:{
                files: ['_sass/*.scss'],
                tasks: ["sass"]
            }
        }

        //注解:
        //cwd: '', 指向的目录是相对的,全称Change Working Directory更改工作目录
        //src: ['**'], 指向源文件,**是一个通配符,用来匹配Grunt任何文件
        //dest: 'images', 用来输出结果任务
        //expand: true expand参数为true来启用动态扩展,涉及到多个文件处理需要开启
    });
    // 加载任务插件
    grunt.loadNpmTasks('grunt-contrib-sass');
    grunt.loadNpmTasks('grunt-contrib-watch');// 加载任务插件


    // 默认被执行的任务列表。
    grunt.registerTask('default',['sass']);
};

修改完成之后运行grunt watch,现在,一旦修改了_sass目录下的scss文件,就会自动编译啦,另外再运行jekyll serve,文件一旦有改动就会重新编译刷新网站内容啦。

利用github pages与jekyll搭建个人博客(一):基础环境配置与博客搭建
利用github pages与jekyll搭建个人博客(二):添加分页功能以及安装Grunt
查看github上源码
github博客地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,802评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,109评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,683评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,458评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,452评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,505评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,901评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,550评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,763评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,556评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,629评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,330评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,898评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,897评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,140评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,807评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,339评论 2 342

推荐阅读更多精彩内容