esa.io の投稿一覧と本文をターミナル上で閲覧する TUI アプリです。設定ファイルにワークスペース(チーム)と API トークン、表示用のビュー(検索クエリ)を定義して利用します。
- 投稿一覧の表示(スター数付き)
- 投稿本文の表示(Markdown)
- ビュー(クエリ)をタブ切り替えして一覧を絞り込み
TOML で設定します。アプリは workspaces の先頭に定義されたワークスペースを使用します。
[workspaces.default]
team_name = "my_team"
api_endpoint = "https://api.esa.io"
token = "my_token"
theme = "dark"
[workspaces.default.post_views.all]
title = "All Posts"
query = "sort:updated"
[themes.dark]
primary = "#E2E8F0"
muted = "#94A3B8"
accent = "#38BDF8"
error = "#F87171"
success = "#34D399"
warning = "#FBBF24"
link = "#60A5FA"
[themes.light]
primary = "#0F172A"
muted = "#475569"
accent = "#0284C7"
error = "#DC2626"
success = "#059669"
warning = "#D97706"
link = "#2563EB"workspaces.<name>.team_name: esa のチーム名workspaces.<name>.api_endpoint: API エンドポイント(現在の実装では未使用)workspaces.<name>.token: API トークンworkspaces.<name>.post_views.<name>.title: タブに表示される名称workspaces.<name>.post_views.<name>.query: 一覧取得時の検索クエリ(未指定ならsort:updated)workspaces.<name>.theme: 使用するテーマ名(themes.<name>のキー)themes.<name>.<role>: role に対応する色(例:primary,muted,accent,error,success,warning,link)
- 背景色はターミナルの設定を尊重します(設定項目はありません)。
- role は「色そのもの」ではなく「表示目的」を表します。UI 側では role を使い、実際の色味は
themes.<name>.<role>で指定します。 themes.darkとthemes.lightは Tailwind のカラーパレットを参考にした推奨値です。
以下の順で探索されます。最初に見つかったファイルが使用されます。
ESA_READER_CONFIGで指定されたパス$XDG_CONFIG_HOME/esa-reader/config.toml~/.config/esa-reader/config.toml~/Library/Application Support/esa-reader/config.toml~/.esa-reader/config.toml
見つからない場合は上記 1〜5 のうち最優先パスが推奨先として表示されます。
cargo runNerdfont 対応のフォント利用を想定しています. 例: miiton/Cica: プログラミング用日本語等幅フォント Cica(シカ)
j/↓: 下へ移動(一覧選択)k/↑: 上へ移動(一覧選択)h/←: 前のビューへ切り替えl/→: 次のビューへ切り替えEnter: 選択中の投稿を本文表示o: 選択中の投稿をブラウザで開くSpace: 本文を 1 画面分下へスクロールShift + Space: 本文を 1 画面分上へスクロールw: 選択中の投稿を watch するW: 選択中の投稿の watch を解除するs: 選択中の投稿を star するS: 選択中の投稿の star を解除するq: 終了