javascript - markmap:将思维导图插入 HTML
问题描述
我想在Hugo上使用思维导图,而标记图正是我想要的。但我对它的语法非常陌生。(见下面的代码块)我什至不知道它是什么语言(它是typescript-arrow-function吗?)
((e,t)=>{
const{Markmap:r}=e();
window.mm=r.create("svg#mindmap-other",null,t)
})(
()=>window.markmap, /* parameter e */
{} /* parameter t */
);
希望能把最下面的两个脚本合二为一;这两个非常相似。请帮助我或告诉我在哪里可以找到语法文件,谢谢!
您可以在本站自行尝试
我提供我的版本如下。
我的问题是:如何将最后两个脚本合并为一个以使代码美观?)
<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-Lang
和script-Other
这是我在 Hugo 网站上所做的。我在下面为需要它的人提供了它。
我想在该部分下添加另一个日期站点的 SVG(mind-map),所以我需要在同一页面上使用多个 SVG,这就是为什么我需要将上述代码集成在一起的原因。
解决方案
- 脚本标签中的那些函数被称为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>
推荐阅读
- arduino - 在 Arduino Mega 中使用 Modbus RTU 从电能表读取数据
- android - 什么取代了权重?
- r - 将符号向量作为函数参数传递并转换为字符向量
- angular - 验证失败时,Div 中的 FormGroup 突出显示所有字段
- php - 使用 Ajax 请求过滤 WordPress 帖子
- .net - 使用 efcore 在 Cosmos db 上查询数据
- reactjs - ReactJS - 在 Google Map 的监听器中使用它
- javascript - 如何使用 react-responsive-carousel 垂直和水平(嵌套)移动 Carousel
- python - discord.py 模块中 MissingRequiredArgument 错误的解决方案是什么?
- laravel - 更新字段时删除旧图像