diff --git a/samples/SampleApp/SampleApp/HtmlViews.fs b/samples/SampleApp/SampleApp/HtmlViews.fs index d32ce62e..770c5657 100644 --- a/samples/SampleApp/SampleApp/HtmlViews.fs +++ b/samples/SampleApp/SampleApp/HtmlViews.fs @@ -6,18 +6,18 @@ open SampleApp.Models let layout (content: XmlNode list) = html [] [ head [] [ - title [] (encodedText "Giraffe") + title [] [ encodedText "Giraffe" ] ] body [] content ] let partial () = - p [] (encodedText "Some partial text.") + p [] [ encodedText "Some partial text." ] let personView (model : Person) = [ div [] [ - h3 [] (sprintf "Hello, %s" model.Name |> encodedText) + h3 [] [ sprintf "Hello, %s" model.Name |> encodedText ] ] div [] [partial()] ] |> layout \ No newline at end of file diff --git a/src/Giraffe/Giraffe.fsproj b/src/Giraffe/Giraffe.fsproj index 9b593059..6540d922 100644 --- a/src/Giraffe/Giraffe.fsproj +++ b/src/Giraffe/Giraffe.fsproj @@ -2,7 +2,7 @@ Giraffe - 0.1.0-alpha022 + 0.1.0-alpha023 A native functional ASP.NET Core web framework for F# developers. Copyright 2017 Dustin Moris Gorski en-GB diff --git a/src/Giraffe/XmlViewEngine.fs b/src/Giraffe/XmlViewEngine.fs index d01adda3..9c4599ee 100644 --- a/src/Giraffe/XmlViewEngine.fs +++ b/src/Giraffe/XmlViewEngine.fs @@ -49,10 +49,10 @@ let voidTag (tagName : string) (attributes : XmlAttribute list) = VoidElement (tagName, Array.ofList attributes) -let encodedText (content : string) = [ EncodedText content ] -let rawText (content : string) = [ RawText content ] +let encodedText (content : string) = EncodedText content +let rawText (content : string) = RawText content let emptyText = rawText "" -let comment (content : string) = RawText (sprintf "" content) +let comment (content : string) = rawText (sprintf "" content) /// --------------------------- /// Default HTML elements @@ -226,10 +226,21 @@ let rec private nodeToString (htmlStyle : bool) (node : XmlNode) = | ParentNode (e, nodes) -> parentNodeToString (e, nodes) | VoidElement e -> startElementToString true e -let renderXmlString = nodeToString false -let renderHtmlString = nodeToString true +let renderXmlNode = nodeToString false + +let renderXmlNodes (nodes : XmlNode list) = + nodes + |> List.map renderXmlNode + |> String.Concat + +let renderHtmlNode = nodeToString true + +let renderHtmlNodes (nodes : XmlNode list) = + nodes + |> List.map renderHtmlNode + |> String.Concat let renderHtmlDocument (document : XmlNode) = document - |> renderHtmlString + |> renderHtmlNode |> sprintf "%s%s" Environment.NewLine \ No newline at end of file diff --git a/template/giraffe-template.nuspec b/template/giraffe-template.nuspec index b8d5d9c4..84d7232d 100644 --- a/template/giraffe-template.nuspec +++ b/template/giraffe-template.nuspec @@ -2,7 +2,7 @@ giraffe-template - 0.1.5 + 0.1.6 Giraffe Template for dotnet-new A dotnet-new template for Giraffe web applications. A dotnet-new template for Giraffe web applications. diff --git a/tests/Giraffe.Tests/HttpHandlerTests.fs b/tests/Giraffe.Tests/HttpHandlerTests.fs index e54ec809..25aa52c6 100644 --- a/tests/Giraffe.Tests/HttpHandlerTests.fs +++ b/tests/Giraffe.Tests/HttpHandlerTests.fs @@ -743,10 +743,10 @@ let ``GET "/person" returns rendered HTML view`` () = let personView model = html [] [ head [] [ - title [] (encodedText "Html Node") + title [] [ encodedText "Html Node" ] ] body [] [ - p [] (sprintf "%s %s is %i years old." model.Foo model.Bar model.Age |> encodedText) + p [] [ sprintf "%s %s is %i years old." model.Foo model.Bar model.Age |> encodedText ] ] ] diff --git a/tests/Giraffe.Tests/XmlViewEngineTests.fs b/tests/Giraffe.Tests/XmlViewEngineTests.fs index 1a28bd87..3cf385f0 100644 --- a/tests/Giraffe.Tests/XmlViewEngineTests.fs +++ b/tests/Giraffe.Tests/XmlViewEngineTests.fs @@ -19,8 +19,8 @@ let ``Single html root should compile`` () = [] let ``Anchor should contain href, target and content`` () = let anchor = - a [ "href", "http://example.org"; "target", "_blank" ] (encodedText "Example") - let html = renderXmlString anchor + a [ "href", "http://example.org"; "target", "_blank" ] [ encodedText "Example" ] + let html = renderXmlNode anchor Assert.Equal("Example", html) [] @@ -28,24 +28,24 @@ let ``Nested content should render correctly`` () = let nested = div [] [ comment "this is a test" - h1 [] (encodedText "Header") + h1 [] [ encodedText "Header" ] p [] [ EncodedText "Lorem " - strong [] (encodedText "Ipsum") + strong [] [ encodedText "Ipsum" ] RawText " dollar" ] ] let html = nested - |> renderXmlString + |> renderXmlNode |> removeNewLines Assert.Equal("

Header

Lorem Ipsum dollar

", html) [] let ``Void tag in XML should be self closing tag`` () = - let unary = br [] |> renderXmlString + let unary = br [] |> renderXmlNode Assert.Equal("
", unary) [] let ``Void tag in HTML should be unary tag`` () = - let unary = br [] |> renderHtmlString + let unary = br [] |> renderHtmlNode Assert.Equal("
", unary) \ No newline at end of file