Module: Koziolekweb::Deorphanter

Defined in:
lib/jekyll/koziolekweb/deorphanter.rb

Constant Summary collapse

SINGLE_LETTER =
/\b([a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ\-–])\b(?:\s|$)/
REPLACE =
'\1 '
BLOCK_REGEX =
/```.*?```/m.freeze

Class Method Summary collapse

Class Method Details

.apply_hook_to(document) ⇒ Object



33
34
35
# File 'lib/jekyll/koziolekweb/deorphanter.rb', line 33

def self.apply_hook_to(document)
  document.content = replace_single_letter_spaces(document.content)
end

.replace_single_letter_spaces(content) ⇒ Object

Metoda zastępująca pojedyncze litery przekształcone w ‘ `



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/jekyll/koziolekweb/deorphanter.rb', line 13

def self.replace_single_letter_spaces(content)
  return content unless content && content.is_a?(String)

  chunks = []
  # Podział treści na części (wewnątrz bloków kodu i poza nimi)
  content.split(BLOCK_REGEX).each_with_index do |chunk, index|
    chunk = chunk.gsub(SINGLE_LETTER, REPLACE)
    chunks << chunk
  end

  # Wstawianie nieruszonych bloków kodu z powrotem na swoje miejsca
  content.scan(BLOCK_REGEX).each_with_index do |code_block, i|
    chunks.insert(2 * i + 1, code_block)
  end

  chunks.join
end