module Asciidoctor::PDF::TextTransformer
Constants
- ContiguousCharsRx
- Hyphen
- LowerAlphaChars
- PCDATAFilterRx
- SmallCapsChars
NOTE: use more widely-supported ғ instead of ꜰ as replacement for F NOTE: use more widely-supported ǫ instead of ꞯ as replacement for Q NOTE: use more widely-supported s (lowercase latin “s”) instead of ꜱ as replacement for S NOTE: in small caps, x (lowercase latin “x”) remains unchanged
- SoftHyphen
- TagFilterRx
- WordRx
- XMLMarkupRx
Public Instance Methods
capitalize_words(string)
click to toggle source
# File lib/asciidoctor/pdf/text_transformer.rb, line 28 def capitalize_words string string.gsub(ContiguousCharsRx) { $&.capitalize } end
capitalize_words_pcdata(string)
click to toggle source
# File lib/asciidoctor/pdf/text_transformer.rb, line 20 def capitalize_words_pcdata string if XMLMarkupRx.match? string string.gsub(PCDATAFilterRx) { $2 ? (capitalize_words $2) : $1 } else capitalize_words string end end
hyphenate_words(string, hyphenator)
click to toggle source
# File lib/asciidoctor/pdf/text_transformer.rb, line 40 def hyphenate_words string, hyphenator string.gsub(WordRx) { hyphenator.visualize $&, SoftHyphen } end
hyphenate_words_pcdata(string, hyphenator)
click to toggle source
# File lib/asciidoctor/pdf/text_transformer.rb, line 32 def hyphenate_words_pcdata string, hyphenator if XMLMarkupRx.match? string string.gsub(PCDATAFilterRx) { $2 ? (hyphenate_words $2, hyphenator) : $1 } else hyphenate_words string, hyphenator end end
lowercase_pcdata(string)
click to toggle source
# File lib/asciidoctor/pdf/text_transformer.rb, line 44 def lowercase_pcdata string if string.include? '<' string.gsub(TagFilterRx) { $2 ? $2.downcase : $1 } else string.downcase end end
smallcaps_pcdata(string)
click to toggle source
# File lib/asciidoctor/pdf/text_transformer.rb, line 60 def smallcaps_pcdata string if XMLMarkupRx.match? string string.gsub(PCDATAFilterRx) { $2 ? ($2.tr LowerAlphaChars, SmallCapsChars) : $1 } else string.tr LowerAlphaChars, SmallCapsChars end end
transform_text(text, transform)
click to toggle source
Apply the text transform to the specified text.
Supported transform values are “uppercase”, “lowercase”, or “none” (passed as either a String
or a Symbol). When the uppercase transform is applied to the text, it correctly uppercases visible text while leaving markup and named character entities unchanged. The none transform returns the text unmodified.
# File lib/asciidoctor/pdf/text_transformer.rb, line 76 def transform_text text, transform case transform when :uppercase, 'uppercase' uppercase_pcdata text when :lowercase, 'lowercase' lowercase_pcdata text when :capitalize, 'capitalize' capitalize_words_pcdata text when :smallcaps, 'smallcaps' smallcaps_pcdata text else text end end
uppercase_pcdata(string)
click to toggle source
# File lib/asciidoctor/pdf/text_transformer.rb, line 52 def uppercase_pcdata string if XMLMarkupRx.match? string string.gsub(PCDATAFilterRx) { $2 ? $2.upcase : $1 } else string.upcase end end