在simplemde中保存降价内容

时间:2017-02-20 17:47:02

标签: python flask markdown simplemde

我正在尝试使用flask建立一个博客。 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>

1 个答案:

答案 0 :(得分:3)

如果您想获得原始降价,只需使用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)