Files
rocky-man/templates/base.html
Stephen Simpson e356431b72 Refactor Rocky Man Page Generator
- Improved logging and error handling in main.py, including better version management and configuration handling.
- Enhanced RepoManager to dynamically switch between pub and vault repositories for package retrieval.
- Updated ManPageConverter to handle symlink detection and generate appropriate redirect HTML.
- Refined WebGenerator to support dynamic version grid layout and improved HTML generation for man pages and indexes.
- Modified templates to remove trademark symbols and enhance styling for version cards.
- Added support for existing versions in the root index generation.

Signed-off-by: Stephen Simpson <ssimpson89@users.noreply.github.com>
2025-12-04 17:04:55 -06:00

265 lines
7.2 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}{{ title }}{% endblock %}</title>
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%2275%22 font-size=%2280%22>📚</text></svg>">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Red+Hat+Display:ital,wght@0,300..900;1,300..900&family=Red+Hat+Text:ital,wght@0,300..900;1,300..900&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap" rel="stylesheet">
<style>
:root {
--bg-primary: #0D1117;
--bg-secondary: #161B22;
--bg-tertiary: #21262D;
--text-primary: #C9D1D9;
--text-secondary: #8B949E;
--accent-primary: #10B981;
--accent-secondary: #059669;
--border-color: #30363D;
--success: #10B981;
--warning: #D29922;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: 'Red Hat Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
background-color: var(--bg-primary);
color: var(--text-primary);
line-height: 1.6;
min-height: 100vh;
display: flex;
flex-direction: column;
}
header {
background: linear-gradient(135deg, var(--accent-secondary) 0%, var(--accent-primary) 100%);
padding: 2rem 1rem;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
}
header .container {
max-width: 1200px;
margin: 0 auto;
display: flex;
align-items: center;
gap: 1rem;
}
.home-button {
display: flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
background: rgba(255, 255, 255, 0.15);
border-radius: 8px;
color: white;
text-decoration: none;
transition: all 0.2s;
flex-shrink: 0;
}
.home-button:hover {
background: rgba(255, 255, 255, 0.25);
transform: translateY(-2px);
text-decoration: none;
}
.header-content {
flex: 1;
}
header h1 {
font-family: "Red Hat Display", sans-serif;
font-optical-sizing: auto;
color: white;
font-size: 2rem;
font-weight: 700;
font-style: normal;
margin-bottom: 0.5rem;
}
h1, h2, h3, h4, h5, h6 {
font-family: "Red Hat Display", sans-serif;
font-optical-sizing: auto;
font-weight: 600;
font-style: normal;
}
code, pre, kbd, samp {
font-family: "JetBrains Mono", monospace;
}
header p {
color: rgba(255, 255, 255, 0.9);
font-size: 1rem;
}
main {
flex: 1;
max-width: 1200px;
margin: 2rem auto;
padding: 0 1rem;
width: 100%;
}
.content {
background-color: var(--bg-secondary);
border: 1px solid var(--border-color);
border-radius: 8px;
padding: 2rem;
}
footer {
background-color: var(--bg-secondary);
border-top: 1px solid var(--border-color);
padding: 2rem 1rem;
margin-top: auto;
text-align: center;
color: var(--text-secondary);
}
footer a {
color: var(--accent-primary);
text-decoration: none;
}
footer a:hover {
text-decoration: underline;
}
a {
color: var(--accent-primary);
text-decoration: none;
transition: color 0.2s;
}
a:hover {
color: var(--accent-secondary);
text-decoration: underline;
}
/* Responsive */
@media (max-width: 768px) {
header {
padding: 1.5rem 1rem;
}
header .container {
gap: 0.75rem;
}
.home-button {
width: 40px;
height: 40px;
}
.home-button svg {
width: 20px;
height: 20px;
}
header h1 {
font-size: 1.5rem;
}
header p {
font-size: 0.9rem;
}
main {
margin: 1.5rem auto;
padding: 0 0.75rem;
}
.content {
padding: 1rem;
}
footer {
padding: 1.5rem 1rem;
font-size: 0.9rem;
}
}
@media (max-width: 480px) {
header {
padding: 1rem 0.75rem;
}
header h1 {
font-size: 1.25rem;
}
header p {
font-size: 0.85rem;
}
main {
margin: 1rem auto;
padding: 0 0.5rem;
}
.content {
padding: 0.75rem;
border-radius: 6px;
}
footer {
padding: 1rem 0.75rem;
font-size: 0.85rem;
}
}
/* Touch-friendly improvements */
@media (hover: none) and (pointer: coarse) {
a, button {
min-height: 44px;
min-width: 44px;
}
}
{% block extra_css %}{% endblock %}
</style>
</head>
<body>
<header>
<div class="container">
<a href="/" class="home-button" title="Home">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>
<polyline points="9 22 9 12 15 12 15 22"/>
</svg>
</a>
<div class="header-content">
<h1>{% block header_title %}Rocky Linux Man Pages{% endblock %}</h1>
<p>{% block header_subtitle %}Comprehensive man page documentation{% endblock %}</p>
</div>
</div>
</header>
<main>
{% block content %}{% endblock %}
</main>
<footer>
<p>
Powered by <a href="https://mandoc.bsd.lv/" target="_blank">mandoc</a> |
Search by <a href="https://fusejs.io/" target="_blank">Fuse.js</a>
</p>
<p style="margin-top: 0.5rem; font-size: 0.85rem;">
Rocky Linux is a trademark of the Rocky Enterprise Software Foundation.
</p>
</footer>
{% block scripts %}{% endblock %}
</body>
</html>