Files
sunday/templates/base.html
2025-11-15 21:24:44 +10:00

218 lines
12 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 %} - {{ comic_name }}</title>
<!-- SEO Meta Tags -->
<meta name="description" content="{% block meta_description %}A webcomic about life, the universe, and everything{% endblock %}">
<link rel="canonical" href="{% block canonical %}{{ site_url }}{{ request.path }}{% endblock %}">
<!-- Version -->
<meta name="generator" content="Sunday Comics {{ version }}">
<!-- AI Scraping Prevention -->
<meta name="robots" content="noai, noimageai">
<meta name="googlebot" content="noai, noimageai">
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website">
<meta property="og:url" content="{% block meta_url %}{{ site_url }}{{ request.path }}{% endblock %}">
<meta property="og:title" content="{% block og_title %}{{ self.title() }} - {{ comic_name }}{% endblock %}">
<meta property="og:description" content="{% block og_description %}{{ self.meta_description() }}{% endblock %}">
<meta property="og:image" content="{% block og_image %}{{ site_url }}/static/images/default-preview.png{% endblock %}">
<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image">
<meta property="twitter:url" content="{% block twitter_url %}{{ self.meta_url() }}{% endblock %}">
<meta property="twitter:title" content="{% block twitter_title %}{{ self.og_title() }}{% endblock %}">
<meta property="twitter:description" content="{% block twitter_description %}{{ self.og_description() }}{% endblock %}">
<meta property="twitter:image" content="{% block twitter_image %}{{ self.og_image() }}{% endblock %}">
<!-- Favicon -->
<link rel="icon" type="image/x-icon" href="{{ 'favicon.ico' | cdn_static }}">
<link rel="icon" type="image/png" sizes="32x32" href="{{ 'favicon-32x32.png' | cdn_static }}">
<link rel="icon" type="image/png" sizes="16x16" href="{{ 'favicon-16x16.png' | cdn_static }}">
<link rel="apple-touch-icon" sizes="180x180" href="{{ 'apple-touch-icon.png' | cdn_static }}">
<link rel="stylesheet" href="{{ 'css/style.css' | cdn_static }}">
<link rel="alternate" type="application/rss+xml" title="{{ comic_name }} RSS Feed" href="{{ 'feed.rss' | cdn_static }}">
{% block extra_css %}{% endblock %}
</head>
<body data-site-url="{{ site_url }}">
<!-- Skip to main content link for keyboard navigation -->
<a href="#main-content" class="skip-to-main">Skip to main content</a>
{% if header_image %}
<div class="site-header-image">
<img src="{{ ('images/' + header_image) | cdn_static }}" alt="{{ comic_name }} Header">
</div>
{% endif %}
<header{% if header_image %} class="header-with-image"{% endif %}>
<nav>
<div class="container">
{% if not header_image %}
<div class="nav-brand">
<a href="{{ url_for('index') }}">
{% if logo_image and logo_mode == 'beside' %}
<img src="{{ ('images/' + logo_image) | cdn_static }}" alt="{{ comic_name }} Logo" class="nav-logo nav-logo-beside">
<span class="nav-title">{{ comic_name }}</span>
{% elif logo_image and logo_mode == 'replace' %}
<img src="{{ ('images/' + logo_image) | cdn_static }}" alt="{{ comic_name }}" class="nav-logo nav-logo-replace">
{% else %}
{{ comic_name }}
{% endif %}
</a>
</div>
{% endif %}
<ul class="nav-links">
<li>
<a href="{{ url_for('index') }}" {% if request.endpoint == 'index' %}class="active"{% endif %}>
{% if use_header_nav_icons %}<img src="{{ 'images/icons/alert.png' | cdn_static }}" alt="" class="nav-icon" aria-hidden="true">{% endif %}Latest
</a>
</li>
<li>
<a href="{{ url_for('archive') }}" {% if request.endpoint == 'archive' %}class="active"{% endif %}>
{% if use_header_nav_icons %}<img src="{{ 'images/icons/archive.png' | cdn_static }}" alt="" class="nav-icon" aria-hidden="true">{% endif %}Archive
</a>
</li>
<li>
<a href="{{ url_for('about') }}" {% if request.endpoint == 'about' %}class="active"{% endif %}>
{% if use_header_nav_icons %}<img src="{{ 'images/icons/info.png' | cdn_static }}" alt="" class="nav-icon" aria-hidden="true">{% endif %}About
</a>
</li>
</ul>
</div>
</nav>
</header>
<main id="main-content">
<div class="container">
{% block content %}{% endblock %}
</div>
</main>
<footer{% if compact_footer %} class="compact-footer"{% endif %}>
<div class="container">
<div class="footer-content">
<div class="footer-section">
<h3>Follow</h3>
<div class="social-links{% if use_footer_social_icons %} social-links-icons{% endif %}">
{% if social_instagram %}
<a href="{{ social_instagram }}" target="_blank" rel="noopener noreferrer" aria-label="Instagram">
{% if use_footer_social_icons %}
<img src="{{ 'images/icons/instagram.png' | cdn_static }}" alt="" class="social-icon">
{% else %}
Instagram
{% endif %}
</a>
{% endif %}
{% if social_youtube %}
<a href="{{ social_youtube }}" target="_blank" rel="noopener noreferrer" aria-label="YouTube">
{% if use_footer_social_icons %}
<img src="{{ 'images/icons/youtube.png' | cdn_static }}" alt="" class="social-icon">
{% else %}
YouTube
{% endif %}
</a>
{% endif %}
{% if social_email %}
<a href="{{ social_email }}" aria-label="Email">
{% if use_footer_social_icons %}
<img src="{{ 'images/icons/mail .png' | cdn_static }}" alt="" class="social-icon">
{% else %}
Email
{% endif %}
</a>
{% endif %}
<a href="{{ 'feed.rss' | cdn_static }}" aria-label="RSS Feed">
{% if use_footer_social_icons %}
<img src="{{ 'images/icons/rss.png' | cdn_static }}" alt="" class="social-icon">
{% else %}
RSS Feed
{% endif %}
</a>
{% if api_spec_link %}
<a href="{{ api_spec_link | cdn_static }}" aria-label="API">API</a>
{% endif %}
</div>
</div>
{% if newsletter_enabled %}
<div class="footer-section">
<h3>Newsletter</h3>
<!-- Replace with your newsletter service form -->
<!-- <form class="newsletter-form" action="#" method="post">
<input type="email" name="email" placeholder="Enter your email" required>
<button type="submit">Subscribe</button>
</form> -->
<p class="newsletter-placeholder">Newsletter coming soon!</p>
</div>
{% endif %}
{% if banner_image and not compact_footer %}
<div class="footer-section">
<h3>Share A Link</h3>
<div class="shareable-banner">
<a href="{{ site_url }}" target="_blank" rel="noopener noreferrer" aria-label="Link to {{ comic_name }} home page">
<img src="{{ ('images/' + banner_image) | cdn_static }}" alt="{{ comic_name }}" class="banner-image">
</a>
<details class="banner-code">
<summary>Get code</summary>
<textarea readonly onfocus="this.select()" onclick="this.select()" aria-label="HTML code for linking to {{ comic_name }}"><a href="{{ site_url }}"><img src="{% if cdn_url %}{{ cdn_url }}/static/images/{{ banner_image }}{% else %}{{ site_url }}/static/images/{{ banner_image }}{% endif %}" alt="{{ comic_name }}"></a></textarea>
</details>
</div>
</div>
{% endif %}
</div>
<div class="footer-bottom">
<p>&copy; {{ current_year }} {{ copyright_name }}. All rights reserved.</p>
<span class="footer-divider" aria-hidden="true">|</span>
<a href="{{ url_for('terms') }}" class="footer-terms">Terms of Service</a>
<span class="footer-divider" aria-hidden="true">|</span>
<div class="site-credit">
<a href="https://git.puercito.net/mi/sunday" target="_blank" rel="noopener noreferrer" aria-label="Sunday Comics - Webcomic platform">
<img src="{{ 'images/sunday.jpg' | cdn_static }}" alt="Sunday Comics" class="credit-image">
</a>
</div>
</div>
</div>
</footer>
{% if footer_image %}
<div class="site-footer-image">
<img src="{{ ('images/' + footer_image) | cdn_static }}" alt="{{ comic_name }} Footer">
</div>
{% endif %}
<!-- Embed Code Modal -->
{% if embed_enabled %}
<div id="embed-modal" class="modal" role="dialog" aria-labelledby="embed-modal-title" aria-hidden="true">
<div class="modal-content">
<div class="modal-header">
<h2 id="embed-modal-title">Embed This Comic</h2>
<button class="modal-close" aria-label="Close embed modal">&times;</button>
</div>
<div class="modal-body">
<p>Copy this code to embed the comic on your website:</p>
<textarea id="embed-code" readonly onfocus="this.select()" onclick="this.select()" aria-label="Embed code"></textarea>
<button id="copy-embed-code" class="btn-copy" aria-label="Copy embed code to clipboard">Copy Code</button>
<p class="embed-preview-link">Preview: <a id="embed-preview-link" href="#" target="_blank" rel="noopener noreferrer">Open embed in new window</a></p>
</div>
</div>
</div>
{% endif %}
<script src="{{ 'js/comic-nav.js' | cdn_static }}"></script>
{% if embed_enabled %}
<script src="{{ 'js/embed.js' | cdn_static }}"></script>
{% endif %}
{% if permalink_enabled %}
<script src="{{ 'js/permalink.js' | cdn_static }}"></script>
{% endif %}
{% block extra_js %}{% endblock %}
</body>
</html>