Non Engli sh native.
Какой у меня код:
File create.blade.php
<textarea> dirty markdown content </textarea>
<preview> marked.js parsed html </preview>
<!-- this is a markdown editor, it can parse markdown to html using marked.js-->
<!-- then show in preview -->
<!-- something like stackoverflow editor does -->
<!-- when user edit done. post dirty markdown data to BlogController@create -->
File edit.blade.php
<textarea> parsed clean markdown content from backend </textarea>
<preview> clean parsed html</preview>
File BlogController.php
<?php
// get editor data from create.blade.php
// parse markdown content to prevent XSS
// save cleaned markdown content to DB
function create() {}
// get clean markdown data from DB
// return cleaned markdown content to edit.blade.php
function edit() {}
Застрял на шаге
Я застрял на этом шаге: dirty markdown content
<- разобрать PHP -> cleaned markdown content
Что я пробовал
Я пробовал: parsedown , commonmark HTMLPurifier Но я не смог разделить библиотеку. Например, обычный знак, это похоже на Dirty markdown content
<--> Dirty AST tree
<---> AST to HTML(with parse)
Я думал, что шаг AST to HTML(with parse)
мне так сложно разделить на части AST tree
<--> parsed AST tree
<--> Cleaned markdown content
И HTMLPurifier проанализирует весь контент, даже теги script
, окруженные `` `: До
```html
some text
<script> some js code </script>
some text
```
После использования HTMLPurifier он возвращает
```html
some text
some text
```
теги скрипта исчезли.
Чего я ожидаю
Некоторые библиотеки, которые могут синтаксический анализ dirty markdown content
на cleaned markdown content
ps: я использую laravel 7. *, помеченные. js, MySQL. pps: Спасибо за чтение и спасибо за любые предложения.
Обновлено
Я ожидаю: Пользователь редактирует грязную уценку -> clean dirty markdown -> cleaned markdown ->
сохранить в БД -> вернуть очищенное содержимое уценки -> пользовательское редактирование -> ...
Но, возможно, есть другой способ выполнить эту работу: Пользователь редактирует грязную уценку -> CommonMark -> cleaned HTML -> HTML to Markdown ->
сохранить в БД -> вернуть очищенное содержимое уценки -> пользовательское редактирование -> ...