#!/usr/bin/env python3 # -*- coding: utf-8 -*- """布局模块""" from .base import BaseLayout from .hero_bottom import HeroBottomLayout from .overlay_center import OverlayCenterLayout from .overlay_bottom import OverlayBottomLayout from .split_vertical import SplitVerticalLayout from .card_float import CardFloatLayout # 布局注册表 LAYOUTS = { "hero_bottom": HeroBottomLayout, "overlay_center": OverlayCenterLayout, "overlay_bottom": OverlayBottomLayout, "split_vertical": SplitVerticalLayout, "card_float": CardFloatLayout, } # 布局别名 LAYOUT_ALIASES = { "景点": "hero_bottom", "攻略": "overlay_center", "美食": "overlay_bottom", "探店": "overlay_bottom", "酒店": "card_float", "民宿": "split_vertical", } def get_layout(name: str) -> type: """获取布局类""" # 先检查别名 if name in LAYOUT_ALIASES: name = LAYOUT_ALIASES[name] return LAYOUTS.get(name, HeroBottomLayout) __all__ = [ 'BaseLayout', 'HeroBottomLayout', 'OverlayCenterLayout', 'OverlayBottomLayout', 'SplitVerticalLayout', 'CardFloatLayout', 'LAYOUTS', 'LAYOUT_ALIASES', 'get_layout', ]