Class: GuidesStyle18F::Layouts
- Inherits:
-
Jekyll::Layout
- Object
- Jekyll::Layout
- GuidesStyle18F::Layouts
- Defined in:
- lib/guides_style_18f/layouts.rb
Overview
We have to essentially recreate the ::Jekyll::Layout constructor to loosen the default restriction that layouts be included in the site source.
Constant Summary collapse
- LAYOUTS_DIR =
File.join(File.dirname(__FILE__), 'layouts')
- SEARCH_RESULTS_LAYOUT =
'search-results'
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(site, subdir, layout_file) ⇒ Layouts
constructor
A new instance of Layouts.
Constructor Details
#initialize(site, subdir, layout_file) ⇒ Layouts
Returns a new instance of Layouts.
15 16 17 18 19 20 21 22 |
# File 'lib/guides_style_18f/layouts.rb', line 15 def initialize(site, subdir, layout_file) @site = site @base = File.join(LAYOUTS_DIR, subdir) @name = "#{layout_file}.html" @path = File.join @base, @name parse_content_and_data File.join(@base, name) process name end |
Class Method Details
.register(site) ⇒ Object
37 38 39 40 41 42 |
# File 'lib/guides_style_18f/layouts.rb', line 37 def self.register(site) site.layouts['guides_style_18f_default'] = new(site, '', 'default') site.layouts['guides_style_18f_generated_home_redirect'] = new( site, 'generated', 'home-redirect') register_search_results_layout(site) end |
.register_search_results_layout(site) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/guides_style_18f/layouts.rb', line 44 def self.register_search_results_layout(site) layouts_dir = File.join(site.source, site.config['layouts_dir']) results_layout = File.join(layouts_dir, "#{SEARCH_RESULTS_LAYOUT}.html") unless File.exist?(results_layout) site.layouts[SEARCH_RESULTS_LAYOUT] = new( site, '', SEARCH_RESULTS_LAYOUT) end end |