Class: Bridgetown::Site

Inherits:
Object
  • Object
show all
Includes:
Builder, Configurable, Content, Extensible, FastRefreshable, Localizable, Processable, Renderable, SSR, Writable
Defined in:
bridgetown-core/lib/bridgetown-core/site.rb,
bridgetown-core/lib/bridgetown-core/concerns/site/ssr.rb,
bridgetown-core/lib/bridgetown-core/concerns/site/builder.rb,
bridgetown-core/lib/bridgetown-core/concerns/site/content.rb,
bridgetown-core/lib/bridgetown-core/concerns/site/writable.rb,
bridgetown-core/lib/bridgetown-core/concerns/site/extensible.rb,
bridgetown-core/lib/bridgetown-core/concerns/site/renderable.rb,
bridgetown-core/lib/bridgetown-core/concerns/site/localizable.rb,
bridgetown-core/lib/bridgetown-core/concerns/site/processable.rb,
bridgetown-core/lib/bridgetown-core/concerns/site/configurable.rb,
bridgetown-core/lib/bridgetown-core/concerns/site/fast_refreshable.rb

Defined Under Namespace

Modules: Builder, Configurable, Content, Extensible, FastRefreshable, Localizable, Processable, Renderable, SSR, Writable

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Writable

#cleanup, #each_site_file, #resources_cache_manifest, #write, #write_redirecting_index

Methods included from SSR

#disable_ssr, #enable_ssr, included, #ssr?, #ssr_first_read, #ssr_setup

Methods included from Renderable

#build_locale_index, #execute_inline_ruby_for_layouts!, #matched_converters_for_convertible, #render, #render_resources, #render_with_locale, #validated_layouts_for, #warn_on_missing_layout

Methods included from Processable

#process, #read, #refresh_layouts_and_data, #reset

Methods included from Localizable

#locale, #locale=

Methods included from FastRefreshable

#fast_refresh

Methods included from Extensible

#find_converter_instance, #generate, #instantiate_subclasses, #on, #setup

Methods included from Content

#add_generated_page, #categories, #collection_names, #collections, #frontend_manifest, #metadata, #resources, #resources_grouped_by_taxonomy, #resources_to_write, #site_payload, #static_files_to_write, #tags, #taxonomies, #taxonomy_types

Methods included from Configurable

#base_path, #collections_path, #config=, #defaults_reader, #destination, #frontend_bundling_path, #frontmatter_defaults, #in_cache_dir, #in_destination_dir, #in_root_dir, #in_source_dir, #root_dir, #source

Methods included from Builder

#build

Constructor Details

#initialize(config, label: :main, loaders_manager: nil) ⇒ Site

Initialize a new Site.

Parameters:



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 47

def initialize(config, label: :main, loaders_manager: nil)
  @label = label.to_sym
  self.config = config
  locale

  loaders_manager = if loaders_manager
                      loaders_manager.config = self.config
                      loaders_manager
                    else
                      Bridgetown::Utils::LoadersManager.new(self.config)
                    end
  @loaders_manager = loaders_manager

  @plugin_manager  = PluginManager.new(self)
  @cleaner         = Cleaner.new(self)
  @reader          = Reader.new(self)
  @liquid_renderer = LiquidRenderer.new(self)

  Bridgetown::Cache.base_cache["site_tmp"] = HashWithDotAccess::Hash.new
  ensure_not_in_dest

  Bridgetown::Current.sites[@label] = self
  Bridgetown::Hooks.trigger :site, :after_init, self

  reset   # Processable
  setup   # Extensible
end

Instance Attribute Details

#cache_dirObject (readonly)

Returns the value of attribute cache_dir.



27
28
29
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 27

def cache_dir
  @cache_dir
end

#configBridgetown::Configuration (readonly)



19
20
21
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 19

def config
  @config
end

#convertersObject

Returns the value of attribute converters.



39
40
41
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 39

def converters
  @converters
end

#dataObject

Returns the value of attribute data.



27
28
29
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 27

def data
  @data
end

#fast_refresh_orderingObject

Returns the value of attribute fast_refresh_ordering.



39
40
41
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 39

def fast_refresh_ordering
  @fast_refresh_ordering
end

#file_read_optsObject

Returns the value of attribute file_read_opts.



39
40
41
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 39

def file_read_opts
  @file_read_opts
end

#generated_pagesArray<GeneratedPage>

Returns:



37
38
39
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 37

def generated_pages
  @generated_pages
end

#generatorsObject

Returns the value of attribute generators.



39
40
41
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 39

def generators
  @generators
end

#labelSymbol (readonly)

Returns:

  • (Symbol)


22
23
24
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 22

def label
  @label
end

#layoutsArray<Layout>

Returns:



34
35
36
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 34

def layouts
  @layouts
end

#liquid_rendererObject (readonly)

Returns the value of attribute liquid_renderer.



27
28
29
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 27

def liquid_renderer
  @liquid_renderer
end

#loaders_managerBridgetown::Utils::LoadersManager (readonly)



25
26
27
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 25

def loaders_manager
  @loaders_manager
end

Returns the value of attribute permalink_style.



39
40
41
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 39

def permalink_style
  @permalink_style
end

#plugin_managerObject

Returns the value of attribute plugin_manager.



39
40
41
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 39

def plugin_manager
  @plugin_manager
end

#readerObject

Returns the value of attribute reader.



39
40
41
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 39

def reader
  @reader
end

#signalsObject (readonly)

Returns the value of attribute signals.



27
28
29
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 27

def signals
  @signals
end

#static_filesArray<StaticFile>

All files not pages/documents or structured data in the source folder

Returns:



31
32
33
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 31

def static_files
  @static_files
end

#timeObject

Returns the value of attribute time.



39
40
41
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 39

def time
  @time
end

Instance Method Details

#ensure_not_in_destObject

Check that the destination dir isn’t the source dir or a directory parent to the source dir.



94
95
96
97
98
99
100
101
102
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 94

def ensure_not_in_dest
  dest_pathname = Pathname.new(dest)
  Pathname.new(source).ascend do |path|
    if path == dest_pathname
      raise Errors::FatalException,
            "Destination directory cannot be or contain the Source directory."
    end
  end
end

#inspectObject



108
109
110
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 108

def inspect
  "#<Bridgetown::Site #{.inspect.delete_prefix("{").delete_suffix("}")}>"
end

#tmp_cacheObject



104
105
106
# File 'bridgetown-core/lib/bridgetown-core/site.rb', line 104

def tmp_cache
  Bridgetown::Cache.base_cache["site_tmp"]
end