2017-02-20 5 views
0

Ich versuche, einen Blog mit Kolben zu bauen. SimpleMDE wird als Post-Editor (HTML-Code unten) verwendet. Ich möchte den Markdown-Inhalt in lokaler Datei speichern und von Flasch-Misaka in Jinja2 rendern.
In SimpleMDE kann ich Rohabschrift Inhalt von simplemde.value() erhalten. Aber wenn ich simplemde.value() an var in Javascript übergebe. "\ n" fehlt nach dem Passieren. Ich denke, dass es einige "magische" Werkzeuge in Javascript haben kann. Der HTML-Code gibt 2 Warnmeldungen zurück, erste Nachricht enthält Zeilenvorschub, die zweite nicht.
Könnte mir jemand ein paar Hits über diese Probleme geben?Markdown Inhalt in Simplemde speichern

<!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> 

Antwort

1

Wenn Sie roh Abschlags erhalten möchten, nur simplemde.value() verwenden.

Wenn Sie rohe Abschrift in normalen textarea setzen, wird es in reinen Text.

<!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> 

Holen Sie sich den Inhalt:

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

Ich werde es versuchen. Vielen Dank. Aber ich übergebe den Wert an 'markdown_raw', dessen Typ 'textarea' ist. – l0o0

+0

Ich weiß, deshalb fehlt Ihnen der Zeilenvorschub. –

+0

Wie Sie erwähnt haben. Ich muss Tag zu normalen 'textares' ändern, wie kann ich simplemde.value() in der Flasche bekommen? – l0o0