Codementor Events

How to Convert JSON to Markdown using json2md

Published Dec 08, 2015
How to Convert JSON to Markdown using json2md

I love and use both JSON and Markdown in my projects. Each npm package requires a package.json file which is obviously written in JSON format. Also, good projects have good documentation. My favorite language for writing docs is Markdown.

But I don't really write Markdown files. I do write docs, but they are stored in the code (JSDoc comments). I automated the process of generating Markdown docs using Blah. However, sometimes these documentation templates are not enough.

That's why I created json2md which is the bridge between JSON and Markdown languages. Integrating this package with my Blah templates, I can write custom things in the final documentation result using JSON inputs in my package.json (or another JSON file).

How to use

Everything starts with a npm i json2md to download and install the json2md package locally. Then you can require it in your Node.js apps or even on the client-side (in the browser).

For example, to create a Markdown image result, you have to do this:

var json2md = require("json2md");

var myImg = json2md({
    img: {
        source: "http://example.com/image.png"
      , title: "My image"
    }
});
console.log(myImg);

This will output ![My image](http://example.com/image.png).

Here is another example which is more complex:

// Dependencies
var json2md = require("json2md");

console.log(json2md([
    { h1: "JSON To Markdown" }
  , { blockquote: "A JSON to Markdown converter." }
  , { img: [
        { title: "Some image", source: "https://example.com/some-image.png" }
      , { title: "Another image", source: "https://example.com/some-image1.png" }
      , { title: "Yet another image", source: "https://example.com/some-image2.png" }
      ]
    }
  , { h2: "Features" }
  , { ul: [
        "Easy to use"
      , "You can programatically generate Markdown content"
      , "..."
      ]
    }
  , { h2: "How to contribute" }
  , { ol: [
        "Fork the project"
      , "Create your branch"
      , "Raise a pull request"
      ]
    }
]));

This will generate:

# JSON To Markdown
> A JSON to Markdown converter.

![Some image](https://example.com/some-image.png)

![Another image](https://example.com/some-image1.png)

![Yet another image](https://example.com/some-image2.png)

## Features

 - Easy to use
 - You can programatically generate Markdown content
 - ...

## How to contribute

 1. Fork the project
 2. Create your branch
 3. Raise a pull request

And this is not all! You can create your custom converters. Let's suppose you have an input like { sayHello: "World" }. If you want to generate a Hello World! output, you can do:

json2md.converters.sayHello = function (input) {
     return "Hello " + input "!";
};

This basically extends the converters object and adds your custom converter.

Check out json2md on GitHub.
I'm sure there are a lot of things to improve. Feel free to ask questions, open issues and contribute!

Discover and read more posts from Johnny B. (Ionică Bizău)
get started
post commentsBe the first to share your opinion
Manoj Nayak
3 years ago

Hey I am a writer with 2 ghost blogs around 2000 plus articles. I don’t know stuff like CLI or terminal. Is there a no-brainer tool available. Thank you! :)

S.Mohan Ram
5 years ago

great it really helped thank you

jonah rchirika
6 years ago

Hello, i really love this. i did exactly what you said but i don’t know how to view the generated file please is there a way you can help me?

Johnny B. (Ionică Bizău)
6 years ago

Cool! You will have to save the code in a file, install the json2md module (using npm i -S json2md) and then run it using node your-file.js.

For this you will need Node.js & npm.
Hope this helps :)

Show more replies