@@ -114,7 +114,7 @@ type HtmlNode =
114114
115115 fun name -> Set.contains name set
116116
117- let rec serialize ( sb : StringBuilder ) indentation canAddNewLine html =
117+ let rec serialize ( sb : StringBuilder ) indentation canAddNewLine insidePre html =
118118 let append ( str : string ) = sb.Append str |> ignore
119119
120120 let appendEndTag name =
@@ -135,8 +135,9 @@ type HtmlNode =
135135 | _ -> false )
136136
137137 let isPreTag = name = " pre"
138+ let nowInsidePre = insidePre || isPreTag
138139
139- if canAddNewLine && not ( onlyText || isPreTag) then
140+ if canAddNewLine && not insidePre && not ( onlyText || isPreTag) then
140141 newLine 0
141142
142143 append " <"
@@ -157,16 +158,16 @@ type HtmlNode =
157158 else
158159 append " >"
159160
160- if not ( onlyText || isPreTag) then
161+ if not insidePre && not ( onlyText || isPreTag) then
161162 newLine 2
162163
163164 let mutable canAddNewLine = false
164165
165166 for element in elements do
166- serialize sb ( indentation + 2 ) canAddNewLine element
167+ serialize sb ( indentation + 2 ) canAddNewLine nowInsidePre element
167168 canAddNewLine <- true
168169
169- if not ( onlyText || isPreTag) then
170+ if not insidePre && not ( onlyText || isPreTag) then
170171 newLine 0
171172
172173 appendEndTag name
@@ -181,7 +182,7 @@ type HtmlNode =
181182 append " ]]>"
182183
183184 let sb = StringBuilder()
184- serialize sb 0 false x |> ignore
185+ serialize sb 0 false false x |> ignore
185186 sb.ToString()
186187
187188 /// <exclude />
0 commit comments