···64 ) value;
65 not !invalid
6667-(* Serialize start tag *)
68let serialize_start_tag name attrs =
69 let buf = Buffer.create 64 in
70 Buffer.add_char buf '<';
···73 Buffer.add_char buf ' ';
74 Buffer.add_string buf key;
75 if value <> "" then begin
76- if can_unquote_attr_value value then begin
77- Buffer.add_char buf '=';
78- Buffer.add_string buf (escape_attr_value value '"')
79- end else begin
80- let quote = choose_attr_quote value in
81- Buffer.add_char buf '=';
82- Buffer.add_char buf quote;
83- Buffer.add_string buf (escape_attr_value value quote);
84- Buffer.add_char buf quote
85- end
86 end
87 ) attrs;
88 Buffer.add_char buf '>';
···64 ) value;
65 not !invalid
6667+(* Serialize start tag - per WHATWG spec, attribute values must be quoted *)
68let serialize_start_tag name attrs =
69 let buf = Buffer.create 64 in
70 Buffer.add_char buf '<';
···73 Buffer.add_char buf ' ';
74 Buffer.add_string buf key;
75 if value <> "" then begin
76+ (* WHATWG serialization algorithm requires double quotes around values *)
77+ Buffer.add_char buf '=';
78+ Buffer.add_char buf '"';
79+ Buffer.add_string buf (escape_attr_value value '"');
80+ Buffer.add_char buf '"'
0000081 end
82 ) attrs;
83 Buffer.add_char buf '>';