Я хотел бы распечатать таблицу md с помощью showdown.js. Но, похоже, он не преобразуется в таблицу уценки правильно, как я ожидал.
Я попытался установить параметры («параметр таблицы») для изменения «истина» и преобразовать текст в md. но не работает.
Ниже приведены функции, которые я реализовал, для вашего сведения.
setMdConvert()
<= Как я уже сказал, я только что перепробовал все варианты на истину.
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.info(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 |
Есть ли другой вариант, который я упускаю?
Я пробовал! Но провал... ;-;
Вот модифицированная версия .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>
В приведенном выше примере вам не нужна замена управляющих последовательностей. Но уценка таблицы должна иметь разрывы строк, чтобы mdConverter понял, что имеет дело с таблицей. Кроме того, вам нужно вызвать mdConverter.setOption('tables', true)
. Или я неправильно понял природу вашей проблемы с escape-последовательностями?
О, спасибо!
как вы можете видеть таблицу, а не (разобранные) теги таблицы?
Помогает ли вставка разрывов строк после последнего "|" символов вашей текстовой переменной? ('| h1 | h2 | h3 |\n' + ... )?