# 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 # Global setting: Custom HTML for newsletter form (only used if NEWSLETTER_ENABLED is True) # Paste your newsletter service's form HTML here (Mailchimp, ConvertKit, Buttondown, etc.) # Example: # NEWSLETTER_HTML = ''' #
# # #
# ''' NEWSLETTER_HTML = '

Newsletter coming soon!

' # Social media links - add/remove/reorder as needed # Each link should have 'label', 'url', and optionally 'icon' (filename in static/images/icons/) # Set to empty list [] to show no social links SOCIAL_LINKS = [ # Example links (uncomment and customize): # {'label': 'Instagram', 'url': 'https://instagram.com/yourhandle', 'icon': 'instagram.png'}, # {'label': 'YouTube', 'url': 'https://youtube.com/@yourchannel', 'icon': 'youtube.png'}, # {'label': 'Email', 'url': 'mailto:your@email.com', 'icon': 'mail.png'}, # {'label': 'Bluesky', 'url': 'https://bsky.app/profile/yourhandle', 'icon': 'bluesky.png'}, # {'label': 'Patreon', 'url': 'https://patreon.com/yourname', 'icon': 'patreon.png'}, # {'label': 'Ko-fi', 'url': 'https://ko-fi.com/yourname', 'icon': 'kofi.png'}, # {'label': 'Mastodon', 'url': 'https://mastodon.social/@yourhandle', 'icon': 'mastodon.png'}, ] # 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/")