Initial commit: CodeMap v0.1.0 - CLI tool for code analysis and diagram generation
Some checks failed
CI / test (push) Has been cancelled
CI / build (push) Has been cancelled

This commit is contained in:
2026-01-30 12:19:07 +00:00
parent 8e73f1e440
commit 6c23aa04af

View File

@@ -0,0 +1,147 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ title }}</title>
<script type="module">
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';
mermaid.initialize({
startOnLoad: true,
theme: 'default',
securityLevel: 'loose',
flowchart: {
useMaxWidth: true,
htmlLabels: true,
curve: 'basis'
}
});
</script>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
min-height: 100vh;
color: #e1e4e8;
}
.container {
max-width: 1400px;
margin: 0 auto;
padding: 20px;
}
header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20px 0;
border-bottom: 1px solid #30363d;
margin-bottom: 20px;
}
h1 {
font-size: 1.5rem;
font-weight: 600;
color: #58a6ff;
}
.controls {
display: flex;
gap: 10px;
}
button {
background: #238636;
color: white;
border: none;
padding: 8px 16px;
border-radius: 6px;
cursor: pointer;
font-size: 0.9rem;
transition: background 0.2s;
}
button:hover {
background: #2ea043;
}
.diagram-container {
background: #0d1117;
border-radius: 12px;
padding: 20px;
min-height: 600px;
border: 1px solid #30363d;
}
.mermaid {
display: flex;
justify-content: center;
align-items: center;
min-height: 500px;
}
.status {
padding: 10px 15px;
background: #161b22;
border-radius: 6px;
margin-top: 15px;
font-size: 0.85rem;
color: #8b949e;
}
.loading {
display: flex;
justify-content: center;
align-items: center;
height: 400px;
color: #8b949e;
}
.spinner {
width: 40px;
height: 40px;
border: 3px solid #30363d;
border-top-color: #58a6ff;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
</style>
</head>
<body>
<div class="container">
<header>
<h1>{{ title }}</h1>
<div class="controls">
<button onclick="window.print()">Export PDF</button>
<button onclick="downloadMermaid()">Download Mermaid</button>
</div>
</header>
<div class="diagram-container">
<div class="mermaid">
{{ mermaid_content }}
</div>
</div>
<div class="status">
Last updated: <span id="timestamp"></span>
</div>
</div>
<script>
document.getElementById('timestamp').textContent = new Date().toLocaleString();
{% if auto_refresh %}
setInterval(function() {
location.reload();
}, {{ refresh_interval }} * 1000);
{% endif %}
function downloadMermaid() {
const content = `{{ mermaid_content }}`;
const blob = new Blob([content], { type: 'text/plain' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'diagram.mmd';
a.click();
URL.revokeObjectURL(url);
}
</script>
</body>
</html>