module Asciidoctor::PDF::Sanitizer

Constants

BuiltInNamedEntities
CharRefRx
InverseXMLSpecialChars
InverseXMLSpecialCharsRx
SanitizeXMLRx
XMLSpecialChars
XMLSpecialCharsRx

Public Instance Methods

encode_quotes(string) click to toggle source
# File lib/asciidoctor/pdf/sanitizer.rb, line 40
def encode_quotes string
  (string.include? ?") ? (string.gsub ?", '"') : string
end
escape_xml(string) click to toggle source
# File lib/asciidoctor/pdf/sanitizer.rb, line 36
def escape_xml string
  string.gsub InverseXMLSpecialCharsRx, InverseXMLSpecialChars
end
sanitize(string) click to toggle source

Strip leading, trailing and repeating whitespace, remove XML tags and resolve all entities in the specified string.

FIXME move to a module so we can mix it in elsewhere FIXME add option to control escaping entities, or a filter mechanism in general

# File lib/asciidoctor/pdf/sanitizer.rb, line 30
def sanitize string
  string = string.gsub SanitizeXMLRx, '' if string.include? '<'
  string = string.gsub(CharRefRx) { $1 ? BuiltInNamedEntities[$1] : ([$2 ? $2.to_i : ($3.to_i 16)].pack 'U1') } if string.include? '&'
  string.strip.tr_s ' ', ' '
end