markdown富文本編輯器——editor.md 簡(jiǎn)單示例

一、富文本編輯器

1.1、編輯器頁面源碼

<!-- md編輯器例子-->
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="utf-8" />
    <title>Simple example - Editor.md examples</title>
    <link rel="stylesheet" href="../css/editormd.css" />
    <link rel="shortcut icon"  type="image/x-icon" />
</head>
<body>
<div id="layout">
    <header>
        <h1>Simple example</h1>
    </header>
    <div id="test-editormd">
        <textarea style="display:none;">111111111111111111</textarea>
    </div>
</div>

<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依賴 jQuery,所以必須放在前邊) -->
<script src="../js/editormd.js"></script>
<script type="text/javascript">
    var testEditor;

    $(function() {
        testEditor = editormd("test-editormd", {
            width   : "90%",
            height  : 640,
            syncScrolling : "single",
            path    : "../lib/"
        });
    });
    $('#test-editormd').bind('input propertychange', function() {
        var content = $('.editormd-markdown-textarea').val()
        console.log(content)
    });

</script>
</body>
</html>

1.2 關(guān)鍵源碼解釋

1.2.1 html

添加一個(gè)textarea作為文本編輯器基本元素

<div id="test-editormd">
        <textarea style="display:none;">111111111111111111</textarea>
    </div>

1.2.2 css

引入editormd.css即可

<link rel="stylesheet" href="../css/editormd.css" />
<link rel="shortcut icon"  type="image/x-icon" />

1.2.3 js

引入 依賴js

<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依賴 jQuery,所以必須放在前邊) -->
<script src="../js/editormd.js"></script>

編寫markdown內(nèi)容保存邏輯

<script type="text/javascript">
    var testEditor;

    $(function() {
        testEditor = editormd("test-editormd", {
            width   : "90%",
            height  : 640,
            syncScrolling : "single",
            path    : "../lib/"
        });
    });
    $('#test-editormd').bind('input propertychange', function() {
        var content = $('.editormd-markdown-textarea').val()
        console.log(content)
    });

</script>

通過獲取類editormd-markdown-textarea的值的方式獲取輸入內(nèi)容。拿到內(nèi)容后存入數(shù)據(jù)庫即可。

1.3 注意

  • jquery.min.js必須最先引入
  • editormd.js依賴于其他的js文件。所以要將markdown.md文件夾下的/lib 路徑下的內(nèi)容放入靜態(tài)資源文件夾下。

二、顯示數(shù)據(jù)庫中取出的md文本內(nèi)容

2.1 html源碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="../css/editormd.preview.css" />
    <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
    <script src="../lib/marked.min.js"></script>
    <script src="../lib/prettify.min.js"></script>
    <script src="../lib/raphael.min.js"></script>
    <script src="../lib/underscore.min.js"></script>
    <script src="../lib/sequence-diagram.min.js"></script>
    <script src="../lib/flowchart.min.js"></script>
    <script src="../lib/jquery.flowchart.min.js"></script>
    <script src="../js/editormd.js"></script>
</head>
<body>
<div id="doc-content">
    <textarea style="display:none;" placeholder="markdown語言">#${md.content }</textarea>
</div>

<script type="text/javascript">
    var testEditor;
    $(function () {
        testEditor = editormd.markdownToHTML("doc-content", {//注意:這里是上面DIV的id
            htmlDecode: "style,script,iframe",
            emoji: true,
            taskList: true,
            tocm: true,
            tex: true, // 默認(rèn)不解析
            flowChart: true, // 默認(rèn)不解析
            sequenceDiagram: true, // 默認(rèn)不解析
            codeFold: true
        });});
</script>
</body>
</html>

2.2 關(guān)鍵源碼解釋

2.2.1 引入的css和js

直接引入css 和 js即可

<link rel="stylesheet" href="../css/editormd.preview.css" />
    <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
    <script src="../lib/marked.min.js"></script>
    <script src="../lib/prettify.min.js"></script>
    <script src="../lib/raphael.min.js"></script>
    <script src="../lib/underscore.min.js"></script>
    <script src="../lib/sequence-diagram.min.js"></script>
    <script src="../lib/flowchart.min.js"></script>
    <script src="../lib/jquery.flowchart.min.js"></script>
    <script src="../js/editormd.js"></script>

2.2.2 回顯邏輯

<script type="text/javascript">
    var testEditor;
    $(function () {
        testEditor = editormd.markdownToHTML("doc-content", {//注意:這里是上面DIV的id
            htmlDecode: "style,script,iframe",
            emoji: true,
            taskList: true,
            tocm: true,
            tex: true, // 默認(rèn)不解析
            flowChart: true, // 默認(rèn)不解析
            sequenceDiagram: true, // 默認(rèn)不解析
            codeFold: true
        });});
</script>

直接按照模板代碼寫即可。

<textarea style="display:none;" placeholder="markdown語言">#${md.content }</textarea>

將從數(shù)據(jù)庫拿出的md文本內(nèi)容賦值給textarea的val即可顯示文本內(nèi)容。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。