Module: Metanorma::Plugin::Glossarist::Sanitize

Defined in:
lib/metanorma/plugin/glossarist/sanitize.rb

Constant Summary collapse

REF_REGEX =
/{{(urn:[^,{}]+),([^}]+?)}}(.*)$/m
XREF_REGEX =
/<<((?>[^,>\n]+))(?:,[^>\n]*)?>>/

Class Method Summary collapse

Class Method Details

.extract_xrefs(text) ⇒ Object



20
21
22
23
24
# File 'lib/metanorma/plugin/glossarist/sanitize.rb', line 20

def self.extract_xrefs(text)
  return [] unless text

  text.scan(XREF_REGEX).map(&:first).uniq
end

.references(str) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/metanorma/plugin/glossarist/sanitize.rb', line 10

def self.references(str)
  return str unless str&.match?(REF_REGEX)

  str.gsub(REF_REGEX) do
    m = Regexp.last_match
    urn = Metanorma::Utils.to_ncname(m[1]).gsub(":", "_")
    "{{#{urn},#{m[2]}}}#{m[3]}"
  end
end