HTML / JS - Невозможно отобразить HTML при конвертации из Markdown - PullRequest
0 голосов
/ 07 марта 2020

В этом примере я пытаюсь преобразовать все в #fileDisplayArea в уценку. Однако необработанный HTML в div не применяется.

    <div id="fileDisplayArea"># Title
    Lorem **ipsum** dolor sit amet, *consectetur adipiscing* elit

    <center>Consectetur libero id faucibus nisl tincidunt eget</center>

    In ornare quam viverra orci sagittis eu.
    </div>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/markdown-it/10.0.0/markdown-it.min.js"></script>
        <script>
            let md = window.markdownit();
            let txt = document.getElementById('fileDisplayArea').innerHTML;
                document.getElementById('fileDisplayArea').innerHTML = md.render(txt);
        </script>

При правильном выполнении этого кода элементы уценки преобразуются, но необработанный HTML не читается и вместо этого отображается в выходных данных. Изменение последнего экземпляра innerHTML на innerText обеспечивает следующий вывод:

    <p>Lorem <strong>ipsum</strong> dolor sit amet, 
    <em>consectetur adipiscing</em> elit</p>
    <p>&lt;center&gt;Consectetur libero id faucibus nisl tincidunt eget&lt;/center&gt;</p>
    <p>In ornare quam viverra orci sagittis eu.</p>

Это показывает, что экранируются символы меньше / больше, чем символы. Как мне предотвратить это?

Ответы [ 2 ]

0 голосов
/ 07 марта 2020

Для всех, кто может наткнуться на это, мне удалось найти решение. В документации по markdown-it некоторые опции по умолчанию отключены. Возможность реализовать raw HTML отключена. Чтобы это исправить, необходимо включить флаг html. Заменить:

    let md = window.markdownit();

следующим текстом:

    let md = window.markdownit({ 
        html: true, 
    });
0 голосов
/ 07 марта 2020

Вы можете использовать textContent вместо innerText, чтобы пропустить теги HTML, или заключить узел в кавычки, чтобы показать его как блок кода, но innerText всегда будет преобразовывать скобки. Это происходит потому, что библиотека, которую вы используете для наблюдения за строками, и вы пытаетесь преобразовать узел HTML. Кроме того, нет собственного способа центрировать текст с помощью Markdown.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...