from textual.app import App, ComposeResult from textual.widgets import Input, Button, Static from textual.containers import Container from rich.markdown import Markdown from textual.binding import Binding class Browset(App): CSS_PATH = "browset.css" BINDINGS = [ Binding("ctrl+c,ctrl+q", "app.quit", "Quit", show=True), ] content = "## Hello\n* Bullet points\n*OH Yeah!" def compose(self) -> ComposeResult: yield Container( Button("🔙"), # ⏪ Button("🔝"), # ⏫ Button("🔜"), # ⏩ Button("🔄"), # 🔁 Input(placeholder="Enter URI"), id="toolbar" ) yield Static(Markdown(self.content), id="content") async def on_input_submitted(self, message: Input.Submitted) -> None: self.content = "## new stuff\n"+message.value self.query_one("#content", Static).update(Markdown(self.content)) if __name__ == "__main__": app = Browset() app.run()