Module: RedQuilt::Slug

Defined in:
lib/red_quilt/slug.rb,
sig/red_quilt.rbs

Overview

Unicode-preserving heading-anchor slugs (github-slugger style).

Defined Under Namespace

Classes: Counter

Constant Summary collapse

STRIP_RE =

Drop anything that is not a letter, mark, number, underscore, space, or hyphen. Browsers percent-encode non-ASCII fragment ids on the wire but resolve and display them fine, matching GitHub.

Returns:

  • (Regexp)
/[^\p{L}\p{M}\p{N}_ -]+/u
SPACE_RE =

Returns:

  • (Regexp)
/ +/

Class Method Summary collapse

Class Method Details

.slugify(text) ⇒ String

Parameters:

  • text (String)

Returns:

  • (String)


17
18
19
20
# File 'lib/red_quilt/slug.rb', line 17

def slugify(text)
  base = text.downcase.gsub(STRIP_RE, "").strip.gsub(SPACE_RE, "-")
  base.empty? ? "section" : base
end