Как визуализировать контент quill js с помощью фреймворка go buffalo

Варианты, о которых я знаю, это,

  1. Получите содержимое quilljs из getContents API, которое дает структуру JSON. Я могу отправить это на сервер и сохранить на сервере.

  2. Получите innerHTML div, который передается редактору Quill, и сохраните его.

Подход 1:

При отображении его мне нужно записать содержимое в моем шаблоне буйвола в переменной, например

<script> var contentJSON = "<%= content %>"</script>

Затем после загрузки страницы мне нужно установить содержимое, например quillInstance.setContents(contentJSON)

Подход 2:

Если запрос скомпрометирован, html может содержать неэкранированные скрипты. Итак, если я попробую так

c.Set("getContent", func(content string) template.HTML {
    return template.HTML(html.EscapeString(content))
})

Это экранирует все объекты html. Таким образом, все стили div, введенные quill js, также исчезли с этим. Таким образом, весь контент выглядит как обычная строка.

Каков правильный подход к хранению контента? Я ищу способ получить это на сервере.


person ace_dev    schedule 14.07.2019    source источник


Ответы (1)


Наконец, я заканчиваю следующим,

Helpers: render.Helpers{
            "quil_for": func(content string) template.HTML {
                content = strings.ReplaceAll(content, "<script>", "&lt;script&gt;")
                content = strings.ReplaceAll(content, "<a>", "&lt;a&gt;")
                content = strings.ReplaceAll(content, "</a>", "&lt;/a&gt;")
                content = strings.ReplaceAll(content, "</script>", "&lt;/script&gt;")
                return template.HTML(content)
            },
        },

вместо этого

c.Set("getContent", func(content string) template.HTML {
    return template.HTML(html.EscapeString(content))
})

Это экранирует только скрипт, тег привязки и разрешение html как есть.

person ace_dev    schedule 26.07.2019