feat: terminal UI over the shared workbench core (issue #26, phase 4)

This commit is contained in:
2026-07-14 20:33:30 +02:00
parent 3a8fafd2fd
commit a3ca44640c
14 changed files with 1701 additions and 295 deletions

View File

@@ -10,7 +10,7 @@ msgstr ""
msgid "%{count} mapped"
msgstr ""
#: lib/bds/desktop/shell_data.ex:171
#: lib/bds/desktop/shell_data.ex:173
#, elixir-autogen, elixir-format
msgid "%{count} post"
msgid_plural "%{count} posts"
@@ -81,6 +81,11 @@ msgstr ""
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
#: lib/bds/desktop/shell_live/post_editor.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: lib/bds/tui.ex:203
#: lib/bds/tui.ex:206
#: lib/bds/tui.ex:209
#: lib/bds/tui.ex:217
#: lib/bds/tui.ex:537
#, elixir-autogen, elixir-format
msgid "AI Suggestions"
msgstr ""
@@ -301,7 +306,7 @@ msgstr ""
msgid "Validation apply prepared"
msgstr ""
#: lib/bds/desktop/shell_data.ex:164
#: lib/bds/desktop/shell_data.ex:166
#: lib/bds/ui/sidebar.ex:331
#, elixir-autogen, elixir-format
msgid "Archived"
@@ -336,7 +341,7 @@ msgstr ""
msgid "Auto"
msgstr ""
#: lib/bds/desktop/shell_live.ex:442
#: lib/bds/desktop/shell_live.ex:443
#: lib/bds/desktop/shell_live/chat_editor.ex:234
#: lib/bds/desktop/shell_live/media_editor.ex:171
#: lib/bds/desktop/shell_live/media_editor.ex:364
@@ -486,7 +491,7 @@ msgstr ""
msgid "Category name is required"
msgstr ""
#: lib/bds/desktop/shell_live.ex:780
#: lib/bds/desktop/shell_live.ex:789
#: lib/bds/desktop/shell_live/chat_editor.ex:87
#: lib/bds/desktop/shell_live/chat_editor.ex:233
#: lib/bds/desktop/shell_live/chat_editor.ex:323
@@ -584,6 +589,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:34
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
#: lib/bds/tui.ex:308
#: lib/bds/ui/sidebar.ex:764
#, elixir-autogen, elixir-format
msgid "Content"
@@ -753,7 +759,7 @@ msgstr ""
msgid "Delete conversation"
msgstr ""
#: lib/bds/desktop/shell_live/post_editor/persistence.ex:65
#: lib/bds/ui/post_editor/persistence.ex:69
#, elixir-autogen, elixir-format
msgid "Delete this unpublished draft"
msgstr ""
@@ -810,17 +816,17 @@ msgstr ""
msgid "Disable reasoning output for the online chat model"
msgstr ""
#: lib/bds/desktop/shell_live/post_editor/persistence.ex:57
#: lib/bds/ui/post_editor/persistence.ex:61
#, elixir-autogen, elixir-format
msgid "Discard Changes"
msgstr ""
#: lib/bds/desktop/shell_live/post_editor/persistence.ex:58
#: lib/bds/ui/post_editor/persistence.ex:62
#, elixir-autogen, elixir-format
msgid "Discard Draft"
msgstr ""
#: lib/bds/desktop/shell_live/post_editor/persistence.ex:64
#: lib/bds/ui/post_editor/persistence.ex:68
#, elixir-autogen, elixir-format
msgid "Discard changes and restore the published version"
msgstr ""
@@ -863,7 +869,7 @@ msgstr ""
msgid "Documentation"
msgstr ""
#: lib/bds/desktop/shell_data.ex:162
#: lib/bds/desktop/shell_data.ex:164
#, elixir-autogen, elixir-format
msgid "Draft"
msgstr ""
@@ -1063,7 +1069,7 @@ msgstr ""
msgid "Generate Site"
msgstr ""
#: lib/bds/desktop/shell_live.ex:781
#: lib/bds/desktop/shell_live.ex:790
#: lib/bds/desktop/shell_live/socket_state.ex:109
#: lib/bds/ui/sidebar.ex:789
#, elixir-autogen, elixir-format
@@ -1076,8 +1082,8 @@ msgstr ""
msgid "Git Diff"
msgstr ""
#: lib/bds/desktop/shell_data.ex:226
#: lib/bds/desktop/shell_live.ex:777
#: lib/bds/desktop/shell_data.ex:228
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:171
#, elixir-autogen, elixir-format
msgid "Git Log"
@@ -1103,7 +1109,7 @@ msgstr ""
msgid "Host"
msgstr ""
#: lib/bds/desktop/shell_data.ex:98
#: lib/bds/desktop/shell_data.ex:100
#: lib/bds/desktop/shell_live/index.html.heex:657
#: lib/bds/desktop/shell_live/media_editor.ex:731
#: lib/bds/desktop/shell_live/post_editor.ex:1038
@@ -1200,9 +1206,9 @@ msgstr ""
msgid "Import failed: %{error}"
msgstr ""
#: lib/bds/desktop/shell_live.ex:605
#: lib/bds/desktop/shell_live.ex:893
#: lib/bds/desktop/shell_live.ex:899
#: lib/bds/desktop/shell_live.ex:606
#: lib/bds/desktop/shell_live.ex:902
#: lib/bds/desktop/shell_live.ex:908
#: lib/bds/desktop/shell_live/sidebar_create.ex:47
#, elixir-autogen, elixir-format
msgid "Import media"
@@ -1337,7 +1343,7 @@ msgstr ""
msgid "Macros (%{count})"
msgstr ""
#: lib/bds/desktop/shell_data.ex:101
#: lib/bds/desktop/shell_data.ex:103
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:55
#, elixir-autogen, elixir-format
msgid "Main Language"
@@ -1379,6 +1385,9 @@ msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:762
#: lib/bds/desktop/shell_live/sidebar_components.ex:654
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175
#: lib/bds/tui.ex:452
#: lib/bds/tui.ex:581
#: lib/bds/tui.ex:584
#: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:558
@@ -1431,7 +1440,7 @@ msgstr ""
msgid "Missing URLs"
msgstr ""
#: lib/bds/desktop/shell_data.ex:100
#: lib/bds/desktop/shell_data.ex:102
#, elixir-autogen, elixir-format
msgid "Mode"
msgstr ""
@@ -1466,6 +1475,7 @@ msgstr ""
#: lib/bds/desktop/menu_bar.ex:185
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:103
#, elixir-autogen, elixir-format
msgid "New Post"
msgstr ""
@@ -1644,7 +1654,7 @@ msgstr ""
msgid "Nothing to Import"
msgstr ""
#: lib/bds/desktop/shell_data.ex:100
#: lib/bds/desktop/shell_data.ex:102
#: lib/bds/desktop/shell_live/index.html.heex:503
#, elixir-autogen, elixir-format
msgid "Offline"
@@ -1784,7 +1794,7 @@ msgstr ""
msgid "Other (%{count})"
msgstr ""
#: lib/bds/desktop/shell_live.ex:776
#: lib/bds/desktop/shell_live.ex:785
#: lib/bds/desktop/shell_live/panel_renderer.ex:83
#, elixir-autogen, elixir-format
msgid "Output"
@@ -1866,7 +1876,7 @@ msgstr ""
msgid "Post"
msgstr ""
#: lib/bds/desktop/shell_data.ex:229
#: lib/bds/desktop/shell_data.ex:231
#: lib/bds/desktop/shell_live/panel_renderer.ex:118
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:310
#, elixir-autogen, elixir-format
@@ -1901,6 +1911,8 @@ msgstr ""
#: lib/bds/desktop/menu_bar.ex:202
#: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:451
#: lib/bds/tui.ex:462
#: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format
@@ -1985,7 +1997,7 @@ msgstr ""
msgid "Publish Selected"
msgstr ""
#: lib/bds/desktop/shell_data.ex:163
#: lib/bds/desktop/shell_data.ex:165
#: lib/bds/desktop/shell_live/post_editor.ex:1036
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:472
#: lib/bds/ui/sidebar.ex:324
@@ -2282,6 +2294,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/script_editor.ex:216
#: lib/bds/desktop/shell_live/script_editor.ex:219
#: lib/bds/desktop/shell_live/script_editor.ex:234
#: lib/bds/tui.ex:454
#: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115
@@ -2456,7 +2469,7 @@ msgstr ""
msgid "Starting..."
msgstr ""
#: lib/bds/desktop/shell_data.ex:97
#: lib/bds/desktop/shell_data.ex:99
#: lib/bds/desktop/shell_live/import_editor.ex:1182
#: lib/bds/desktop/shell_live/import_editor.ex:1233
#, elixir-autogen, elixir-format
@@ -2529,6 +2542,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/tags_editor.ex:222
#: lib/bds/desktop/shell_live/tags_editor.ex:253
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
#: lib/bds/tui.ex:455
#: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289
@@ -2538,7 +2552,7 @@ msgstr ""
msgid "Tags"
msgstr ""
#: lib/bds/desktop/shell_live.ex:775
#: lib/bds/desktop/shell_live.ex:784
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#, elixir-autogen, elixir-format
msgid "Tasks"
@@ -2584,6 +2598,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/template_editor.ex:171
#: lib/bds/desktop/shell_live/template_editor.ex:176
#: lib/bds/desktop/shell_live/template_editor.ex:191
#: lib/bds/tui.ex:453
#: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122
@@ -2780,7 +2795,7 @@ msgid "Unsaved"
msgstr ""
#: lib/bds/desktop/shell_live/import_editor.ex:871
#: lib/bds/desktop/shell_live/post_editor/post_metadata.ex:166
#: lib/bds/ui/post_editor/metadata.ex:166
#: lib/bds/ui/sidebar.ex:1108
#, elixir-autogen, elixir-format
msgid "Untitled"
@@ -3218,12 +3233,12 @@ msgstr ""
msgid "Comparing database and filesystem metadata"
msgstr "Comparing database and filesystem metadata"
#: lib/bds/desktop/shell_live.ex:681
#: lib/bds/desktop/shell_live.ex:682
#, elixir-autogen, elixir-format
msgid "Added %{count} images to post"
msgstr "Added %{count} images to post"
#: lib/bds/desktop/shell_live.ex:649
#: lib/bds/desktop/shell_live.ex:650
#, elixir-autogen, elixir-format
msgid "Added %{title}"
msgstr "Added %{title}"
@@ -3243,18 +3258,18 @@ msgstr ""
msgid "Image Import Concurrency"
msgstr "Image Import Concurrency"
#: lib/bds/desktop/shell_live.ex:441
#: lib/bds/desktop/shell_live.ex:454
#: lib/bds/desktop/shell_live.ex:648
#: lib/bds/desktop/shell_live.ex:680
#: lib/bds/desktop/shell_live.ex:691
#: lib/bds/desktop/shell_live.ex:702
#: lib/bds/desktop/shell_live.ex:442
#: lib/bds/desktop/shell_live.ex:455
#: lib/bds/desktop/shell_live.ex:649
#: lib/bds/desktop/shell_live.ex:681
#: lib/bds/desktop/shell_live.ex:692
#: lib/bds/desktop/shell_live.ex:703
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:420
#, elixir-autogen, elixir-format
msgid "Add Gallery Images"
msgstr "Add Gallery Images"
#: lib/bds/desktop/shell_live.ex:703
#: lib/bds/desktop/shell_live.ex:704
#, elixir-autogen, elixir-format
msgid "Failed to process %{path}: %{reason}"
msgstr "Failed to process %{path}: %{reason}"
@@ -3445,12 +3460,12 @@ msgstr ""
msgid "untracked"
msgstr ""
#: lib/bds/desktop/shell_live.ex:801
#: lib/bds/desktop/shell_live.ex:810
#, elixir-autogen, elixir-format, fuzzy
msgid "Blogmark"
msgstr "Blogmark"
#: lib/bds/desktop/shell_live.ex:844
#: lib/bds/desktop/shell_live.ex:853
#, elixir-autogen, elixir-format
msgid "Open a project before importing a blogmark."
msgstr ""
@@ -3491,7 +3506,7 @@ msgstr ""
msgid "Failed to copy bookmarklet to clipboard"
msgstr ""
#: lib/bds/desktop/shell_live.ex:813
#: lib/bds/desktop/shell_live.ex:822
#, elixir-autogen, elixir-format
msgid "The project this blogmark targets does not exist here."
msgstr ""
@@ -3598,12 +3613,92 @@ msgstr ""
msgid "The endpoint returned no models. You can still type a model name manually."
msgstr ""
#: lib/bds/tui.ex:28
#: lib/bds/tui.ex:538
#, elixir-autogen, elixir-format
msgid "Blogging Desktop Server"
msgid "AI is unavailable in airplane mode without a local endpoint."
msgstr ""
#: lib/bds/tui.ex:30
#, elixir-autogen, elixir-format
msgid "Press q to quit."
#: lib/bds/tui.ex:584
#, elixir-autogen, elixir-format, fuzzy
msgid "Could not load this file."
msgstr ""
#: lib/bds/tui.ex:111
#, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet."
msgstr ""
#: lib/bds/tui.ex:206
#, elixir-autogen, elixir-format
msgid "No suggestions returned."
msgstr ""
#: lib/bds/tui.ex:581
#, elixir-autogen, elixir-format
msgid "Only images can be previewed."
msgstr ""
#: lib/bds/tui.ex:462
#, elixir-autogen, elixir-format
msgid "Post not found."
msgstr ""
#: lib/bds/tui.ex:282
#, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}."
msgstr ""
#: lib/bds/tui.ex:508
#, elixir-autogen, elixir-format, fuzzy
msgid "Published."
msgstr ""
#: lib/bds/tui.ex:524
#, elixir-autogen, elixir-format
msgid "Save before switching languages."
msgstr ""
#: lib/bds/tui.ex:509
#, elixir-autogen, elixir-format, fuzzy
msgid "Saved."
msgstr ""
#: lib/bds/tui.ex:285
#, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it."
msgstr ""
#: lib/bds/tui.ex:203
#, elixir-autogen, elixir-format
msgid "Suggestions applied."
msgstr ""
#: lib/bds/tui.ex:297
#, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)"
msgstr ""
#: lib/bds/tui.ex:296
#, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)"
msgstr ""
#: lib/bds/tui.ex:328
#, elixir-autogen, elixir-format, fuzzy
msgid "Working…"
msgstr ""
#: lib/bds/tui.ex:364
#, elixir-autogen, elixir-format
msgid "ctrl+s save · ctrl+p publish · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
msgstr ""
#: lib/bds/tui.ex:357
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · r refresh · ctrl+q quit"
msgstr ""
#: lib/bds/tui.ex:349
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr ""