Class: Hyde::Decap::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/hyde/decap/generator.rb

Constant Summary collapse

@@config =
{
  "file_output_path" => "/admin",
  "enable" => true,
  "keep_files" => true
}

Instance Method Summary collapse

Constructor Details

#initialize(site) ⇒ Generator

Returns a new instance of Generator.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/hyde/decap/generator.rb', line 10

def initialize(site)
  @site = site
  @config = site.config.dig("hyde_decap")

  @config = @@config.merge(@site.config.dig("hyde_decap") || {})

  # compatibility with jekyll-sitemap
  # set the admin path to ignore
  @site.config["defaults"].push({
    "scope" => {
      "path" => "admin/index.html"
    },
    "values" => {
      "sitemap" => false
    }
  })

  if config("keep_files") == true
    @site.config["keep_files"].push(config("file_output_path"))
  end

  if site.config.dig("hyde_decap").nil?
    @site.config["hyde_decap"] = @config
  end
end

Instance Method Details

#generateObject



36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/hyde/decap/generator.rb', line 36

def generate
  return unless config("enable") == true

  # create new index.html file
  html_file = Hyde::Decap::GeneratedFile.new(@site, config("file_output_path"), "index.html")
  html_file.file_contents = File.read(File.join(File.dirname(__FILE__), "index.html"))
  @site.static_files << html_file

  # create new config.yml file
  config_file = Hyde::Decap::GeneratedFile.new(@site, config("file_output_path"), "config.yml")
  config_file.file_contents = @config.to_yaml
  @site.static_files << config_file
end