module Asciidoctor::PDF::Sanitizer
Constants
- BuiltInNamedEntities
- CharRefRx
- InverseXMLSpecialChars
- InverseXMLSpecialCharsRx
- SanitizeXMLRx
- UnescapedAmpersandRx
- XMLSpecialChars
- XMLSpecialCharsRx
Public Instance Methods
encode_quotes(string)
click to toggle source
# File lib/asciidoctor/pdf/sanitizer.rb, line 49 def encode_quotes string (string.include? '"') ? (string.gsub '"', '"') : string end
escape_amp(string)
click to toggle source
# File lib/asciidoctor/pdf/sanitizer.rb, line 45 def escape_amp string string.gsub UnescapedAmpersandRx, '&' end
escape_xml(string)
click to toggle source
# File lib/asciidoctor/pdf/sanitizer.rb, line 37 def escape_xml string string.gsub InverseXMLSpecialCharsRx, InverseXMLSpecialChars end
sanitize(string, compact: true)
click to toggle source
Strip leading, trailing and repeating whitespace, remove XML tags along with an enclosed null character, 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 31 def sanitize string, compact: true 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? '&' compact ? (string.strip.tr_s ' ', ' ') : string end
unescape_xml(string)
click to toggle source
# File lib/asciidoctor/pdf/sanitizer.rb, line 41 def unescape_xml string string.gsub XMLSpecialCharsRx, XMLSpecialChars end