Class: Octodmin::Site

Inherits:
Object
  • Object
show all
Defined in:
lib/octodmin/site.rb

Constant Summary collapse

DEFAULT_CONFIG =
{
  "octodmin" => {
    "transliterate" => "latin",
    "front_matter" => {
      "layout" => {
        "type" => "text",
      },
      "title" => {
        "type" => "text",
      },
      "slug" => {
        "type" => "text",
      },
      "date" => {
        "type" => "text",
      },
    },
  },
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSite

Returns a new instance of Site.



25
26
27
# File 'lib/octodmin/site.rb', line 25

def initialize
  @site = Jekyll::Site.new(Jekyll.configuration)
end

Instance Attribute Details

#siteObject

Returns the value of attribute site.



3
4
5
# File 'lib/octodmin/site.rb', line 3

def site
  @site
end

Instance Method Details

#configObject



33
34
35
# File 'lib/octodmin/site.rb', line 33

def config
  @config ||= Jekyll::Utils.deep_merge_hashes(DEFAULT_CONFIG, @site.config)
end

#postsObject



41
42
43
44
45
# File 'lib/octodmin/site.rb', line 41

def posts
  reset
  @site.read
  @site.posts.sort_by(&:date).last(20).reverse.map { |post| Post.new(self, post) }
end

#processObject



57
58
59
# File 'lib/octodmin/site.rb', line 57

def process
  @site.process
end

#resetObject



47
48
49
50
51
# File 'lib/octodmin/site.rb', line 47

def reset
  @status = nil
  @site.reset
  self
end

#serializable_hashObject



37
38
39
# File 'lib/octodmin/site.rb', line 37

def serializable_hash
  config
end

#sourceObject



29
30
31
# File 'lib/octodmin/site.rb', line 29

def source
  @site.source
end

#statusObject



53
54
55
# File 'lib/octodmin/site.rb', line 53

def status
  @status ||= Git.open(Octodmin::App.dir).status
end