Spaces:
Running
Running
<html> | |
<head> | |
<meta charset="UTF-8"> | |
<title>Website Link Validator</title> | |
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script> | |
<style> | |
:root { | |
--success: #10b981; | |
--warning: #f59e0b; | |
--error: #ef4444; | |
--info: #3b82f6; | |
} | |
body { | |
font-family: system-ui, -apple-system, sans-serif; | |
max-width: 1200px; | |
margin: 0 auto; | |
padding: 2rem; | |
background: #f8fafc; | |
} | |
.status-grid { | |
display: grid; | |
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); | |
gap: 1rem; | |
margin: 2rem 0; | |
} | |
.status-card { | |
padding: 1.5rem; | |
border-radius: 0.5rem; | |
background: white; | |
box-shadow: 0 1px 3px rgba(0,0,0,0.1); | |
} | |
.status-success { border-left: 4px solid var(--success); } | |
.status-warning { border-left: 4px solid var(--warning); } | |
.status-error { border-left: 4px solid var(--error); } | |
.status-info { border-left: 4px solid var(--info); } | |
.link-list { | |
margin-top: 2rem; | |
} | |
.link-item { | |
padding: 1rem; | |
border-radius: 0.5rem; | |
margin-bottom: 0.5rem; | |
background: #f8fafc; | |
} | |
.link-status { | |
display: inline-block; | |
padding: 0.25rem 0.5rem; | |
border-radius: 0.25rem; | |
font-size: 0.875rem; | |
font-weight: 500; | |
} | |
.status-ok { background: #dcfce7; color: #166534; } | |
.status-broken { background: #fee2e2; color: #991b1b; } | |
.mermaid { | |
margin: 2rem 0; | |
padding: 1rem; | |
background: white; | |
border-radius: 0.5rem; | |
box-shadow: 0 1px 3px rgba(0,0,0,0.1); | |
} | |
</style> | |
</head> | |
<body> | |
<h1>Website Link Validator</h1> | |
<div class="status-grid"> | |
<div class="status-card status-info"> | |
<h3>Total Links</h3> | |
<div class="mermaid"> | |
pie | |
title Link Distribution | |
"Working" : 85 | |
"Redirects" : 10 | |
"Broken" : 5 | |
</div> | |
</div> | |
<div class="status-card status-warning"> | |
<h3>Critical Paths</h3> | |
<div class="mermaid"> | |
graph TD | |
A[Home] --> B[Projects] | |
B --> C[AutoMedical] | |
A --> D[Papers] | |
D --> E[Current Research] | |
A --> F[Proposals] | |
F --> G[NHS] | |
classDef default fill:#f9f9f9,stroke:#333,stroke-width:2px; | |
classDef critical fill:#fee2e2,stroke:#991b1b,stroke-width:2px; | |
</div> | |
</div> | |
</div> | |
<div class="link-list"> | |
<h2>Link Status</h2> | |
<div class="link-item"> | |
<span class="link-status status-ok">β</span> | |
<span>/</span> β Home | |
</div> | |
<div class="link-item"> | |
<span class="link-status status-ok">β</span> | |
<span>/projects</span> β Projects | |
</div> | |
<div class="link-item"> | |
<span class="link-status status-ok">β</span> | |
<span>/papers</span> β Papers | |
</div> | |
<div class="link-item"> | |
<span class="link-status status-ok">β</span> | |
<span>/proposals</span> β Proposals | |
</div> | |
<div class="link-item"> | |
<span class="link-status status-ok">β</span> | |
<span>/docs</span> β Documentation | |
</div> | |
</div> | |
<script> | |
mermaid.initialize({ | |
startOnLoad: true, | |
theme: 'neutral', | |
securityLevel: 'loose', | |
}); | |
</script> | |
</body> | |
</html> |