Module: Jekyll::Documents::Filters

Defined in:
lib/jekyll/documents/filters.rb

Constant Summary collapse

DANISH_MAP =
{
  "æ" => "ae", "ø" => "oe", "å" => "aa",
  "Æ" => "Ae", "Ø" => "Oe", "Å" => "Aa"
}.freeze

Instance Method Summary collapse

Instance Method Details

#documents_slugify(input, downcase: true, danish_map: true) ⇒ Object

Slugify while handling Danish letters and basic punctuation cleanup.



12
13
14
15
16
17
18
19
20
# File 'lib/jekyll/documents/filters.rb', line 12

def documents_slugify(input, downcase: true, danish_map: true)
  result = input.to_s.dup
  result = result.gsub(/[æøåÆØÅ]/) { |ch| DANISH_MAP[ch] } if danish_map
  result = result.strip.gsub(/[^\p{Alnum}\-_\s]/u, "")
  result = result.tr(" ", "-").squeeze("-")
  result = result.gsub(/[æøåÆØÅ]/, "") unless danish_map
  result = result.downcase if downcase
  result
end

#documents_title_from_filename(basename) ⇒ Object

Title from filename e.g. "2026-03-01_Title_Here" -> "Title Here"



23
24
25
26
27
28
29
30
# File 'lib/jekyll/documents/filters.rb', line 23

def documents_title_from_filename(basename)
  basename = basename.to_s
  if basename =~ /^\d{4}-\d{2}-\d{2}_(.+)$/
    Regexp.last_match(1).tr("_", " ")
  else
    basename.tr("_", " ")
  end
end