page.py 594 B

123456789101112131415161718192021
  1. from dataclasses import dataclass, field
  2. from typing import Callable, List, Optional
  3. from nicegui.dataclasses import KWONLY_SLOTS
  4. from .part import DocumentationPart
  5. @dataclass(**KWONLY_SLOTS)
  6. class DocumentationPage:
  7. name: str
  8. title: Optional[str] = None
  9. subtitle: Optional[str] = None
  10. back_link: Optional[str] = None
  11. parts: List[DocumentationPart] = field(default_factory=list)
  12. extra_column: Optional[Callable] = None
  13. @property
  14. def heading(self) -> str:
  15. """Return the heading of the page."""
  16. return self.title or self.parts[0].title or ''