在 simplemde 中保存 markdown 内容

Save markdown content in simplemde

我正在尝试使用 Flask 创建博客。 SimpleMDE 用作 post 编辑器(下面的 html 代码)。我想将 markdown 内容保存到本地文件并在 jinja2 中使用 flask-misaka 渲染。
在 SimpleMDE 中,我可以通过 simplemde.value() 获取原始降价内容。但是当我将 simplemde.value() 传递给 javascript 中的 var 时。 “\n”在通过后丢失了。我认为 javascript 中可能有一些 "magic" 工具。 html 代码 return 2 条警告消息,第一条消息包含换行符,第二条消息没有。
有人可以给我一些关于这个问题的答案吗?

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

如果你想获得原始降价,只需使用simplemde.value()

当你把raw markdown 变成普通的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)