20bbdbbfcf
- Extract CSS into public/css/{shared,players,courses}.css
- Extract JS into public/js/{chart,tooltips,progress,players,courses}.js
- Consolidate 5 duplicated tooltip blocks into setupTooltip() helper
- Add EJS view engine with layout partial and nav partial
- Convert HTML pages to EJS templates (index.ejs, courses.ejs)
- Add /courses route with redirect from /courses.html
- Remove old monolithic HTML files (1478 + 612 lines)
38 lines
1.0 KiB
Plaintext
38 lines
1.0 KiB
Plaintext
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title><%= title %></title>
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
|
<link rel="stylesheet" href="/css/shared.css">
|
|
<% if (typeof cssFiles !== 'undefined') { %>
|
|
<% cssFiles.forEach(function(file) { %>
|
|
<link rel="stylesheet" href="/css/<%= file %>">
|
|
<% }); %>
|
|
<% } %>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<h1><%= heading %></h1>
|
|
<%- include('../partials/nav') %>
|
|
<%- body %>
|
|
</div>
|
|
|
|
<% if (typeof modals !== 'undefined') { %>
|
|
<%- modals %>
|
|
<% } %>
|
|
|
|
<% if (typeof jsFiles !== 'undefined') { %>
|
|
<% jsFiles.forEach(function(file) { %>
|
|
<script src="/js/<%= file %>"></script>
|
|
<% }); %>
|
|
<% } %>
|
|
|
|
<% if (typeof initScript !== 'undefined') { %>
|
|
<script>
|
|
<%- initScript %>
|
|
</script>
|
|
<% } %>
|
|
</body>
|
|
</html> |