182 lines
9.9 KiB
HTML
182 lines
9.9 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 %}">
|
|
|
|
<!-- 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="{{ url_for('static', filename='favicon.ico') }}">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="{{ url_for('static', filename='favicon-32x32.png') }}">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="{{ url_for('static', filename='favicon-16x16.png') }}">
|
|
<link rel="apple-touch-icon" sizes="180x180" href="{{ url_for('static', filename='apple-touch-icon.png') }}">
|
|
|
|
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
|
|
<link rel="alternate" type="application/rss+xml" title="{{ comic_name }} RSS Feed" href="{{ url_for('static', filename='feed.rss') }}">
|
|
{% block extra_css %}{% endblock %}
|
|
</head>
|
|
<body>
|
|
<!-- 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="{{ url_for('static', filename='images/' + header_image) }}" 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="{{ url_for('static', filename='images/' + logo_image) }}" 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="{{ url_for('static', filename='images/' + logo_image) }}" 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="{{ url_for('static', filename='images/icons/alert.png') }}" 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="{{ url_for('static', filename='images/icons/archive.png') }}" 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="{{ url_for('static', filename='images/icons/info.png') }}" 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="{{ url_for('static', filename='images/icons/instagram.png') }}" 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="{{ url_for('static', filename='images/icons/youtube.png') }}" 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="{{ url_for('static', filename='images/icons/mail .png') }}" alt="" class="social-icon">
|
|
{% else %}
|
|
Email
|
|
{% endif %}
|
|
</a>
|
|
{% endif %}
|
|
<a href="{{ url_for('static', filename='feed.rss') }}" aria-label="RSS Feed">
|
|
{% if use_footer_social_icons %}
|
|
<img src="{{ url_for('static', filename='images/icons/rss.png') }}" alt="" class="social-icon">
|
|
{% else %}
|
|
RSS Feed
|
|
{% endif %}
|
|
</a>
|
|
{% if api_spec_link %}
|
|
<a href="{{ url_for('static', filename=api_spec_link) }}" aria-label="API">API</a>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<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>
|
|
|
|
{% 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="{{ url_for('static', filename='images/' + banner_image) }}" 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="{{ site_url }}/static/images/{{ banner_image }}" alt="{{ comic_name }}"></a></textarea>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="footer-bottom">
|
|
<p>© {{ current_year }} {{ copyright_name }}. All rights reserved.</p>
|
|
<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="{{ url_for('static', filename='images/sunday.jpg') }}" alt="Sunday Comics" class="credit-image">
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
{% if footer_image %}
|
|
<div class="site-footer-image">
|
|
<img src="{{ url_for('static', filename='images/' + footer_image) }}" alt="{{ comic_name }} Footer">
|
|
</div>
|
|
{% endif %}
|
|
|
|
<script src="{{ url_for('static', filename='js/comic-nav.js') }}"></script>
|
|
{% block extra_js %}{% endblock %}
|
|
</body>
|
|
</html> |