中间人博客 - 自定义排序

时间:2014-10-25 04:04:46

标签: ruby middleman

我有兴趣使用中间人作为网站来组织在线课程,因此我想修改中间人的博客系统按日期对博客文章进行排序的方式。我想根据章节编号和课程编号进行排序。

因此,不是先放置最新的帖子,而是首先放置第1章 - 第1课,等等。我现在可以通过颠倒每个帖子的日期顺序以一种黑客的方式做到这一点。

有没有一种简单的方法来修改它的后期排序方法?如果没有,有没有办法像Rail的初始化文件那样覆盖这个?

谢谢!

1 个答案:

答案 0 :(得分:1)

  1. 通过Frontmatter提供章节和课程编号。
  2. 使用Ruby sort_by接受一系列字段进行排序的能力。
  3. 这里有一些代码供您理解我的意思:

    pages = [
      {
        chapter: 2,
        lesson:  1
      },
      {
        chapter: 1,
        lesson:  2
      },
      {
        chapter: 2,
        lesson:  2
      },
      {
        chapter: 1,
        lesson:  1
      }  
    ]
    
    pages.sort_by { |page|
      [
        page[:chapter], 
        page[:lesson]
      ]
    }
    
    # => [
    #      {"chapter"=>1, "lesson"=>1},
    #      {"chapter"=>1, "lesson"=>2},
    #      {"chapter"=>2, "lesson"=>1},
    #      {"chapter"=>2, "lesson"=>2}
    #    ] 
    

    现场演示:http://rubyfiddle.com/riddles/29e55