Module: JekyllAeo::Config

Defined in:
lib/jekyll-aeo/config.rb

Constant Summary collapse

DEFAULTS =
{
  "enabled" => true,
  "exclude" => [],
  "include_layouts" => nil,
  "include_collections" => nil,
  "dotmd" => {
    "link_tag" => "auto",
    "include_last_modified" => true,
    "dotmd_metadata" => false,
    "md2dotmd" => {
      "strip_block_tags" => true,
      "protect_indented_code" => false
    },
    "html2dotmd" => {
      "enabled" => false,
      "selector" => nil
    }
  },
  "llms_txt" => {
    "enabled" => true,
    "description" => nil,
    "sections" => nil,
    "front_matter_keys" => [],
    "show_lastmod" => false,
    "include_descriptions" => true
  },
  "llms_full_txt" => {
    "enabled" => true,
    "description" => nil,
    "full_txt_mode" => "all"
  },
  "url_map" => {
    "enabled" => false,
    "output_filepath" => "docs/Url-Map.md",
    "columns" => %w[layout url url_dotmd dotmd_mode excluded path page_id lang redirects],
    "show_created_at" => true
  },
  "robots_txt" => {
    "enabled" => false,
    "allow" => %w[Googlebot Bingbot OAI-SearchBot ChatGPT-User Claude-SearchBot
                  Claude-User PerplexityBot Applebot-Extended],
    "disallow" => %w[GPTBot ClaudeBot Google-Extended Meta-ExternalAgent Amazonbot],
    "include_sitemap" => true,
    "include_llms_txt" => true,
    "custom_rules" => []
  },
  "domain_profile" => {
    "enabled" => false,
    "name" => nil,
    "description" => nil,
    "website" => nil,
    "contact" => nil,
    "logo" => nil,
    "entity_type" => nil,
    "jsonld" => nil
  }
}.freeze

Class Method Summary collapse

Class Method Details

.from_site(site) ⇒ Object



63
64
65
66
# File 'lib/jekyll-aeo/config.rb', line 63

def self.from_site(site)
  user_config = site.config["jekyll_aeo"] || {}
  deep_merge(DEFAULTS, user_config)
end