如何动态渲染美人鱼流程图?

2024-01-09

我正在使用mermaid https://mermaid-js.github.io/mermaid/#/n00b-gettingStarted用于构建流程图的库。其工作原理是在块内有一个伪代码 - 特殊语法的命令,在此基础上在块中构建流程图。

我希望能够动态更改块的内容,并且脚本每次都会重建框图。

我应该如何设置初始化?也许我应该在设置中添加一些回调函数?

我是这样初始化的:

mermaid.init({/*what setting parameters should be here?*/}, ".someClass"/*selector*/);

但该脚本不会呈现任何新命令。它仅呈现加载文档时存在的命令。

换句话说,我想在线编辑流程图。

function edit() {
  const new_mermaid = document.createElement("div");
  new_mermaid.classList.add("mermaid");
  new_mermaid.classList.add(".someClass");
  /*new_mermaid.innerHTML =
            `graph TD
   1[point 1] --> 2[point 2]`;*/
  // it doesn't work when I append the new   element dynamically! 
  new_mermaid.innerHTML = document.querySelector(".mermaid").innerHTML;
  // it works always.
  document.body.append(new_mermaid);
  /* document.querySelector(".mermaid").innerHTML = 
            `
    graph TD
    A --> B`*/
  // it doesn’t work with event listener
}
edit(); // it works
document.body.addEventListener("click", edit)
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
<script>
  // how to do it correctly?
  mermaid.init({
    noteMargin: 10
  }, ".someClass");
</script>

<div class="mermaid someClass">
  graph TD
  1--> 2
  3 --> 2
  2 --> 1
</div>

看来,我知道答案了。看下面的解决方案:

  document.querySelector("button").addEventListener("click", (e) => {
  const output = document.querySelector(".flowchart");
  if (output.firstChild !== null) {
    output.innerHTML = "";
  }
  const code = document.querySelector(" textarea").value.trim();
  let insert = function (code) {
    output.innerHTML = code;
  };
  mermaid.render("preparedScheme", code, insert);
});
   <script src="https://unpkg.com/[email protected] /cdn-cgi/l/email-protection/dist/mermaid.min.js"></script>

<p>Input your data:</p>
<div class="input">
  <textarea style="width:300px; height:200px"></textarea>
  <br>
  <button>render</button>
</div>
<div>
  <p>output:</p>

  <div class="render_container" style = "width:300px; height:200px; border:thin solid silver" >
      <div class="flowchart"></div>
    </div>
  </div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何动态渲染美人鱼流程图? 的相关文章

随机推荐

  • 使用 UIDocumentPickerViewController 在 Swift 中导入文本

    我目前正在学习 iOS 开发课程 作为我项目的一部分 我的任务是使用UIDocumentPickerViewController导入文本 我发现的每个例子要么 a 用 Objective C 编写 要么 b 用于导入UIImage file
  • 在 Clojure 中将“map”与不同大小的集合一起使用

    我想了解在 clojure 中操作不同大小的集合的惯用方式 有没有办法告诉函数 map 用一些默认值填充集合的其余部分 举个例子 假设我有 3 个向量 def x 1 2 3 4 def y 1 2 3 4 5 def z 1 2 3 4
  • 根据选择器中选择的应用程序为 ACTION_SEND 意图设置不同的文本[重复]

    这个问题在这里已经有答案了 如何设置不同的内容 不同的文本 图像 无图像 ACTION SEND意图 基本上我想要电子邮件的长文本和图像 Facebook 的长文本和 Twitter 的短文本 我知道这个问题 https stackover
  • Excel:如果满足条件,则从范围内进行 TEXTJOIN

    我在 Excel 中遇到了一个问题 但我不知道如何解决 上图中有两个表 表 1 列出了个人之间交换的礼物 并标明了赠送者和接受者 我使用 礼物 和 人 是为了更容易在这里讨论 实际上 这些是交换控制信号的设备 这张表可能有数百行长 表 2
  • 正则表达式查找仅包含一个斜杠的 URL

    我正在测试一个网站 需要使用正则表达式来定位我想要包含在测试中的页面 我将仅定位 URL 中都有一个斜杠的产品页面 URL 不显示http 在他们中 以下是我需要匹配的 URL 我想要的看起来像这样 www example com just
  • 如何获取 NSRunningApplication 的参数?

    如何获取启动期间使用的参数列表NSRunningApplication 类似于我跑步时看到的ps aux let workspace NSWorkspace shared let applications workspace running
  • 使用 importlib.util 检查库时出错

    我正在尝试使用 importlib 库来验证 nmap 库是否安装在执行 Python 3 5 2 中的脚本的计算机上 我正在尝试使用importlib util find spec nmap 但收到以下错误 gt gt gt import
  • 鼠标悬停在按钮上的问题

    我正在使用 Twitter Bootstrap 当我将鼠标悬停在btn primary button 这是我的代码 div class navbar navbar fixed top div class navbar inner div c
  • 如何使用c#检查xml文件是否为空

    大家好 我想检查我的 xml 文件是否为空 我正在尝试将一个 xml 数据更新为另一个 为此我正在使用以下代码 现在请告诉我如何检查我的 xml 文件是否有数据 这是我用来更新 xml 文件的代码 protected void CheckU
  • 使用索引搜索相似的单词

    我需要使用某种模糊搜索 例如来自 Oracle 的模糊搜索 并使用索引来搜索数据库表 因为我不需要表扫描 有大量数据 我想忽略大小写 语言特殊内容 和特殊字符 如 等 搜索 maria cool 应该得到 maria COOL 和 Mar
  • Spring Security + Keycloak:登录后403

    我尝试重现一个https www baeldung com spring boot keycloak教程进行了一些简化 我的 Keycloak 服务器也在另一台机器上 由于弃用 配置也略有变化antMatchers Configuratio
  • RestController 设计之争 - Spring Boot REST API

    我对 REST API 开发还很陌生 我决定使用 Spring Boot 创建一个博客应用程序 但我真的在为应用程序的设计和结构而苦苦挣扎 现在我的应用程序由帖子和评论模型和存储库组成 对于这两个模型 我创建了服务类 PostService
  • iPhone 5 上的 Sqlite 磁盘 I/O 错误

    我有一个应用程序大量使用 SQLite 它在模拟器和 iPhone 4 4s 上都能完美运行 当我在 iphone 5 及更高版本上安装时 出现此错误 Unknown error finalizing or resetting statem
  • 在浏览器外通过 Silverlight 调用 Office Communicator

    当浏览器耗尽时 我需要调用 Office Communicator 创建聊天窗口并直接从 Silverlight 拨打电话 当在浏览器中运行时 我这样做并且效果很好 System Windows Browser HtmlPage Windo
  • Angular/Cordova:Android 设备上的 MIME 类型问题

    我创建了一个 Cordova 应用程序 它在创建新项目时仅提供默认的 Angular 欢迎页面 它在浏览器中运行良好 通过 Android Studio 在模拟器上运行它时效果很好 当我在 Android 设备上运行它时 我得到一个空白页面
  • 引用名称包含点的 bash 变量

    我有一个 bash 变量 agent1 ip with 192 168 100 137作为它的价值 当我在中提到它时echo像这样 echo agent1 ip 结果是 ip 我如何访问该值 UPDATE 我的变量是 Bash 本身不理解带
  • HTML 重写的最佳替代方案是什么?

    考虑这个文档片段 div h1 An article about John h1 p The frist paragraph is about John p p The second paragraph contains a a href
  • 未处理的异常类型错误

    我以前从未遇到过此错误 所以我不知道该怎么做或它意味着什么 未处理的异常类型OperationApplicationException 它出现在这段代码中 public void putSettings SharedPreferences
  • 如何修复“重大更改:webpack < 5 默认情况下用于包含 Node.js 核心模块的 polyfills”错误?

    我正在尝试构建一个 React 应用程序 但每次运行 npm start 时 都会收到此消息 找不到模块 错误 无法解析 Users abdus Documents GitHub keywords tracker node modules
  • 如何动态渲染美人鱼流程图?

    我正在使用mermaid https mermaid js github io mermaid n00b gettingStarted用于构建流程图的库 其工作原理是在块内有一个伪代码 特殊语法的命令 在此基础上在块中构建流程图 我希望能够