Browse Source

:sarkles: add mermaid render

visuddhinanda 4 years ago
parent
commit
44e9cee83e
2 changed files with 13 additions and 3 deletions
  1. 4 2
      public/app/studio/index_head.php
  2. 9 1
      public/app/term/note.js

+ 4 - 2
public/app/studio/index_head.php

@@ -61,6 +61,9 @@ require_once '../public/load_lang.php';
 	<script src="../public/js/jquery-ui-1.12.1/jquery-ui.js"></script>
 	<link type="text/css" rel="stylesheet" href="../public/js/jquery-ui-1.12.1/jquery-ui.css"/>	
 
+	<script src="../../node_modules/marked/marked.min.js"></script>
+	<script src="../../node_modules/mermaid/dist/mermaid.min.js"></script>
+
 	<script src="../term/term.js"></script>
 	<script src="../term/note.js"></script>
 	<script src="../term/term_popup.js"></script>
@@ -69,8 +72,7 @@ require_once '../public/load_lang.php';
 	<script language="javascript" src="../guide/guide.js"></script>
 	<link type="text/css" rel="stylesheet" href="../guide/guide.css"/>
 
-	<script src="../../node_modules/marked/marked.min.js"></script>
-	<script src="../../node_modules/mermaid/dist/mermaid.min.js"></script>
+
 
 
 	<script src="../widget/iframe_modal_win.js"></script>

+ 9 - 1
public/app/term/note.js

@@ -12,6 +12,12 @@ var _channalData;
 var MAX_NOTE_NEST = 2;
 
 var gBuildinDictIsOpen = false;
+
+var note_renderer = new marked.Renderer();
+note_renderer.code = function(code, language) {
+    if (language == "mermaid") return '<pre class="mermaid">' + code + "</pre>";
+    else return "<pre><code>" + code + "</code></pre>";
+};
 /*
 {{203-1654-23-45@11@en@*}}
 <note>203-1654-23-45@11@en@*</note>
@@ -78,7 +84,7 @@ function note_init(input,channel="",editor="",lang="en") {
 	if (input) {
 		let output = "<div>";
 		//output += marked(input);
-		output += marked(term_std_str_to_tran(input, channel, editor, lang));
+		output += marked(term_std_str_to_tran(input, channel, editor, lang), { renderer: note_renderer });
 
 		output += "</div>";
 
@@ -193,6 +199,8 @@ function note_refresh_new(callback = null) {
 						splite_pali_word();
 						//处理编辑框消息
 						tran_sent_textarea_event_init();
+						//初始化mermaid
+						mermaid.initialize();
 						if (callback) {
 							callback();
 						}