Как распечатать текст таблицы в таблице md с помощью showdown.js?

Я хотел бы распечатать таблицу 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 |

Есть ли другой вариант, который я упускаю?

Помогает ли вставка разрывов строк после последнего "|" символов вашей текстовой переменной? ('| h1 | h2 | h3 |\n' + ... )?

Heiko Jakubzik 29.05.2019 12:17

Я пробовал! Но провал... ;-;

Funniest 30.05.2019 02:50
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
510
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот модифицированная версия .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-последовательностями?

Heiko Jakubzik 03.06.2019 11:13

О, спасибо!

Funniest 04.06.2019 04:06

как вы можете видеть таблицу, а не (разобранные) теги таблицы?

Timo 31.03.2021 19:41
здесь это, document.write()
Timo 31.03.2021 20:13

Другие вопросы по теме