This is not a recent regression; the behavior exists in v0.146.0 and later.
While updating the docs for the new template selection logic, I ran across this:
Note that if the output format’s Media Type has more than one suffix defined, only the first is considered.
I wanted to verify that the behavior had not changed, and found that with v0.146.0 and later, only the last (sorted alphabetically) is considered.
site config
[mediaTypes.'text/html']
suffixes = ['b','a','d','c']
[outputFormats.html]
mediaType = 'text/html'
project structure
./
├── content/
│ └── p1.md
├── layouts/
│ └── _default/
│ ├── page.html.a
│ ├── page.html.b
│ ├── page.html.c
│ └── page.html.d
└── hugo.toml
With the example above, layouts/_default/page.html.d is used instead of layouts/_default/page.html.b. However, the page is published to the correct path:
public/
└── p1/
└── index.b <-- extension is correct, but wrong template is used
This example is obviously contrived, and I suspect a rare configuration/setup.
Test case to follow.
See also #8897.
This is not a recent regression; the behavior exists in v0.146.0 and later.
While updating the docs for the new template selection logic, I ran across this:
I wanted to verify that the behavior had not changed, and found that with v0.146.0 and later, only the last (sorted alphabetically) is considered.
site config
project structure
With the example above,
layouts/_default/page.html.dis used instead oflayouts/_default/page.html.b. However, the page is published to the correct path:This example is obviously contrived, and I suspect a rare configuration/setup.
Test case to follow.
See also #8897.