mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
parent
19f2e72913
commit
c43b512b47
2 changed files with 47 additions and 1 deletions
|
@ -219,7 +219,12 @@ func (formats Formats) FromFilename(filename string) (f Format, found bool) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ext != "" {
|
if ext != "" {
|
||||||
return formats.GetBySuffix(ext)
|
f, found = formats.GetBySuffix(ext)
|
||||||
|
if !found && len(parts) == 2 {
|
||||||
|
// For extensionless output formats (e.g. Netlify's _redirects)
|
||||||
|
// we must fall back to using the extension as format lookup.
|
||||||
|
f, found = formats.GetByName(ext)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,6 +91,47 @@ func TestGetFormatByExt(t *testing.T) {
|
||||||
require.False(t, found)
|
require.False(t, found)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetFormatByFilename(t *testing.T) {
|
||||||
|
noExtNoDelimMediaType := media.TextType
|
||||||
|
noExtNoDelimMediaType.Suffix = ""
|
||||||
|
noExtNoDelimMediaType.Delimiter = ""
|
||||||
|
|
||||||
|
noExtMediaType := media.TextType
|
||||||
|
noExtMediaType.Suffix = ""
|
||||||
|
|
||||||
|
var (
|
||||||
|
noExtDelimFormat = Format{
|
||||||
|
Name: "NEM",
|
||||||
|
MediaType: noExtNoDelimMediaType,
|
||||||
|
BaseName: "_redirects",
|
||||||
|
}
|
||||||
|
noExt = Format{
|
||||||
|
Name: "NEX",
|
||||||
|
MediaType: noExtMediaType,
|
||||||
|
BaseName: "next",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
formats := Formats{AMPFormat, HTMLFormat, noExtDelimFormat, noExt, CalendarFormat}
|
||||||
|
f, found := formats.FromFilename("my.amp.html")
|
||||||
|
require.True(t, found)
|
||||||
|
require.Equal(t, AMPFormat, f)
|
||||||
|
f, found = formats.FromFilename("my.ics")
|
||||||
|
require.True(t, found)
|
||||||
|
f, found = formats.FromFilename("my.html")
|
||||||
|
require.True(t, found)
|
||||||
|
require.Equal(t, HTMLFormat, f)
|
||||||
|
f, found = formats.FromFilename("my.nem")
|
||||||
|
require.True(t, found)
|
||||||
|
require.Equal(t, noExtDelimFormat, f)
|
||||||
|
f, found = formats.FromFilename("my.nex")
|
||||||
|
require.True(t, found)
|
||||||
|
require.Equal(t, noExt, f)
|
||||||
|
f, found = formats.FromFilename("my.css")
|
||||||
|
require.False(t, found)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func TestDecodeFormats(t *testing.T) {
|
func TestDecodeFormats(t *testing.T) {
|
||||||
|
|
||||||
mediaTypes := media.Types{media.JSONType, media.XMLType}
|
mediaTypes := media.Types{media.JSONType, media.XMLType}
|
||||||
|
|
Loading…
Reference in a new issue