Class: Middleman::BlogExtension
- Inherits:
-
Extension
- Object
- Extension
- Middleman::BlogExtension
- Extended by:
- Forwardable
- Defined in:
- lib/middleman-blog/extension.rb
Instance Attribute Summary collapse
-
#calendar_pages ⇒ CalendarPages
readonly
Calendar page handler for this blog.
-
#custom_pages ⇒ Hash<CustomPages>
readonly
Custom pages handlers for this blog, indexed by property name.
-
#data ⇒ BlogData
readonly
Blog data for this blog, which has all information about the blog articles.
-
#name ⇒ Symbol
readonly
The name of this blog (autogenerated if not provided).
-
#paginator ⇒ Paginator
readonly
Pagination handler for this blog.
-
#tag_pages ⇒ TagPages
readonly
Tag page handler for this blog.
Instance Method Summary collapse
- #after_configuration ⇒ Object
-
#initialize(app, options_hash = {}, &block) ⇒ BlogExtension
constructor
A new instance of BlogExtension.
Constructor Details
#initialize(app, options_hash = {}, &block) ⇒ BlogExtension
Returns a new instance of BlogExtension.
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/middleman-blog/extension.rb', line 68 def initialize(app, = {}, &block) super @custom_pages = {} # NAME is the name of this particular blog, and how you reference it from #blog_controller or frontmatter. @name = .name.to_sym if .name # Allow one setting to set all the calendar templates if .calendar_template .year_template ||= .calendar_template .month_template ||= .calendar_template .day_template ||= .calendar_template end # If "prefix" option is specified, all other paths are relative to it. return unless .prefix .prefix = "/#{.prefix}" unless .prefix.start_with? '/' .permalink = File.join(.prefix, .permalink) .sources = File.join(.prefix, .sources) .taglink = File.join(.prefix, .taglink) .year_link = File.join(.prefix, .year_link) .month_link = File.join(.prefix, .month_link) .day_link = File.join(.prefix, .day_link) .custom_collections.each_value do |opts| opts[:link] = File.join(.prefix, opts[:link]) end end |
Instance Attribute Details
#calendar_pages ⇒ CalendarPages (readonly)
Returns calendar page handler for this blog.
57 58 59 |
# File 'lib/middleman-blog/extension.rb', line 57 def calendar_pages @calendar_pages end |
#custom_pages ⇒ Hash<CustomPages> (readonly)
Returns custom pages handlers for this blog, indexed by property name.
63 64 65 |
# File 'lib/middleman-blog/extension.rb', line 63 def custom_pages @custom_pages end |
#data ⇒ BlogData (readonly)
Returns blog data for this blog, which has all information about the blog articles.
48 49 50 |
# File 'lib/middleman-blog/extension.rb', line 48 def data @data end |
#name ⇒ Symbol (readonly)
Returns the name of this blog (autogenerated if not provided).
51 52 53 |
# File 'lib/middleman-blog/extension.rb', line 51 def name @name end |
#paginator ⇒ Paginator (readonly)
Returns pagination handler for this blog.
60 61 62 |
# File 'lib/middleman-blog/extension.rb', line 60 def paginator @paginator end |
#tag_pages ⇒ TagPages (readonly)
Returns tag page handler for this blog.
54 55 56 |
# File 'lib/middleman-blog/extension.rb', line 54 def tag_pages @tag_pages end |
Instance Method Details
#after_configuration ⇒ Object
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
# File 'lib/middleman-blog/extension.rb', line 99 def after_configuration @name ||= begin found_name = nil app.extensions[:blog].values.each_with_index do |ext, i| found_name = "blog#{i + 1}" if ext == self end found_name end # TODO: break up into private methods? @app.ignore(.calendar_template) if .calendar_template @app.ignore(.year_template) if .year_template @app.ignore(.month_template) if .month_template @app.ignore(.day_template) if .day_template @app.ignore .tag_template if .tag_template # Make sure ActiveSupport's TimeZone stuff has something to work with, # allowing people to set their desired time zone via Time.zone or # set :time_zone Time.zone = app.config[:time_zone] if app.config[:time_zone] time_zone = Time.zone || 'UTC' zone_default = Time.find_zone!(time_zone) raise 'Value assigned to time_zone not recognized.' unless zone_default Time.zone_default = zone_default # Initialize blog with options @data = Blog::BlogData.new(@app, self, ) @app.sitemap.register_resource_list_manipulator(:"blog_#{name}_articles", @data) if .tag_template @app.ignore .tag_template require 'middleman-blog/tag_pages' @tag_pages = Blog::TagPages.new(@app, self) @app.sitemap.register_resource_list_manipulator(:"blog_#{name}_tags", @tag_pages) end if .year_template || .month_template || .day_template require 'middleman-blog/calendar_pages' @calendar_pages = Blog::CalendarPages.new(@app, self) @app.sitemap.register_resource_list_manipulator(:"blog_#{name}_calendar", @calendar_pages) end if .custom_collections require 'middleman-blog/custom_pages' register_custom_pages end if .paginate require 'middleman-blog/paginator' @paginator = Blog::Paginator.new(@app, self) @app.sitemap.register_resource_list_manipulator(:"blog_#{name}_paginate", @paginator) end logger.info "== Blog Sources: #{.sources} (:prefix + :sources)" end |