Jordancole21's picture
Deploy native Gradio SEO page and tool
7e2c39a verified
Raw
History Blame Contribute Delete
1.6 kB
"""Per-Space configuration for the Loreify D&D tools portfolio."""
from dataclasses import dataclass, field
COLLECTION_TITLE = "Free D&D Tools, Generators, Trackers, and Calculators"
# Filled in by deploy.py after the Collection is created; the footer link
# falls back to the owner's Spaces listing until then.
COLLECTION_URL = "https://huggingface.co/collections/Jordancole21/free-d-and-d-tools-generators-trackers-and-calculators-6a5fd7e9bbbcea33a3ab7ed2"
OWNER = "Jordancole21"
LOREIFY_TRIAL_URL = "https://loreify.ai/start-trial"
@dataclass(frozen=True)
class RelatedSpace:
title: str
url: str
description: str
@dataclass(frozen=True)
class CTA:
copy: str
button: str
utm_content: str # hero | post_tool | mid_page | footer (or page-specific)
@dataclass(frozen=True)
class SpaceConfig:
slug: str # Space repo name, e.g. "dnd-monster-builder"
utm_campaign: str # e.g. "dnd_monster_builder"
title: str # Space metadata title
emoji: str
short_description: str # <= ~60 chars
h1: str # exact-intent H1, one per page
tagline: str # one-sentence outcome promise
primary_keyword: str
secondary_keywords: tuple = ()
hero_cta: CTA = None
post_tool_cta: CTA = None
mid_page_cta: CTA = None # optional third placement
footer_cta: CTA = None
related: tuple = () # tuple[RelatedSpace]
@property
def space_url(self) -> str:
return f"https://huggingface.co/spaces/{OWNER}/{self.slug}"