Is there an official file extension for standalone Markdown files?
There is no requirement for a Markdown file extension, as other answers have explained. But in order for editors or parsers to guarantee that the file they are using is Markdown-formatted, they would look for one of the following extensions:
.markdown .mdown .mkdn .md .mkd .mdwn .mdtxt .mdtext .text .Rmd
There are websites such as GitHub that only use a selection of these extensions for converting to HTML so developers will conform to their standard. (see examples below)
Personally, I have seen .markdown and .mdown used the most, and as a Linux user I would avoid using .md as this can also be a machine description file for compiling code with GCC.
Examples of extension usage:
Elements Markdown Editor: markdown, mdown, mdwn, md
Vim markdown: markdown, mdown, mkdn, mdwn, mkd, md
R Studio: Rmd
And especially revealing is one of the explanations:
Markdown isn't meant to take over the format of a file, it's a way to subtly add information to the plaintext. Really, the presence of Markdown is metadata, not a file format.
No one opening a text file will be confused if they find Markdown syntax, it's pure bonus.
In this sense, it makes sense to use ".text", ".txt", or whatever other plaintext extension is relevant.
An editor which knows nothing about Markdown won't care about the metadata and won't be confused by the variety of "non-standard" extensions, but will display and edit the plaintext just fine.
iA Writer uses the extension .md for Markdown content.
Doxygen added Markdown support in v1.8. It looks for
.markdown file extensions.
In short, the answer is no.
If you are simply using markdown files as stand-alone files that will not be processed in any way, name them however you please. If you are using them in a system the processes them into HTML or PDF or some other format, then you need to figure out what file extensions that system expects for markdown files.
Also, in the context of a UNIX system, file extensions are not even mandatory. You could simply have a file called "README" in markdown format.
As an addition to Cas' very good answer I'd like to mention that his link to the github repository of Vim markdown is somewhat deprecated.
For example one user did a fork to support Gollum links.