Files
sunday/comics_data.py.example
2025-11-16 13:17:07 +10:00

120 lines
4.7 KiB
Plaintext

# Sunday Comics - Comic data configuration
# Copyright (c) 2025 Tomasita Cabrera
# Licensed under the MIT License - see LICENSE file for details
#
# Edit this file to add, remove, or modify comics
# Global setting: The name of your comic/website
COMIC_NAME = 'Sunday Comics'
# Global setting: The name to display in the copyright notice
# If not set (None), defaults to COMIC_NAME
COPYRIGHT_NAME = None # e.g., 'Your Name' or 'Your Studio Name'
# Global setting: Your website's domain (used for RSS feed, Open Graph tags, etc.)
# Update this to your production domain when deploying
SITE_URL = 'http://localhost:3000'
# Global setting: CDN URL for static assets (set to None to use local assets)
# When set, all static assets will be served from this CDN
# Example: CDN_URL = 'https://cdn.example.com' (no trailing slash)
# Leave as None for local development or if not using a CDN
CDN_URL = None
# Global setting: Set to True to make all comics full-width by default
# Individual comics can override this with 'full_width': False
FULL_WIDTH_DEFAULT = False
# Global setting: Set to True to hide header and remove nav border by default
# Individual comics can override this with 'plain': False
PLAIN_DEFAULT = False
# Global setting: Path to site logo (relative to static/images/)
# Set to None to disable logo
# Example: LOGO_IMAGE = 'logo.png' will use static/images/logo.png
LOGO_IMAGE = 'logo.png'
# Global setting: Logo display mode
# 'beside' - Display logo next to the site title
# 'replace' - Replace the site title with the logo
# Only applies when LOGO_IMAGE is set
LOGO_MODE = 'beside'
# Global setting: Path to header image (relative to static/images/)
# Set to None to disable header image
# Example: HEADER_IMAGE = 'title.jpg' will use static/images/title.jpg
HEADER_IMAGE = None
# Global setting: Path to footer image (relative to static/images/)
# Set to None to disable footer image
# Example: FOOTER_IMAGE = 'footer.jpg' will use static/images/footer.jpg
FOOTER_IMAGE = None
# Global setting: Path to shareable banner image (relative to static/images/)
# Set to None to disable "Link to Us" section in footer
# Example: BANNER_IMAGE = 'banner.jpg' will use static/images/banner.jpg
BANNER_IMAGE = 'banner.jpg'
# Global setting: Set to True to display footer in compact mode
# Compact mode: single line, no border, horizontal layout
COMPACT_FOOTER = False
# Global setting: Set to True to make archive page full-width with 4 columns (2 on mobile)
# Full-width archive shows square thumbnails with only dates, no titles
ARCHIVE_FULL_WIDTH = True
# Global setting: Set to True to enable sections/chapters on the archive page
# Add 'section': 'Chapter Title' to comics where a new section starts
SECTIONS_ENABLED = True
# Global setting: Set to True to use icon images for comic navigation buttons
# Icons should be in static/images/icons/ (first.png, previous.png, next.png, latest.png)
USE_COMIC_NAV_ICONS = True
# Global setting: Set to True to show icons next to main header navigation text
# Uses alert.png for Latest, archive.png for Archive, info.png for About
USE_HEADER_NAV_ICONS = True
# Global setting: Set to True to use icons instead of text for footer social links
# Uses instagram.png, youtube.png, and mail.png from static/images/icons/
USE_FOOTER_SOCIAL_ICONS = True
# Global setting: Set to True to show icons in share buttons (permalink and embed)
# Uses link.png for permalink and embed.png for embed from static/images/icons/
USE_SHARE_ICONS = True
# Global setting: Set to True to show newsletter section in footer
NEWSLETTER_ENABLED = False
# Social media links - set to None to hide the link
SOCIAL_INSTAGRAM = None # e.g., 'https://instagram.com/yourhandle'
SOCIAL_YOUTUBE = None # e.g., 'https://youtube.com/@yourchannel'
SOCIAL_EMAIL = None # e.g., 'mailto:your@email.com'
# API documentation link - set to None to hide the link
# Path is relative to static/ directory
API_SPEC_LINK = None # Set to 'openapi.yml' to enable
# Global setting: Set to True to enable comic embed functionality
# When enabled, users can get embed codes to display comics on other websites
EMBED_ENABLED = True
# Global setting: Set to True to enable permalink copy button
# When enabled, users can easily copy a direct link to the current comic
PERMALINK_ENABLED = True
# Load comics from YAML files
from data_loader import load_comics_from_yaml, validate_comics
COMICS = load_comics_from_yaml('data/comics')
# Validate loaded comics
if not validate_comics(COMICS):
print("Warning: Comic validation failed. Please check your YAML files.")
# Show loaded comics count
if COMICS:
print(f"Loaded {len(COMICS)} comics from data/comics/")
else:
print("Warning: No comics loaded! Please add .yaml files to data/comics/")