Class: AozoraSsml::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/aozora-ssml/builder.rb

Instance Method Summary collapse

Instance Method Details

#create_body_ssml(doc) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/aozora-ssml/builder.rb', line 11

def create_body_ssml(doc)
  Sanitize.
    fragment(doc.main_text, elements: %w(br ruby rb rp rt div h1 h2 h3 h4 h5)).
    gsub(%r(<br\s*/?>), '<break />').
    gsub(%r(<(?:h\d|div)[^>]*>), '<p>').
    gsub(%r(</(?:h\d|div)>), '</p>').
    gsub(%r(<rp>[^<]+</rp>), '')
end

#create_ssml(doc, ssml_body) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/aozora-ssml/builder.rb', line 20

def create_ssml(doc, ssml_body)
  <<-XML
<?xml version="1.0"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="ja">
<p>#{doc.title}</p>
<p>#{doc.author}</p>

#{ssml_body}
</speak>
  XML
end

#html2ssml(html) ⇒ Object



5
6
7
8
9
# File 'lib/aozora-ssml/builder.rb', line 5

def html2ssml(html)
  doc = ::AozoraSsml::Document.parse(html.encode("utf-8"))
  ssml_body = create_body_ssml(doc)
  create_ssml(doc, ssml_body)
end