Module: Bridgetown::Site::Configurable
- Included in:
- Bridgetown::Site
- Defined in:
- lib/bridgetown-core/concerns/site/configurable.rb
Instance Method Summary collapse
-
#base_path(strip_slash_only: false) ⇒ String
Returns a base path from which the site is served (aka
/cool-site
) or/
if served from root. -
#collections_path ⇒ String
The full path to the directory that houses all the registered collections for the current site.
-
#config=(config) ⇒ Object
Set the site's configuration object.
- #defaults_reader ⇒ Object
- #destination ⇒ Object (also: #dest)
- #frontend_bundling_path ⇒ Object
-
#frontmatter_defaults ⇒ FrontMatter::Defaults
Returns the current instance of FrontMatter::Defaults or creates a new instance FrontMatter::Defaults if it doesn't already exist.
-
#in_cache_dir(*paths) ⇒ Array<String>
Prefix a path or paths with the #cache_dir directory.
-
#in_destination_dir(*paths) ⇒ Array<String>
(also: #in_dest_dir)
Prefix a path or paths with the #dest directory.
-
#in_root_dir(*paths) ⇒ Array<String>
Prefix a path or paths with the #root_dir directory.
-
#in_source_dir(*paths) ⇒ Array<String>
Prefix a path or paths with the #source directory.
- #root_dir ⇒ Object
- #source ⇒ Object
Instance Method Details
#base_path(strip_slash_only: false) ⇒ String
Returns a base path from which the site is served (aka /cool-site
) or
/
if served from root.
37 38 39 40 41 |
# File 'lib/bridgetown-core/concerns/site/configurable.rb', line 37 def base_path(strip_slash_only: false) config[:base_path].then do |path| strip_slash_only ? path.to_s.sub(%r{^/$}, "") : path end end |
#collections_path ⇒ String
The full path to the directory that houses all the registered collections for the current site.
If @collections_path
is specified use its value.
If @collections
is not specified and config["collections_dir"]
is
specified, prepend it with #source and assign it to
#collections_path.
If @collections
is not specified and config["collections_dir"]
is not
specified, assign #source to @collections_path
131 132 133 134 |
# File 'lib/bridgetown-core/concerns/site/configurable.rb', line 131 def collections_path dir_str = config["collections_dir"] @collections_path ||= dir_str.empty? ? source : in_source_dir(dir_str) end |
#config=(config) ⇒ Object
Set the site's configuration object
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/bridgetown-core/concerns/site/configurable.rb', line 8 def config=(config) @config = config configure_cache configure_component_paths configure_file_read_opts # TODO: see if we can just get rid of this. It's only used by GeneratedPage self.permalink_style = (config["permalink"] || "pretty").to_sym end |
#defaults_reader ⇒ Object
43 44 45 |
# File 'lib/bridgetown-core/concerns/site/configurable.rb', line 43 def defaults_reader @defaults_reader ||= Bridgetown::DefaultsReader.new(self) end |
#destination ⇒ Object Also known as: dest
27 28 29 |
# File 'lib/bridgetown-core/concerns/site/configurable.rb', line 27 def destination config["destination"] end |
#frontend_bundling_path ⇒ Object
136 137 138 |
# File 'lib/bridgetown-core/concerns/site/configurable.rb', line 136 def frontend_bundling_path in_root_dir(".bridgetown-cache", "frontend-bundling") end |
#frontmatter_defaults ⇒ FrontMatter::Defaults
Returns the current instance of FrontMatter::Defaults or creates a new instance FrontMatter::Defaults if it doesn't already exist.
52 53 54 |
# File 'lib/bridgetown-core/concerns/site/configurable.rb', line 52 def frontmatter_defaults @frontmatter_defaults ||= Bridgetown::FrontMatter::Defaults.new(self) end |
#in_cache_dir(*paths) ⇒ Array<String>
Prefix a path or paths with the Bridgetown::Site#cache_dir directory.
108 109 110 111 112 |
# File 'lib/bridgetown-core/concerns/site/configurable.rb', line 108 def in_cache_dir(*paths) paths.reduce(cache_dir) do |base, path| Bridgetown.sanitized_path(base, path) end end |
#in_destination_dir(*paths) ⇒ Array<String> Also known as: in_dest_dir
Prefix a path or paths with the #dest directory.
93 94 95 96 97 |
# File 'lib/bridgetown-core/concerns/site/configurable.rb', line 93 def in_destination_dir(*paths) paths.reduce(destination) do |base, path| Bridgetown.sanitized_path(base, path) end end |
#in_root_dir(*paths) ⇒ Array<String>
Prefix a path or paths with the #root_dir directory.
64 65 66 67 68 |
# File 'lib/bridgetown-core/concerns/site/configurable.rb', line 64 def in_root_dir(*paths) paths.reduce(root_dir) do |base, path| Bridgetown.sanitized_path(base, path.to_s) end end |
#in_source_dir(*paths) ⇒ Array<String>
Prefix a path or paths with the #source directory.
77 78 79 80 81 82 83 |
# File 'lib/bridgetown-core/concerns/site/configurable.rb', line 77 def in_source_dir(*paths) # TODO: this operation is expensive across thousands of iterations. Look for ways # to workaround use of this wherever possible... paths.reduce(source) do |base, path| Bridgetown.sanitized_path(base, path.to_s) end end |
#root_dir ⇒ Object
19 20 21 |
# File 'lib/bridgetown-core/concerns/site/configurable.rb', line 19 def root_dir config["root_dir"] end |
#source ⇒ Object
23 24 25 |
# File 'lib/bridgetown-core/concerns/site/configurable.rb', line 23 def source config["source"] end |