Files
Notare/lib/notare/nodes/run.rb
mathias234 64c8679044
All checks were successful
CI Pipeline / build (push) Successful in 49s
Sanitize invalid XML characters in text content
Strip invalid XML 1.0 control characters (0x00-0x08, 0x0B-0x0C, 0x0E-0x1F)
from text to prevent corrupted docx files that fail to open in LibreOffice.

Fixes SAXParseException 'PCData Invalid Char value' errors.
2026-01-22 09:10:33 +01:00

23 lines
587 B
Ruby

# frozen_string_literal: true
module Notare
module Nodes
class Run < Base
attr_reader :text, :bold, :italic, :underline, :strike, :highlight, :color, :style
def initialize(text, bold: false, italic: false, underline: false,
strike: false, highlight: nil, color: nil, style: nil)
super()
@text = XmlSanitizer.sanitize(text)
@bold = bold
@italic = italic
@underline = underline
@strike = strike
@highlight = highlight
@color = color
@style = style
end
end
end
end