TUIのMarkdownブラウザのTextual Markdown Browser を少し試す

TextualというTUIのPythonライブラリを利用したMarkdownブラウザのTextual Markdown Browser というものを見かけたので試してみました．

willmcgugan/textual-markdown

Textualize/textual: Textual is a TUI (Text User Interface) framework for Python inspired by modern web development.

導入

$ python3 -m venv venv
$ source venv/bin/activate
$ pip install textual-markdown

実行

$ python3 -m textual_markdown ./README.md

マウスホイールでのスクロールにも対応していて動作がするするといい感じです．TOCからのページ内リンクもマウスクリックで動作します．といい感じなのですが，以下のようにMarkdownによりエラーになって動作しないものが多いです．

$ python3 -m textual_markdown ~/src/reveal.js/README.md
╭──────────────────────── Traceback (most recent call last) ─────────────────────────╮
│ /home/matoken/.local/lib/python3.10/site-packages/textual_markdown/widgets.py:601 │
│ in on_tocupdated │
│ │
│ 598 │ │ yield MarkdownDocument() │
│ 599 │ │
│ 600 │ def on_tocupdated(self, message: TOCUpdated) -> None: │
│ ❱ 601 │ │ self.query_one(MarkdownTOC).toc = message.toc │
│ 602 │ │ message.stop() │
│ 603 │ │
│ 604 │ def on_tocselected(self, message: TOCSelected) -> None: │
│ │
│ ╭───────────────────── locals ─────────────────────╮ │
│ │ message = TOCUpdated(MarkdownDocument()) │ │
│ │ self = MarkdownBrowser(classes={'-show-toc'}) │ │
│ ╰──────────────────────────────────────────────────╯ │
│ │
│ /home/matoken/.local/lib/python3.10/site-packages/textual_markdown/widgets.py:525 │
│ in watch_toc │
│ │
:

現段階では表示でないMarkdownが多いのでhtmlに変換してブラウザで見るほうが良さそうです．

$ pandoc -f markdown -t html ~/src/reveal.js/README.md | w3m -T text/html
$ pandoc -f markdown -t html ~/src/reveal.js/README.md | lynx -stdin

環境

$ pip3 show textual-markdown
Name: textual-markdown
Version: 0.1.1
Summary: Markdown viewer widgets for Textual
Home-page:
Author: Will McGugan
Author-email: willmcgugan@gmail.com
License: MIT
Location: /home/matoken/.local/lib/python3.10/site-packages
Requires: markdown-it-py, textual
Required-by:
$ dpkg-query -W python3 python3-pip pandoc lynx w3m
lynx 2.9.0dev.11-1
pandoc 2.17.1.1-1.1
python3 3.10.6-3+b1
python3-pip 22.3.1+dfsg-1
w3m 0.5.3+git20220429-1+b1
$ lsb_release --all
Distributor ID: Debian
Description: Debian GNU/Linux bookworm/sid
Release: n/a
Codename: bookworm
$ arch
x86_64