class Jekyll::Scholar::BibliographyTag
Public Class Methods
new(tag_name, arguments, tokens)
click to toggle source
Calls superclass method
# File lib/jekyll/scholar/tags/bibliography.rb, line 6 def initialize(tag_name, arguments, tokens) super @config = Scholar.defaults.dup optparse(arguments) end
Public Instance Methods
group_renderer(groupsOrItems,keys,order,tags)
click to toggle source
# File lib/jekyll/scholar/tags/bibliography.rb, line 34 def group_renderer(groupsOrItems,keys,order,tags) if keys.count == 0 csl_renderer(true) render_items(groupsOrItems) else groupsOrItems .sort do |e1,e2| if (order.first || group_order.last) =~ /^(desc|reverse)/i group_compare(keys.first,e2[0],e1[0]) else group_compare(keys.first,e1[0],e2[0]) end end .map do |e| bibhead = content_tag(tags.first || group_tags.last, group_name(keys.first, e[0]), :class => config['bibliography_class']) bibentries = group_renderer(e[1], keys.drop(1), order.drop(1), tags.drop(1)) bibhead + "\n" + bibentries end .join("\n") end end
render(context)
click to toggle source
# File lib/jekyll/scholar/tags/bibliography.rb, line 14 def render(context) set_context_to context # Add bibtex files to dependency tree. update_dependency_tree items = cited_entries if group? groups = group(items) bibliography = render_groups(groups) else items = items[offset..max] if limit_entries? bibliography = render_items(items) end bibliography end
render_groups(groups)
click to toggle source
# File lib/jekyll/scholar/tags/bibliography.rb, line 33 def render_groups(groups) def group_renderer(groupsOrItems,keys,order,tags) if keys.count == 0 csl_renderer(true) render_items(groupsOrItems) else groupsOrItems .sort do |e1,e2| if (order.first || group_order.last) =~ /^(desc|reverse)/i group_compare(keys.first,e2[0],e1[0]) else group_compare(keys.first,e1[0],e2[0]) end end .map do |e| bibhead = content_tag(tags.first || group_tags.last, group_name(keys.first, e[0]), :class => config['bibliography_class']) bibentries = group_renderer(e[1], keys.drop(1), order.drop(1), tags.drop(1)) bibhead + "\n" + bibentries end .join("\n") end end group_renderer(groups,group_keys,group_order,group_tags) end
render_items(items)
click to toggle source
# File lib/jekyll/scholar/tags/bibliography.rb, line 60 def render_items(items) bibliography = items.compact.each_with_index.map { |entry, index| reference = bibliography_tag(entry, index + 1) if generate_details? && generate_details_link? reference << link_to(details_link_for(entry), config['details_link'], :class => config['details_link_class']) end content_tag config['bibliography_item_tag'], reference, config['bibliography_item_attributes'] }.join("\n") content_tag bibliography_list_tag, bibliography, { :class => config['bibliography_class'] }.merge(config['bibliography_list_attributes']) end