0

我正在尝试使用烧瓶建立一个博客。SimpleMDE 用作帖子编辑器(下面的 html 代码)。我想将降价内容保存到本地文件并由 jinja2 中的 flask-misaka 渲染。
在 SimpleMDE 中,我可以通过simplemde.value(). 但是当我simplemde.value()在 javascript 中传递给 var 时。通过后缺少“\n”。我认为它可能在 javascript 中有一些“魔法”工具。html 代码返回 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>
4

1 回答 1

3

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

当您将 raw markdown 放入 normaltextarea时,它会变成纯文本。

<!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)
于 2017-02-21T02:47:28.530 回答