2017-02-20 10 views
0

Я пытаюсь создать блог с помощью фляжки. SimpleMDE используется как редактор сообщений (html-код ниже). Я хочу сохранить содержание разметки в локальный файл и сделать flask-misaka в jinja2.
В SimpleMDE я могу получить исходный контент разметки simplemde.value(). Но когда я передаю simplemde.value() в var в javascript. «\ n» отсутствует после прохождения. Я думаю, что у него могут быть некоторые «волшебные» инструменты в javascript. Сообщение html code return 2 alert, первое сообщение содержит фид строки, второе - нет.
Может ли кто-нибудь дать мне несколько хитов об этих проблемах?Сохранить информацию о разметке в simplemde

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Editor</title> 
    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css"> 
    <link rel='stylesheet' href='.{{ url_for("static", filename="css/simplemde.min.css") }}'> 
    <script src='.{{ url_for("static", filename="js/simplemde.min.js") }}'></script> 
    </head> 
    <script type='text/javascript'> 
    function check() { 
     var raw = simplemde.value(); 
     alert(raw); 
     document.testform.markdown_raw.value=raw; 
     alert(document.testform.markdown_raw.value); 
    } 
    </script> 
    <body> 
    <form method='post' class='form' role='form' name='testform'> 
     <div class="form-group " style="padding-top:10px"> 
     <input class="form-control" id="post_title" name="post_title" type="text" value="Title?"> 
     </div> 
     <div class="form-group"> 
     <input class="form-control" id="markdown" name="post_content" type="textarea" value=""> 
     </div> 
     <div class="form-group" style='display:none'> 
     <input class="form-control" id="markdown_raw" name="markdown_raw" type="textarea" value="Origin"> 
     </div> 
     <div> 
     <input class='btn btn-default' onclick="check();" id='submit' name='submit' type='submit' value='Save'> 
     <input class='btn btn-default' id='publish' name='publish' type='submit' value='Publish'> 
     </div> 
    </form> 
    <script type='text/javascript'> 
     var simplemde = new SimpleMDE({ element: document.getElementById('markdown') }); 
    </script> 
    </body> 
</html> 

ответ

1

Если вы хотите, чтобы получить сырую уценку, просто использовать simplemde.value().

Когда вы помещаете необработанную уценку в нормальный textarea, она превращается в чистый текст.

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Editor</title> 
    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css"> 
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.css"> 
    <script src="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.js"></script> 
</head> 
<body> 
<form method='post' class='form' role='form' name='testform'> 
    <div class="form-group " style="padding-top:10px"> 
     <input class="form-control" id="post_title" name="post_title" type="text" value="Title?"> 
    </div> 
    <div class="form-group"> 
     <textarea class="form-control" id="markdown" name="post_content"></textarea> 
    </div> 
    <div> 
     <input class='btn btn-default' onclick="" id='submit' name='submit' type='submit' value='Save'> 
     <input class='btn btn-default' id='publish' name='publish' type='submit' value='Publish'> 
    </div> 
</form> 
<script type='text/javascript'> 
     var simplemde = new SimpleMDE({ element: document.getElementById('markdown') }); 
</script> 
</body> 
</html> 

Получить содержание:

from flask import Flask, render_template, request 

app = Flask(__name__) 


@app.route('/', methods=['GET', 'POST']) 
def test(): 
    if request.method == 'POST': 
     raw_md = request.form['post_content'] 
    return render_template('index.html') 


if __name__ == '__main__': 
    app.run(debug=True) 
+0

у меня будет попробовать. Спасибо. Но я передаю значение 'markdown_raw' типа whoes' textarea'. – l0o0

+0

Я знаю, поэтому вам не хватает фида. –

+0

Как вы упомянули. Мне нужно сменить тег на обычный 'textares', как я могу получить simplemde.value() в фляге? – l0o0