|
|
|
@ -1,7 +1,7 @@
|
|
|
|
|
from dataclasses import dataclass, field
|
|
|
|
|
|
|
|
|
|
from bebop.gemtext import parse_gemtext, Title
|
|
|
|
|
from bebop.metalines import generate_metalines
|
|
|
|
|
from bebop.metalines import generate_dumb_metalines, generate_metalines
|
|
|
|
|
from bebop.links import Links
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -10,6 +10,7 @@ class Page:
|
|
|
|
|
"""Page-related data.
|
|
|
|
|
|
|
|
|
|
Attributes:
|
|
|
|
|
- source: str used to create the page.
|
|
|
|
|
- metalines: lines ready to be rendered.
|
|
|
|
|
- links: Links instance, mapping IDs to links on the page; this data is
|
|
|
|
|
redundant as the links' URLs/IDs are already available in the
|
|
|
|
@ -28,3 +29,9 @@ class Page:
|
|
|
|
|
elements, links, title = parse_gemtext(gemtext)
|
|
|
|
|
metalines = generate_metalines(elements, 80)
|
|
|
|
|
return Page(gemtext, metalines, links, title)
|
|
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
|
def from_text(text: str):
|
|
|
|
|
"""Produce a Page for a text string."""
|
|
|
|
|
metalines = generate_dumb_metalines(text.splitlines())
|
|
|
|
|
return Page(text, metalines)
|
|
|
|
|