Как конвертировать / анализировать необработанный HTML в блоки wp gutenberg с помощью wp-блоков api?

Возможно, вы захотите заменить теги
и

символами новой строки перед тем, как удалить HTML, чтобы он не стал неразборчивым, как предлагает Тим.

Единственный способ, я могу думать об удалении тегов HTML но оставляя не-HTML между угловыми скобками, будет проверяться на список тегов HTML . Что-то в этом направлении ...

replaceAll("\\<[\s]*tag[^>]*>","")

Затем HTML-декодирование специальных символов, таких как &. Результат не следует считать дезинфицированным.

0
задан DiFox 31 March 2019 в 01:54
поделиться

2 ответа

Скопируйте ваш html из браузера (на самом деле html не означает вывод вашего html), а затем вставьте его в редактор Gutenberg. Гутенберг сам позаботится о разборе.

Gutenberg также предоставляет дополнительные функции, в которых он поддерживает вставку копий из документов MS Word.

0
ответ дан Mehmood Ahmad 31 March 2019 в 01:54
поделиться

Существует небольшая вспомогательная функция, которая сначала конвертирует необработанный HTML-код в блоки Гутенберга, а затем сериализует его в готовый для Гутенберга пост-контент.

Запрос сценария

function load_admin_resources_footer() {
    wp_enqueue_script( 'filter', get_template_directory_uri() . '/js/article-filter.js', array('jquery', 'wp-blocks', 'wp-edit-post'));
}
add_action('admin_footer', 'load_admin_resources_footer');

Преобразование в блоки

var editholdy_is_activate = false;
function convert_to_gutenberg(content, remove_spaces = false) { // "'wp-blocks', 'wp-edit-post'" - should be setted as current script dependecies

    // initiate all built-in gutenberg blocks
    if (!editholdy_is_activate) {
        $('<div />').attr('id', 'editholdy').attr('style', 'display: none').appendTo('body');
            wp.editPost.initializeEditor('editholdy');
            editholdy_is_activate = true;
    }

    var gutblock = wp.blocks.rawHandler({ 
        HTML:  content,
    });

    var serelized = wp.blocks.serialize(gutblock);
    serelized = (remove_spaces) ? serelized.replace(/(\n|\r)/g, '') : serelized;

    return serelized;

}
0
ответ дан DiFox 31 March 2019 в 01:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: