github.com/neohugo/neohugo@v0.123.8/hugolib/frontmatter_test.go (about) 1 // Copyright 2024 The Hugo Authors. All rights reserved. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // http://www.apache.org/licenses/LICENSE-2.0 7 // 8 // Unless required by applicable law or agreed to in writing, software 9 // distributed under the License is distributed on an "AS IS" BASIS, 10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 // See the License for the specific language governing permissions and 12 // limitations under the License. 13 14 package hugolib 15 16 import "testing" 17 18 // Issue 10624 19 func TestFrontmatterPreserveDatatypesForSlices(t *testing.T) { 20 t.Parallel() 21 22 files := ` 23 -- content/post/one.md -- 24 --- 25 ints: [1, 2, 3] 26 mixed: ["1", 2, 3] 27 strings: ["1", "2","3"] 28 --- 29 -- layouts/_default/single.html -- 30 Ints: {{ printf "%T" .Params.ints }} {{ range .Params.ints }}Int: {{ fmt.Printf "%[1]v (%[1]T)" . }}|{{ end }} 31 Mixed: {{ printf "%T" .Params.mixed }} {{ range .Params.mixed }}Mixed: {{ fmt.Printf "%[1]v (%[1]T)" . }}|{{ end }} 32 Strings: {{ printf "%T" .Params.strings }} {{ range .Params.strings }}Strings: {{ fmt.Printf "%[1]v (%[1]T)" . }}|{{ end }} 33 ` 34 b := NewIntegrationTestBuilder( 35 IntegrationTestConfig{ 36 T: t, 37 TxtarString: files, 38 }, 39 ) 40 41 b.Build() 42 43 b.AssertFileContent("public/post/one/index.html", "Ints: []interface {} Int: 1 (int)|Int: 2 (int)|Int: 3 (int)|") 44 b.AssertFileContent("public/post/one/index.html", "Mixed: []interface {} Mixed: 1 (string)|Mixed: 2 (int)|Mixed: 3 (int)|") 45 b.AssertFileContent("public/post/one/index.html", "Strings: []string Strings: 1 (string)|Strings: 2 (string)|Strings: 3 (string)|") 46 }