mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
from rich.markdown import Markdown
|
|
|
|
from textual import events
|
|
from textual.app import App
|
|
from textual.views import DockView
|
|
from textual.widgets import Header, Footer, Placeholder, ScrollView
|
|
|
|
|
|
class MyApp(App):
|
|
"""An example of a very simple Textual App"""
|
|
|
|
async def on_load(self, event: events.Load) -> None:
|
|
await self.bind("q,ctrl+c", "quit", "Quit")
|
|
await self.bind("b", "view.toggle('sidebar')", "Toggle sidebar")
|
|
|
|
async def on_startup(self, event: events.Startup) -> None:
|
|
|
|
view = await self.push_view(DockView())
|
|
|
|
footer = Footer()
|
|
header = Header()
|
|
body = ScrollView()
|
|
sidebar = Placeholder()
|
|
|
|
footer.add_key("b", "Toggle sidebar")
|
|
footer.add_key("q", "Quit")
|
|
|
|
await view.dock(header, edge="top")
|
|
await view.dock(footer, edge="bottom")
|
|
await view.dock(sidebar, edge="left", size=30, name="sidebar")
|
|
await view.dock(body, edge="right")
|
|
|
|
async def get_markdown(filename: str) -> None:
|
|
with open(filename, "rt") as fh:
|
|
readme = Markdown(fh.read(), hyperlinks=True)
|
|
await body.update(readme)
|
|
|
|
await self.call_later(get_markdown, "richreadme.md")
|
|
|
|
|
|
MyApp.run(title="Simple App", log="textual.log")
|