Class: Jekyll::SeoTag::AuthorDrop

Inherits:
Drops::Drop
  • Object
show all
Defined in:
lib/jekyll-seo-tag/author_drop.rb

Overview

A drop representing the current page's author

Author name will be pulled from:

  1. The page's `author` key

  2. The first author in the page's `authors` key

  3. The `author` key in the site config

If the result from the name search is a string, we'll also check for additional author metadata in `site.data.authors`

Instance Method Summary collapse

Constructor Details

#initialize(page: nil, site: nil) ⇒ AuthorDrop

Initialize a new AuthorDrop

page - The page hash (e.g., Page#to_liquid) site - The Jekyll::Drops::SiteDrop

Raises:

  • (ArgumentError)

20
21
22
23
24
25
26
# File 'lib/jekyll-seo-tag/author_drop.rb', line 20

def initialize(page: nil, site: nil)
  raise ArgumentError unless page && site

  @mutations = {}
  @page = page
  @site = site
end

Instance Method Details

#nameObject Also known as: to_s

AuthorDrop#to_s should return name, allowing the author drop to safely replace `page.author`, if necessary, and remain backwards compatible


30
31
32
# File 'lib/jekyll-seo-tag/author_drop.rb', line 30

def name
  author_hash["name"]
end

#twitterObject


35
36
37
38
39
40
# File 'lib/jekyll-seo-tag/author_drop.rb', line 35

def twitter
  return @twitter if defined? @twitter

  twitter = author_hash["twitter"] || author_hash["name"]
  @twitter = twitter.is_a?(String) ? twitter.sub(%r!^@!, "") : nil
end