120 lines
4.7 KiB
Python
120 lines
4.7 KiB
Python
# 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/")
|