Files
COPILOT/Docs/legacy-architecture/index.html
klas 40143734fc Initial commit: COPILOT D6 Flutter keyboard controller
Flutter web app replacing legacy WPF CCTV surveillance keyboard controller.
Includes wall overview, section view with monitor grid, camera input,
PTZ control, alarm/lock/sequence BLoCs, and legacy-matching UI styling.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 14:57:38 +01:00

100 lines
2.8 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>COPILOT D6 Legacy Architecture</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsify-themeable@0/dist/css/theme-simple-dark.css">
<style>
:root {
--base-font-size: 15px;
--theme-color: #3b82f6;
--sidebar-width: 260px;
--sidebar-background: #1e1e2e;
--sidebar-nav-link-color--active: #3b82f6;
}
.markdown-section pre {
background-color: #1e1e2e;
border-radius: 8px;
}
.markdown-section table {
display: table;
width: 100%;
}
.markdown-section h1 {
border-bottom: 2px solid #3b82f6;
padding-bottom: 8px;
}
.mermaid svg {
max-width: 100%;
}
.mermaid {
text-align: center;
margin: 1em 0;
}
</style>
</head>
<body>
<div id="app">Loading...</div>
<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
<script>
mermaid.initialize({
startOnLoad: false,
theme: 'dark',
securityLevel: 'loose',
flowchart: { useMaxWidth: true, htmlLabels: true },
sequence: { useMaxWidth: true }
});
window.$docsify = {
name: 'COPILOT D6',
repo: '',
loadSidebar: '_sidebar.md',
subMaxLevel: 3,
auto2top: true,
search: {
placeholder: 'Search docs...',
noData: 'No results.',
depth: 3
},
// Intercept mermaid code blocks at the markdown parser level
markdown: {
renderer: {
code: function(code, lang) {
if (lang && lang.toLowerCase() === 'mermaid') {
return '<div class="mermaid">' + code + '</div>';
}
return this.origin.code.apply(this, arguments);
}
}
},
plugins: [
function(hook) {
// Strip YAML frontmatter before markdown parsing
hook.beforeEach(function(content) {
return content.replace(/^---[\s\S]*?---\n*/m, '');
});
// Render mermaid diagrams after DOM update
hook.doneEach(function() {
var els = document.querySelectorAll('.mermaid');
if (els.length > 0) {
// Reset any previously processed elements
els.forEach(function(el) {
el.removeAttribute('data-processed');
});
mermaid.run({ nodes: Array.from(els) }).catch(function(e) {
console.error('Mermaid render error:', e);
});
}
});
}
]
}
</script>
<script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/docsify.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/plugins/search.min.js"></script>
</body>
</html>