The Mojolicious documentation gave me the impression that the way to
send a text/plain response was just:
$self->render_text("Plain text content");
I wrote a content_type_is test for such a response the other day, and
its failure made me notice that the type was actually text/html. I asked
about it on #mojo, and learned that render_text is just the opposite of
render_data, and the function name has nothing to do with the content
type of the response.
The incorrect examples at the very beginning of the rendering guide have
been fixed, and the description of render_text has been changed. It used
to say "Render the given content as plain text, note that text will be
encoded" and now it says "Render the given content as Perl characters,
which will be encoded to bytes".
Given the misleading examples present earlier, I wish the description
had also said something like "The default content type of the response
is text/html, and this function does not change it unless you specify a
different format". Anyway, the correct way to send a text/plain response
is to specify the format explicitly as text:
$self->render_text("Plain text content", format => 'txt');