Regarding the requirement that an html controller must use uppercase HTML in the name

Hello there. I’m following along in the “Request life-cycle” guide and ran into a little roadblock.

When I came to the section on creating a new view I allowed my LSP integration to autocomplete the module definition. The snippet for defmodule created the following:

defmodule HelloWeb.HelloHtml do

After filling out the index function, I received an error no "index" html template defined for HelloWeb.HelloHTML

After re-reading very carefully, I realized that HTML needed to be in uppercase letters:

- defmodule HelloWeb.HelloHtml do
+ defmodule HelloWeb.HelloHTML do

I find this an interesting restriction, and I’m sure I can learn to live with it, but I’m curious as to where/why the requirement exists. If it’s an immutable rule, I wonder if it might be worth mentioning in the docs.


If you keep reading there’s a pretty in-depth explanation of the naming convention. But I’m sure they would welcome any docs PR