# External Markdown Processor

**URL:** <https://discourse.gohugo.io/t/external-markdown-processor/13504>\
**Category:** support\
**Created:** [August 10, 2018, 5:53pm UTC](https://discourse.gohugo.io/t/external-markdown-processor/13504 "2018-08-10T17:53:53Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![skyzyx](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/skyzyx/32/6630_2.png) [@skyzyx](https://discourse.gohugo.io/u/skyzyx)\
**Post date:** [August 10, 2018, 5:53pm UTC](https://discourse.gohugo.io/t/external-markdown-processor/13504/1 "2018-08-10T17:53:53Z")

</div>

I’m interested in a bring-your-own-Markdown-processor. Maybe it’s Pandoc, maybe cmark, maybe cmark-gfm — whatever. But it should be something that I can “shell out” to. What are my options?

---

<div class="post-metadata">

**Author:** ![maiki](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/maiki/32/16384_2.png) [@maiki](https://discourse.gohugo.io/u/maiki)\
**Post date:** [August 11, 2018, 1:49am UTC](https://discourse.gohugo.io/t/external-markdown-processor/13504/2 "2018-08-11T01:49:07Z")

</div>

> [@skyzyx](#):
>
> What are my options?

> **[Content formats](https://gohugo.io/content-management/formats/)**
>
> Both HTML and Markdown are supported content formats.

---

<div class="post-metadata">

**Author:** ![skyzyx](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/skyzyx/32/6630_2.png) [@skyzyx](https://discourse.gohugo.io/u/skyzyx)\
**Post date:** [August 20, 2018, 9:39pm UTC](https://discourse.gohugo.io/t/external-markdown-processor/13504/3 "2018-08-20T21:39:31Z")

</div>

Yeah, I spent a bunch of time going over that doc, and couldn’t make heads or tails of how to instruct Hugo to send all `.md` files to `cmark-gfm` which I have custom compiled and put on my path.

It looks like there’s some “magic” in how Hugo determines how to handle a content type that isn’t clearly explained in that document. I’m not writing “Black Friday Markdown” or “MMark Markdown” — I’m intentionally writing “GitHub-Flavored Commonmark”.

I suppose what I was looking for was a `config.toml` entry for binary-on-my-PATH, or path-to-binary. If the trick instead is to use a different file extension or an entry in my front-matter, I can do that (it’s not clear in the doc how to achieve this), but it seems like a lower-level decision than that, no?

Is mixing and matching markup types within the same project a larger use-case than sticking with one markup, but choosing your processor? Perhaps there’s an option to say `.md = cmark-gfm`.

Anyway, the doc says that _this feature is in its infancy_, so I’m providing feedback on the implementation.

---

<div class="post-metadata">

**Author:** ![lpar](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/lpar/32/5465_2.png) [@lpar](https://discourse.gohugo.io/u/lpar)\
**Post date:** [April 26, 2019, 5:43pm UTC](https://discourse.gohugo.io/t/external-markdown-processor/13504/4 "2019-04-26T17:43:56Z")

</div>

Looking at the code, the external processor support is only for a predefined hard-coded list of external renderers, and CommonMark isn’t one of them. So we’re stuck with non-standardized Markdown for now.
