Class: Middleman::Blog::AliasPages
- Inherits:
-
Object
- Object
- Middleman::Blog::AliasPages
- Includes:
- UriTemplates
- Defined in:
- lib/middleman-blog/alias_pages.rb
Overview
A sitemap resource manipulator that adds alias/redirect pages to the sitemap for each blog article based on the configured alias patterns
Instance Method Summary collapse
-
#initialize(app, blog_controller) ⇒ AliasPages
constructor
Initialise Alias pages.
-
#manipulate_resource_list(resources) ⇒ Array
Update the main sitemap resource list.
Methods included from UriTemplates
apply_uri_template, date_to_params, extract_directory_path, extract_params, safe_parameterize, uri_template
Constructor Details
#initialize(app, blog_controller) ⇒ AliasPages
Initialise Alias pages
22 23 24 25 26 27 28 |
# File 'lib/middleman-blog/alias_pages.rb', line 22 def initialize(app, blog_controller) @sitemap = app.sitemap @blog_controller = blog_controller @blog_data = blog_controller.data @alias_patterns = blog_controller..aliases || [] @alias_templates = @alias_patterns.map { |pattern| uri_template(pattern) } end |
Instance Method Details
#manipulate_resource_list(resources) ⇒ Array
Update the main sitemap resource list
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/middleman-blog/alias_pages.rb', line 36 def manipulate_resource_list(resources) return resources if @alias_patterns.empty? alias_resources = [] @blog_data.articles.each do |article| @alias_templates.each do |template| alias_path = generate_alias_path(template, article) next if alias_path == article.destination_path # Don't create alias to itself alias_resources << alias_page_resource(alias_path, article) end end resources + alias_resources end |