如何使用showdown.js将表文本打印到md表?

时间:2019-05-29 08:56:26

标签: javascript jquery html css showdown

我想使用showdown.js打印md表。但是,它似乎没有像我期望的那样正确转换为降价表。

我尝试将options('table option')设置为'true'并将文本转换为md。但是,不起作用。

下面是我实现的功能,仅供参考。

setMdConvert() <=正如我所说,我只是尝试了所有选项为true。

getTechDescriptionMd() <=一种用于将任意降价文本转换为降价表的测试功能

function setMdConvert() {
    var mdConverter = new showdown.Converter();
    var options = showdown.getOptions();
    var keys = Object.keys(options);

    keys.forEach((key) => {
        if(options[key].constructor === boolConstructor)
            mdConverter.setOption(key, true);
    });

    console.log(mdConverter.getOptions());

    return mdConverter;
}

function getTechDescriptionMd() {
    var text = '| h1    |    h2   |      h3 |' +
               '|:------|:-------:|--------:|' +
               '| 100   | [a][1]  | ![b][2] |' +
               '| *foo* | **bar** | ~~baz~~ |';
    var html = mdConverter.makeHtml(text);

    $('.desc-viewer').html(html);
}

结果:

| h1 | h2 | h3 ||:------|:-------:|--------:|| 100 | [a][1] | ![b][2] || foo | bar | baz |

我还有其他选择吗?

1 个答案:

答案 0 :(得分:0)

这是render()的修改版,对我有用。我添加了昨天在评论中已经提到的换行符,并初始化了.getTechDescriptionMd()并将其选项'tables'设置为true(受documentation启发)。

现在看起来像这样:

mdConverter

我得到的结果是:

function getTechDescriptionMd() {
    var text = '| h1    |    h2   |      h3 |\n' +
               '|:------|:-------:|--------:|\n' +
               '| 100   | [a][1]  | ![b][2] |\n' +
               '| *foo* | **bar** | ~~baz~~ |';

    var mdConverter = new showdown.Converter();
    mdConverter.setOption('tables', true);
    var html = mdConverter.makeHtml(text);
    $('.desc-viewer').html(html);
}