-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
210 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
<title>Mindmap Display</title> | ||
<style> | ||
body { | ||
font-family: Arial, sans-serif; /* 使用易读字体 */ | ||
background-color: #f4f4f4; /* 轻微灰色背景 */ | ||
line-height: 1.6; | ||
padding: 20px; | ||
} | ||
|
||
h1 { | ||
color: #333; | ||
} | ||
|
||
.container { | ||
max-width: 960px; | ||
margin: auto; | ||
background: #fff; | ||
padding: 20px; | ||
box-shadow: 0 5px 10px rgba(0,0,0,0.1); /* 给容器添加阴影 */ | ||
} | ||
|
||
.image-container img { | ||
max-width: 100%; /* 图片宽度自动适应容器 */ | ||
height: auto; /* 高度自动,保持图片比例 */ | ||
display: block; /* 防止图片下方留有空间 */ | ||
margin: 0 auto; /* 图片居中 */ | ||
} | ||
|
||
a { | ||
color: #06c; | ||
text-decoration: none; | ||
} | ||
|
||
a:hover { | ||
text-decoration: underline; | ||
} | ||
|
||
p { | ||
color: #555; | ||
} | ||
|
||
.metadata { | ||
background: #e9e9e9; | ||
padding: 10px; | ||
margin-bottom: 20px; | ||
} | ||
|
||
.metadata p { | ||
margin: 0; | ||
color: #333; | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
<div class="container"> | ||
<h1>Mindmap Information</h1> | ||
<div class="metadata"> | ||
<p><strong>ID:</strong> {{ data.id }}</p> | ||
<p><strong>Content:</strong> {{ data.content }}</p> | ||
<p><strong>Created:</strong> {{ data.created }}</p> | ||
<p><strong>Graphviz:</strong> <a href="{{ data.dot_url }}">Download</a> | <a href="{{ data.viz_url }}" target="_blank">View</a></p> | ||
<p><strong>Status:</strong> {{ data.status }}</p> | ||
</div> | ||
<div class="image-container"> | ||
<a href="{{ data.image_url }}" target="_blank"><img src="{{ data.image_url }}" alt="Mindmap Image"></a> | ||
</div> | ||
</div> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
<title>Graphviz with Viz.js</title> | ||
<script src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/2.1.2/viz.js"></script> | ||
<script src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/2.1.2/full.render.js"></script> | ||
<style> | ||
body { | ||
font-family: 'Arial', sans-serif; | ||
line-height: 1.6; | ||
background-color: #f4f4f4; | ||
padding: 20px; | ||
color: #333; | ||
} | ||
|
||
#engine-select-box { | ||
text-align: center; | ||
margin-bottom: 20px; | ||
} | ||
|
||
h1 { | ||
text-align: center; | ||
color: #4a69bd; | ||
} | ||
|
||
#graph { | ||
max-width: 1200px; | ||
margin: auto; | ||
background: white; | ||
padding: 20px; | ||
box-shadow: 0 2px 5px rgba(0,0,0,0.2); | ||
overflow: auto; | ||
} | ||
|
||
svg { | ||
width: 100%; | ||
height: auto; | ||
display: block; | ||
margin: auto; | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
<h1>Graphviz Visualization with Viz.js</h1> | ||
|
||
<div id="engine-select-box"> | ||
<label for="engine-select">Layout Engine:</label> | ||
<select name="engine-select" id="engine-select"> | ||
<option value="dot">dot</option> | ||
<option value="circo">circo</option> | ||
<option value="fdp">fdp</option> | ||
<option value="neato">neato</option> | ||
<option value="osage">osage</option> | ||
<option value="nop">nop</option> | ||
<option value="nop1">nop1</option> | ||
<option value="nop2">nop2</option> | ||
<option value="twopi">twopi</option> | ||
<option value="patchwork">patchwork</option> | ||
</select> | ||
</div> | ||
|
||
<div id="graph"></div> | ||
|
||
<script> | ||
var dotString = `{{ data.dot_string | safe }}`; | ||
|
||
// 函数:根据选定的引擎渲染图形 | ||
function renderGraph(engine) { | ||
var viz = new Viz(); | ||
viz.renderSVGElement(dotString, {format: "svg", engine: engine}) | ||
.then(function(element) { | ||
var graphDiv = document.getElementById("graph"); | ||
graphDiv.innerHTML = ''; // 清空旧图形 | ||
graphDiv.appendChild(element); | ||
}) | ||
.catch(error => { | ||
console.error(error); | ||
document.getElementById("graph").innerHTML = "Error rendering graph"; | ||
}); | ||
} | ||
|
||
// 初始渲染 | ||
renderGraph("fdp"); | ||
|
||
// 事件监听器:当选择不同的布局引擎时重新渲染图形 | ||
document.getElementById("engine-select").addEventListener("change", function() { | ||
var selectedEngine = this.value; | ||
renderGraph(selectedEngine); | ||
}); | ||
</script> | ||
</body> | ||
</html> |