I have a project that I compile into two different custom project formats (in plain text) with two different extensions set up as part of the format, one of which is .md and neither of which is .txt. When I switch between formats, Scrivener appends the next extension to the previous ones. If I don’t correct it manually, I can get an infinite series of extensions by switching back and forth, like filename.md.tw.md.tw.md, etc. The behavior I expected was filename.md or filename.tw, depending on the format I picked.
Thanks for the report. I can confirm this happens when using the custom extension feature for plain-text outputs. It looks like Scrivener is saving the full export name in its settings when you compile, including the extension, and so when you apply a Format with a different extension the original is considered part of the name (and since it is valid on a Mac for a file to have multiple extensions, like .tar.gz, it’s not easy to just assume anything after the first dot should be overwritten).
And on the other side of the coin, I bet the whole name is being stored so that you don’t have to continually supply a custom extension whenever you compile. For example with the MultiMarkdown export, I would normally want to change .txt to .md, and once I do that the first time I need never worry about it again.
Anyway, we’ll take a look at it and see if there is an elegant way to solve the problem.
This is hopefully fixed for the next update. The problem is that Scrivener saves the last file extension used for plain text files and reapplies it, so that custom extensions can be used. But this isn’t desirable when using a custom plain text extension as part of the format, as both end up getting added.