Как напечатать текст таблицы в таблицу md, используя showdown.js? - PullRequest
0 голосов
/ 29 мая 2019

Я бы хотел напечатать таблицу md, используя showdown.js.Но, похоже, он не конвертируется в таблицу уценок правильно, как я ожидал.

Я попытался установить параметры («опция таблицы»), чтобы они изменились на «true», и преобразовал текст в md.но не работает.

Ниже приведены функции, которые я реализовал, для вашей информации.

setMdConvert() <= Как я уже сказал, я просто перепробовал все варианты для true. </p>

getTechDescriptionMd() <= Тестовая функция для преобразования произвольного текста уценки в таблицу уценок </p>

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 голосов
/ 30 мая 2019

Вот модифицированная версия .getTechDescriptionMd(), которая работает для меня. Я добавил разрывы строк, которые я уже упоминал в своем вчерашнем комментарии, плюс я инициализировал mdConverter и установил для его опции 'таблицы' значение true (вдохновлено документацией ).

Теперь это выглядит так:

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);
}

Результат, который я получаю:

<table>
<thead>
<tr>
<th style="text-align:left;">h1</th>
<th style="text-align:center;">h2</th>
<th style="text-align:right;">h3</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">100</td>
<td style="text-align:center;">[a][1]</td>
<td style="text-align:right;">![b][2]</td>
</tr>
<tr>
<td style="text-align:left;"><em>foo</em></td>
<td style="text-align:center;"><strong>bar</strong></td>
<td style="text-align:right;">~~baz~~</td>
</tr>
</tbody>
</table>
...