【问题标题】:markmap: Insert the mindmap to the HTMLmarkmap:将思维导图插入 HTML
【发布时间】:2020-12-31 06:45:58
【问题描述】:

我想在Hugo 上使用思维导图,而markmap 正是我想要的。但我对它的语法非常陌生。 (见下面的代码块)我什至不知道它是什么语言(是typescript-arrow-function?)

((e,t)=>{
    const{Markmap:r}=e();
    window.mm=r.create("svg#mindmap-other",null,t)
})(
    ()=>window.markmap,  /* parameter e */
    {}  /* parameter t */
);

希望能把最下面的两个脚本合二为一;这两个非常相似。请帮助我或告诉我在哪里可以找到语法文档,谢谢!

你可以在这个site自己试一试

我提供的版本如下。

我的问题是:如何将最后两个脚本合并为一个以使代码美观?)

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Markmap</title>
  <script src="https://d3js.org/d3.v6.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/markmap-view@0.2.0"></script>
  <style>
* {
  margin: 0;
  padding: 0;
}
.mindmap {
  display: block;
  width: 100vw;
  height: 100vh;
}
  </style>
</head>

<body>
<svg id="mindmap-lang" class="mindmap"></svg>
<svg id="mindmap-other" class="mindmap"></svg>
</body>

<script>
/* script-Lang */
((e,t)=>{
const{Markmap:r}=e();
window.mm=r.create("svg#mindmap-lang",null,t)
})(
()=>window.markmap,{
"t":"root","d":0,"v":"Lang","c":
[
  {"t":"heading","d":1,"v":"Lang", "c":[
      {"t":"heading","d":2,"v":"<a href=\"https://www.python.org/\">Python</a>"},
      {"t":"heading","d":2,"v":"JS", "c":[
          {"t": "heading", "d":3, "v":"jquery"},
          {"t": "heading", "d":3, "v":"d3js"}
        ]
      }
    ]},
  {"t":"heading","d":1,"v":"News", "c":[]}
]}
);

</script>

<script>
/* script-Other */
((e,t)=>{
const{Markmap:r}=e();
window.mm=r.create("svg#mindmap-other",null,t)
})(
()=>window.markmap,{
  "t":"heading","d":0,"v":"Other", "c":
  [
    {"t":"heading","d":1,"v":"H1"},
    {"t":"heading","d":1,"v":"H1", "c":[
        {"t": "heading", "d":2, "v":"H2"},
        {"t": "heading", "d":2, "v":"H2"}
      ]
    }
  ]}
);

</script>

如果你能解释下面发生的事情,那就太好了:

((e,t)=>{
    const{Markmap:r}=e();
    window.mm=r.create("svg",null,t)
})(
    ()=>window.markmap,  /* parameter e */
    {}  /* parameter t */
);

上面的代码有两个脚本script-Langscript-Other

为了避免混淆,我决定在下面发布结果图片


这是我在 Hugo 网站上所做的。我在下面提供了它,供需要的人使用。

Here 到目前为止,我正在尝试将标记图嵌入到 Hugo。 (demo)

我想在该部分下添加另一个日期站点的SVG(mind-map),所以我需要在同一页面上使用多个SVG,这就是我需要将上述代码集成在一起的原因。

【问题讨论】:

  • 嘿,您提供的脚本看起来像箭头函数的 IIFE。是的,你猜对了!它的类型脚本。我删除了第二个脚本标签,它似乎运行良好它有什么用?
  • @XxSTREKxX 我更新问题,第二个脚本是创建script-Other

标签: javascript svg d3.js hugo mindmap


【解决方案1】:
  1. 脚本标签内的那些函数被称为IIFE,它一被定义就会运行...

它有两个参数,它们是window.markmap,另一个是要表示的object

所以你可以像我一样制作一个相同的 IIFE 来组合它们..

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Markmap</title>
  <script src="https://d3js.org/d3.v6.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/markmap-view@0.2.0"></script>
  <style>
    * {
      margin: 0;
      padding: 0;
    }
    
    .mindmap {
      display: block;
      width: 100vw;
      height: 100vh;
    }
  </style>
</head>

<body>
  <svg id="mindmap-lang" class="mindmap"></svg>
  <svg id="mindmap-other" class="mindmap"></svg>
</body>

<script>
  /* script-Lang */
  ((e) => {
    const {
      Markmap: r
    } = e();
    window.mm = r.create("svg#mindmap-lang", null, {
      "t": "root",
      "d": 0,
      "v": "Lang",
      "c": [{
          "t": "heading",
          "d": 1,
          "v": "Lang",
          "c": [{
              "t": "heading",
              "d": 2,
              "v": "<a href=\"https://www.python.org/\">Python</a>"
            },
            {
              "t": "heading",
              "d": 2,
              "v": "JS",
              "c": [{
                  "t": "heading",
                  "d": 3,
                  "v": "jquery"
                },
                {
                  "t": "heading",
                  "d": 3,
                  "v": "d3js"
                }
              ]
            }
          ]
        },
        {
          "t": "heading",
          "d": 1,
          "v": "News",
          "c": []
        }
      ]
    })
    window.mm - r.create("svg#mindmap-other", null, {
      "t": "heading",
      "d": 0,
      "v": "Other",
      "c": [{
          "t": "heading",
          "d": 1,
          "v": "H1"
        },
        {
          "t": "heading",
          "d": 1,
          "v": "H1",
          "c": [{
              "t": "heading",
              "d": 2,
              "v": "H2"
            },
            {
              "t": "heading",
              "d": 2,
              "v": "H2"
            }
          ]
        }
      ]
    })
  })(() => window.markmap);
</script>

【讨论】:

    【解决方案2】:

    @XxSTREKxX 解释的很清楚,我把答案整理成我喜欢的风格。

    重点如下,

    (
      (para1, para2, ... ,para_n)=>{
        /* implement your logical */  
      }
    )(input_para1, input_para2, ...,input_para_n)
    
    

    我的示例的完整代码,

    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Markmap</title>
      <script src="https://d3js.org/d3.v6.min.js"></script>
      <script src="https://cdn.jsdelivr.net/npm/markmap-view@0.2.0"></script>
      <style>
      * {
        margin: 0;
        padding: 0;
      }
      .mindmap {
        display: block;
        width: 100vw;
        height: 100vh;
      }  
      </style>
    </head>
    
    <body>
    <svg id="mindmap-lang" class="mindmap"></svg>
    <svg id="mindmap-other" class="mindmap"></svg>
    </body>
    
    <script>
    ((e, lang_json, other_json)=>{
        const{Markmap:r}=e();
        window.mm=r.create("svg#mindmap-lang",null,lang_json)
        window.mm=r.create("svg#mindmap-other",null,other_json)
    })(
      ()=>window.markmap, /* parameter e */
      {  /* parameter lang_json */
        "t":"root","d":0,"v":"Lang","c":
        [
          {"t":"heading","d":1,"v":"Lang", "c":[
            {"t":"heading","d":2,"v":"<a href=\"https://www.python.org/\">Python</a>"},
            {"t":"heading","d":2,"v":"JS", "c":[
              {"t": "heading", "d":3, "v":"jquery"},
              {"t": "heading", "d":3, "v":"d3js"}
            ]
            }
          ]},
          {"t":"heading","d":1,"v":"News", "c":[]}
        ]
      },
      {  /* parameter other_json */
        "t":"heading","d":0,"v":"Other", "c":
        [
          {"t":"heading","d":1,"v":"H1"},
          {"t":"heading","d":1,"v":"H1", "c":[
              {"t": "heading", "d":2, "v":"H2"},
              {"t": "heading", "d":2, "v":"H2"}
            ]
          }
        ]
      }
    );
    </script>

    【讨论】:

      猜你喜欢
      • 2011-11-19
      • 1970-01-01
      • 2019-05-14
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多