Edit in JSFiddle

function csv2md(src, opt) {
    var del = ","
    var eol = "\n"

    var dst = ""

    src = src.split(eol).map(e => e.split(del))

    if (src.length < 2) {
        return ""
    }

    for (var i = 0; i < src.length; i++) {
        if (i === 1) {
            dst += "|"
            for (var j = 0; j < src[0].length; j++) {
                dst += "---|"
            }
            dst += eol
        }
        var tmp = ""
        tmp = src[i].join("|")
        tmp = "|" + tmp + "|"
        dst += tmp + eol

    }
    return dst
}

function extendHtmlTable(src) {
    src = src.split("<table>").join("<table class=\"ui celled table\">")
    return src
}

var app = new Vue({
    el: '#app',
    data: {
        csv: '',
        md: "",
        html: "",
        debug: ""
    },
    methods: {
        compile() {
            this.md = csv2md(this.csv)
            this.html = marked("\n" + this.md, {
                sanitize: true
            })
            this.debug = extendHtmlTable(this.html)
        },
        changeCsv: function() {
            this.compile()
        },
        changeMd: function() {
            this.html = marked("\n" + this.md, {
                sanitize: true
            })
            this.debug = extendHtmlTable(this.html)
        },
        changeHtml: function() {
            this.debug = extendHtmlTable(this.html)
        }
    }
})