mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
fix tags not being in lowercase, #491
This commit is contained in:
parent
012a473e27
commit
4e9b04086a
3 changed files with 43 additions and 9 deletions
|
@ -431,7 +431,7 @@ func (page *Page) GetParam(key string) interface{} {
|
||||||
case bool:
|
case bool:
|
||||||
return cast.ToBool(v)
|
return cast.ToBool(v)
|
||||||
case string:
|
case string:
|
||||||
return cast.ToString(v)
|
return strings.ToLower(cast.ToString(v))
|
||||||
case int64, int32, int16, int8, int:
|
case int64, int32, int16, int8, int:
|
||||||
return cast.ToInt(v)
|
return cast.ToInt(v)
|
||||||
case float64, float32:
|
case float64, float32:
|
||||||
|
@ -439,7 +439,7 @@ func (page *Page) GetParam(key string) interface{} {
|
||||||
case time.Time:
|
case time.Time:
|
||||||
return cast.ToTime(v)
|
return cast.ToTime(v)
|
||||||
case []string:
|
case []string:
|
||||||
return v
|
return sliceToLower(v.([]string))
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -795,3 +795,17 @@ func (p *Page) TargetPath() (outfile string) {
|
||||||
|
|
||||||
return path.Join(p.Dir, strings.TrimSpace(outfile))
|
return path.Join(p.Dir, strings.TrimSpace(outfile))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// sliceToLower goes through the source slice and lowers all values.
|
||||||
|
func sliceToLower(s []string) []string {
|
||||||
|
if s == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
l := make([]string, len(s))
|
||||||
|
for i, v := range s {
|
||||||
|
l[i] = strings.ToLower(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
return l
|
||||||
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var PAGE_YAML_WITH_TAXONOMIES_A = `---
|
var PAGE_YAML_WITH_TAXONOMIES_A = `---
|
||||||
tags: ['a', 'b', 'c']
|
tags: ['a', 'B', 'c']
|
||||||
categories: 'd'
|
categories: 'd'
|
||||||
---
|
---
|
||||||
YAML frontmatter with tags and categories taxonomy.`
|
YAML frontmatter with tags and categories taxonomy.`
|
||||||
|
@ -14,20 +14,20 @@ YAML frontmatter with tags and categories taxonomy.`
|
||||||
var PAGE_YAML_WITH_TAXONOMIES_B = `---
|
var PAGE_YAML_WITH_TAXONOMIES_B = `---
|
||||||
tags:
|
tags:
|
||||||
- "a"
|
- "a"
|
||||||
- "b"
|
- "B"
|
||||||
- "c"
|
- "c"
|
||||||
categories: 'd'
|
categories: 'd'
|
||||||
---
|
---
|
||||||
YAML frontmatter with tags and categories taxonomy.`
|
YAML frontmatter with tags and categories taxonomy.`
|
||||||
|
|
||||||
var PAGE_YAML_WITH_TAXONOMIES_C = `---
|
var PAGE_YAML_WITH_TAXONOMIES_C = `---
|
||||||
tags: 'e'
|
tags: 'E'
|
||||||
categories: 'd'
|
categories: 'd'
|
||||||
---
|
---
|
||||||
YAML frontmatter with tags and categories taxonomy.`
|
YAML frontmatter with tags and categories taxonomy.`
|
||||||
|
|
||||||
var PAGE_JSON_WITH_TAXONOMIES = `{
|
var PAGE_JSON_WITH_TAXONOMIES = `{
|
||||||
"categories": "d",
|
"categories": "D",
|
||||||
"tags": [
|
"tags": [
|
||||||
"a",
|
"a",
|
||||||
"b",
|
"b",
|
||||||
|
@ -37,7 +37,7 @@ var PAGE_JSON_WITH_TAXONOMIES = `{
|
||||||
JSON Front Matter with tags and categories`
|
JSON Front Matter with tags and categories`
|
||||||
|
|
||||||
var PAGE_TOML_WITH_TAXONOMIES = `+++
|
var PAGE_TOML_WITH_TAXONOMIES = `+++
|
||||||
tags = [ "a", "b", "c" ]
|
tags = [ "a", "B", "c" ]
|
||||||
categories = "d"
|
categories = "d"
|
||||||
+++
|
+++
|
||||||
TOML Front Matter with tags and categories`
|
TOML Front Matter with tags and categories`
|
||||||
|
|
|
@ -40,7 +40,7 @@ Leading
|
||||||
{
|
{
|
||||||
"title": "spf13-vim 3.0 release and new website",
|
"title": "spf13-vim 3.0 release and new website",
|
||||||
"description": "spf13-vim is a cross platform distribution of vim plugins and resources for Vim.",
|
"description": "spf13-vim is a cross platform distribution of vim plugins and resources for Vim.",
|
||||||
"tags": [ ".vimrc", "plugins", "spf13-vim", "vim" ],
|
"tags": [ ".vimrc", "plugins", "spf13-vim", "VIm" ],
|
||||||
"date": "2012-04-06",
|
"date": "2012-04-06",
|
||||||
"categories": [
|
"categories": [
|
||||||
"Development",
|
"Development",
|
||||||
|
@ -55,7 +55,7 @@ Content of the file goes Here
|
||||||
{
|
{
|
||||||
"title": "spf13-vim 3.0 release and new website"
|
"title": "spf13-vim 3.0 release and new website"
|
||||||
"description": "spf13-vim is a cross platform distribution of vim plugins and resources for Vim."
|
"description": "spf13-vim is a cross platform distribution of vim plugins and resources for Vim."
|
||||||
"tags": [ ".vimrc", "plugins", "spf13-vim", "vim" ]
|
"tags": [ ".vimrc", "plugins", "spf13-vim", "VIm" ]
|
||||||
"date": "2012-04-06"
|
"date": "2012-04-06"
|
||||||
"categories": [
|
"categories": [
|
||||||
"Development"
|
"Development"
|
||||||
|
@ -565,6 +565,26 @@ func TestLayoutOverride(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSliceToLower(t *testing.T) {
|
||||||
|
tests := []struct{
|
||||||
|
value []string
|
||||||
|
expected []string
|
||||||
|
}{
|
||||||
|
{[]string{"a","b","c"}, []string{"a", "b", "c"}},
|
||||||
|
{[]string{"a","B","c"}, []string{"a", "b", "c"}},
|
||||||
|
{[]string{"A","B","C"}, []string{"a", "b", "c"}},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, test := range tests {
|
||||||
|
res := sliceToLower(test.value)
|
||||||
|
for i, val := range res {
|
||||||
|
if val != test.expected[i] {
|
||||||
|
t.Errorf("Case mismatch. Expected %s, got %s", test.expected[i], res[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func listEqual(left, right []string) bool {
|
func listEqual(left, right []string) bool {
|
||||||
if len(left) != len(right) {
|
if len(left) != len(right) {
|
||||||
return false
|
return false
|
||||||
|
|
Loading…
Reference in a new issue