Class: Nokogiri::XML::DTD

Inherits:
Object
  • Object
show all
Defined in:
lib/html2haml/html.rb

Overview

See Also:

Instance Method Summary collapse

Instance Method Details

#to_haml(tabs, options) ⇒ Object

Raises:

  • (Haml::SyntaxError)

See Also:

  • Html2haml::HTML::Node#to_haml

243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
# File 'lib/html2haml/html.rb', line 243

def to_haml(tabs, options)
  attrs = external_id.nil? ? ["", "", ""] :
    external_id.scan(/DTD\s+([^\s]+)\s*([^\s]*)\s*([^\s]*)\s*\/\//)[0]
  raise Haml::SyntaxError.new("Invalid doctype") if attrs == nil

  type, version, strictness = attrs.map { |a| a.downcase }
  if type == "html"
    version = ""
    strictness = "strict" if strictness == ""
  end

  if version == "1.0" || version.empty?
    version = nil
  end

  if strictness == 'transitional' || strictness.empty?
    strictness = nil
  end

  version = " #{version.capitalize}" if version
  strictness = " #{strictness.capitalize}" if strictness

  "#{tabulate(tabs)}!!!#{version}#{strictness}\n"
end