Module: Octopress::Social::Facebook

Extended by:
Facebook
Included in:
Facebook
Defined in:
lib/octopress-social/facebook.rb

Defined Under Namespace

Classes: Tag

Constant Summary collapse

DEFAULTS =
{
  'profile_id'        => nil,
  'app_id'            => nil,
  'layout'            => 'button',
  'action'            => 'like',
  'show_faces'        => false,
  'share'             => false,
  'colorscheme'       => 'light',
  'kid_directed_site' => false,
  'comment_count'     => 5,
  'share_link_text'   => 'Facebook',
  'profile_link_text' => 'Friend me on Facebook'
}

Instance Method Summary collapse

Instance Method Details

#config(site = nil) ⇒ Object



20
21
22
# File 'lib/octopress-social/facebook.rb', line 20

def config(site=nil)
  @config ||= DEFAULTS.merge(site['facebook'] || {})
end

#facebook_comments(site, item) ⇒ Object



97
98
99
100
101
102
103
# File 'lib/octopress-social/facebook.rb', line 97

def facebook_comments(site, item)
  %Q{<div class="fb-comments" 
  data-href="#{Social.full_url(site, item)}" 
  data-numposts="#{config['comment_count']}" 
  data-colorscheme="#{config['colorscheme']}"
  ></div>}
end

#facebook_follow_button(*args) ⇒ Object



56
57
58
59
60
61
62
63
64
65
# File 'lib/octopress-social/facebook.rb', line 56

def facebook_follow_button(*args)
  %Q{<div class="fb-follow" 
    data-href="https://www.facebook.com/#{config['profile_id']}"
    #{width}
    data-layout="#{config['layout']}"
    data-layout="#{config['layout']}"
    data-action="#{config['action']}"
    data-colorscheme="#{config['colorscheme']}">
  </div>}
end

#facebook_like_button(site, item) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/octopress-social/facebook.rb', line 39

def facebook_like_button(site, item)
  %Q{<div class="fb-like"
    data-href="#{Social.full_url(site, item)}"
    #{width}
    data-layout="#{config['layout']}"
    data-action="#{config['action']}"
    data-show-faces="#{config['show_faces']}"
    data-colorscheme="#{config['colorscheme']}"
    data-kid-directed-site="#{config['kid_directed_site']}"
    data-share="#{config['share']}"></div>
  }
end


52
53
54
# File 'lib/octopress-social/facebook.rb', line 52

def facebook_profile_link(*args)
  %Q{<a class="facebook-profile-link" href="https://www.facebook.com/#{config['profile_id']}">#{config['profile_link_text']}</a>}
end

#facebook_script_tag(*args) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/octopress-social/facebook.rb', line 84

def facebook_script_tag(*args)
  %Q{
    <div id="fb-root"></div>
    <script>(function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>
  }
end

#facebook_send_button(site, item) ⇒ Object



67
68
69
70
71
72
73
74
# File 'lib/octopress-social/facebook.rb', line 67

def facebook_send_button(site, item)
  %Q{<div class="fb-send" 
    data-href="#{Social.full_url(site, item)}"
    #{width}
    data-colorscheme="#{config['colorscheme']}"
    data-kid-directed-site="#{config['kid_directed_site']}"></div>
  }
end


24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/octopress-social/facebook.rb', line 24

def facebook_share_link(site, item)
  url = Social.full_url(site, item)
  if config['app_id']
    %Q{<a class="facebook-share-link" href="https://www.facebook.com/dialog/share?
    app_id=#{config['app_id']}
    &href=#{url}&redirect_uri=#{url}"
    target="_blank">#{config['share_link_text']}</a>
    }
  else
    %Q{<a class="facebook-share-link" 
    href="https://www.facebook.com/sharer/sharer.php?u=#{url}" 
    target="_blank">#{config['share_link_text']}</a>}
  end
end

#widthObject



76
77
78
79
80
81
82
# File 'lib/octopress-social/facebook.rb', line 76

def width
  if w = config['width']
    %Q{data-width="#{w}"}
  else
    ''
  end
end