Class: Jekyll::IssueMentions

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = Hash.new) ⇒ IssueMentions

Returns a new instance of IssueMentions.



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

def initialize(config = Hash.new)
  validate_config!(config)
  @filter = HTML::Pipeline::IssueMentionFilter.new(nil, base_url: base_url, issueid_pattern: issueid_pattern)
end

Instance Attribute Details

#base_urlObject (readonly)

Returns the value of attribute base_url.



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

def base_url
  @base_url
end

#issueid_patternObject (readonly)

Returns the value of attribute issueid_pattern.



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

def issueid_pattern
  @issueid_pattern
end

Instance Method Details

#generate(site) ⇒ Object



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

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)


26
27
28
# File 'lib/jekyll-issue-mentions.rb', line 26

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

#mentionify(page) ⇒ Object



21
22
23
24
# File 'lib/jekyll-issue-mentions.rb', line 21

def mentionify(page)
  return unless page.content.include?('#')
  page.content = @filter.mention_link_filter(page.content, @filter.base_url, @filter.issueid_pattern)
end