Class: Jekyll::CommitMentions

Inherits:
Generator
  • Object
show all
Defined in:
lib/jekyll-commit-mentions.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = Hash.new) ⇒ CommitMentions

Returns a new instance of CommitMentions.



10
11
12
# File 'lib/jekyll-commit-mentions.rb', line 10

def initialize(config = Hash.new)
  validate_config!(config)
end

Instance Attribute Details

#base_urlObject (readonly)

Returns the value of attribute base_url.



8
9
10
# File 'lib/jekyll-commit-mentions.rb', line 8

def base_url
  @base_url
end

Instance Method Details

#generate(site) ⇒ Object



14
15
16
17
18
# File 'lib/jekyll-commit-mentions.rb', line 14

def generate(site)
  site.pages.each { |page| mentionify page if html_page?(page) }
  site.posts.each { |post| mentionify post }
  site.docs_to_write.each { |doc| mentionify doc }
end

#html_page?(page) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/jekyll-commit-mentions.rb', line 30

def html_page?(page)
  page.html? || page.url.end_with?('/')
end

#mentionify(page) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/jekyll-commit-mentions.rb', line 20

def mentionify(page)
  @filter = HTML::Pipeline::CommitMentionFilter.new(page.content, {:base_url => base_url})
  page.content = @filter.call.to_s.
    gsub(">", ">").
    gsub("&lt;", "<").
    gsub("%7B", "{").
    gsub("%20", " ").
    gsub("%7D", "}")
end