How to get the Markdown Viewer addon of Firefox to work on Linux?

I've installed the Markdown Viewer Firefox addon, but I cannot get it to work on my Ubuntu installation. Firefox is my browser of choice and I am trying to move to Markdown in Vim as my basic text-writing software. Is there a way I can get this to work?


Solution 1:

Happy to report that I was able to find a solution that I provided here:

https://github.com/Thiht/markdown-viewer/issues/62#issuecomment-277702230

I've also copied it here for reference:

On Linux, you'll need to create a new MIME type here:

~/.local/share/mime/packages/text-markdown.xml

With the following content:

<?xml version="1.0"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
  <mime-type type="text/plain">
    <glob pattern="*.md"/>
    <glob pattern="*.mkd"/>
    <glob pattern="*.markdown"/>
  </mime-type>
</mime-info>

Then run:

update-mime-database ~/.local/share/mime

Solution 2:

I had to manually edit my ~/.mozilla/firefox/<PROFILE>/mimeTypes.rdf. This review of the addon says:

For linux users, try to add "md" to .mozilla/*.default/mimeTypes.rdf this line : mdin text/plain section :)

Hmm. I couldn't find a text/plain section, but I found this page is helpful:

If there is not yet an existing RDF node for 'text/plain' add it, and add "md" as a file extension.

<RDF:Description RDF:about="urn:mimetype:text/plain"
       NC:value="text/plain"
       NC:fileExtensions="md"
       NC:description="Text Document">
   <NC:handlerProp RDF:resource="urn:mimetype:handler:text/plain"/>
</RDF:Description>

However, what I ended up doing was:

<RDF:Description RDF:about="urn:mimetype:text/plain; charset=utf8"
               NC:value="text/plain; charset=utf8"
               NC:handleInternal="true"
               NC:description="Markdown Document">
  <NC:fileExtensions>md</NC:fileExtensions>
  <NC:fileExtensions>mkd</NC:fileExtensions>
  <NC:fileExtensions>mdown</NC:fileExtensions>
  <NC:fileExtensions>markdown</NC:fileExtensions>
  <NC:handlerProp RDF:resource="urn:mimetype:handler:text/plain; charset=utf8"/>
</RDF:Description>

It seemed to be the NC:handInternal="true" that did the trick. Interestingly, it seems it does not work with the text/markdown or text/x-markdown MIME types. The charset=utf8 is because I write all my Makefiles in Unicode.