diff --git a/assets/css/editor.css b/assets/css/editor.css
index a05151a..1916112 100644
--- a/assets/css/editor.css
+++ b/assets/css/editor.css
@@ -617,6 +617,14 @@
white-space: nowrap;
}
+.post-editor .tag-suggestion-section-label {
+ padding: 4px 12px;
+ font-size: 0.75rem;
+ text-transform: uppercase;
+ letter-spacing: 0.04em;
+ color: var(--vscode-descriptionForeground, #a6a6a6);
+}
+
.post-editor .tag-suggestion.create-new {
border-top: 1px solid var(--vscode-widget-border, #454545);
margin-top: 4px;
diff --git a/lib/bds/desktop/shell_live/post_editor.ex b/lib/bds/desktop/shell_live/post_editor.ex
index 26dde83..234089c 100644
--- a/lib/bds/desktop/shell_live/post_editor.ex
+++ b/lib/bds/desktop/shell_live/post_editor.ex
@@ -3,7 +3,7 @@ defmodule BDS.Desktop.ShellLive.PostEditor do
use Phoenix.LiveComponent
- alias BDS.{AI, Metadata, Posts, Preview}
+ alias BDS.{AI, Embeddings, Metadata, Posts, Preview}
alias BDS.Desktop.ShellData
alias BDS.Desktop.ShellLive.{EditorImageDrop, Notify}
alias BDS.Desktop.ShellLive.PostEditor.{DraftManagement, ListValues, Persistence, PostMetadata}
@@ -12,7 +12,6 @@ defmodule BDS.Desktop.ShellLive.PostEditor do
import DraftManagement,
only: [
- current_draft: 4,
editing_canonical_language?: 3,
normalize_language: 2,
normalize_mode: 1,
@@ -288,6 +287,10 @@ defmodule BDS.Desktop.ShellLive.PostEditor do
{:noreply, do_detect_language(socket)}
end
+ def handle_event("focus_post_editor_tags", _params, socket) do
+ {:noreply, socket |> load_tag_semantic_suggestions() |> build_data()}
+ end
+
def handle_event("add_post_editor_tag", %{"tag" => tag}, socket) do
{:noreply, do_add_list_value(socket, :tags, tag)}
end
@@ -325,6 +328,19 @@ defmodule BDS.Desktop.ShellLive.PostEditor do
{:noreply, socket}
end
+ # Semantic tag suggestions read the embeddings index (no live model call), so
+ # they work offline; suggest_tags/2 returns [] when similarity is disabled.
+ defp load_tag_semantic_suggestions(socket) do
+ case socket.assigns.post do
+ %Post{} = post ->
+ {:ok, suggestions} = Embeddings.suggest_tags(post.id, [])
+ assign(socket, :tag_semantic_suggestions, suggestions)
+
+ _other ->
+ socket
+ end
+ end
+
defp component_current_draft(socket, post, metadata, active_language) do
persisted = persisted_form(post, metadata, active_language)
Map.get(socket.assigns.drafts, active_language, persisted)
@@ -344,6 +360,7 @@ defmodule BDS.Desktop.ShellLive.PostEditor do
active_language: canonical,
drafts: %{},
tag_query: "",
+ tag_semantic_suggestions: [],
category_query: "",
quick_actions_open?: false,
mode: :markdown,
@@ -435,6 +452,11 @@ defmodule BDS.Desktop.ShellLive.PostEditor do
Tags.list_tags(post.project_id),
socket.assigns.tag_query
),
+ tag_semantic_suggestions:
+ Enum.reject(
+ socket.assigns.tag_semantic_suggestions || [],
+ &(&1 in tag_values(form))
+ ),
category_suggestions:
category_suggestions(
form,
@@ -959,7 +981,7 @@ defmodule BDS.Desktop.ShellLive.PostEditor do
active_language = socket.assigns.active_language
post = socket.assigns.post
metadata = socket.assigns.project_metadata
- draft = current_draft(socket.assigns, post, metadata, active_language)
+ draft = component_current_draft(socket, post, metadata, active_language)
updated = Map.put(draft, field, value)
assign(socket, :drafts, Map.put(socket.assigns.drafts, active_language, updated))
end
diff --git a/lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex b/lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex
index 659795c..c177c10 100644
--- a/lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex
+++ b/lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex
@@ -173,9 +173,22 @@
value={@post_editor.tag_query}
placeholder={dgettext("ui", "Add tag")}
autocomplete="off"
+ phx-focus="focus_post_editor_tags"
+ phx-target={@myself}
/>
+ <%= if String.trim(@post_editor.tag_query || "") == "" and Enum.any?(@post_editor.tag_semantic_suggestions) do %>
+
+
<%= dgettext("ui", "Suggested tags") %>
+ <%= for name <- @post_editor.tag_semantic_suggestions do %>
+
+ <%= name %>
+
+ <% end %>
+
+ <% end %>
+
<%= if String.trim(@post_editor.tag_query || "") != "" and (Enum.any?(@post_editor.tag_suggestions) or @post_editor.tag_query_addable?) do %>
<%= for tag <- @post_editor.tag_suggestions do %>
diff --git a/priv/gettext/de/LC_MESSAGES/ui.po b/priv/gettext/de/LC_MESSAGES/ui.po
index df6f0fa..3b814bd 100644
--- a/priv/gettext/de/LC_MESSAGES/ui.po
+++ b/priv/gettext/de/LC_MESSAGES/ui.po
@@ -79,7 +79,7 @@ msgstr "KI-Einstellungen"
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:42
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
-#: lib/bds/desktop/shell_live/post_editor.ex:847
+#: lib/bds/desktop/shell_live/post_editor.ex:888
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#, elixir-autogen, elixir-format
msgid "AI Suggestions"
@@ -142,7 +142,7 @@ msgstr "Kategorie-Archiv hinzufügen"
msgid "Add Submenu"
msgstr "Untermenü hinzufügen"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:259
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:272
#, elixir-autogen, elixir-format
msgid "Add category"
msgstr "Kategorie hinzufügen"
@@ -246,7 +246,7 @@ msgid "Assistant"
msgstr "Assistent"
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:166
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:202
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:215
#, elixir-autogen, elixir-format
msgid "Author"
msgstr "Autor"
@@ -263,8 +263,8 @@ msgstr "Automatisch"
#: lib/bds/desktop/shell_live/media_editor.ex:353
#: lib/bds/desktop/shell_live/media_editor.ex:546
#: lib/bds/desktop/shell_live/overlay_manager.ex:73
-#: lib/bds/desktop/shell_live/post_editor.ex:714
-#: lib/bds/desktop/shell_live/post_editor.ex:763
+#: lib/bds/desktop/shell_live/post_editor.ex:755
+#: lib/bds/desktop/shell_live/post_editor.ex:804
#, elixir-autogen, elixir-format
msgid "Automatic AI actions stay gated by airplane mode."
msgstr "Automatische KI-Aktionen bleiben durch den Flugmodus gesperrt."
@@ -283,7 +283,7 @@ msgid "Available languages"
msgstr "Verfuegbare Sprachen"
#: lib/bds/desktop/shell_live/panel_renderer.ex:124
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:300
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:313
#, elixir-autogen, elixir-format
msgid "Backlinks"
msgstr "Rückverweise"
@@ -369,7 +369,7 @@ msgstr "Bildunterschrift"
#: lib/bds/desktop/shell_live/index.html.heex:336
#: lib/bds/desktop/shell_live/misc_editor.ex:755
#: lib/bds/desktop/shell_live/misc_editor.ex:756
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:243
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:256
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:59
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:75
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:107
@@ -501,7 +501,7 @@ msgstr "Konfiguriere einen API-Schlüssel in den Einstellungen, um den KI-Chat z
msgid "Confirm"
msgstr "Bestaetigen"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:362
+#: 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/ui/sidebar.ex:764
@@ -550,17 +550,17 @@ msgstr "Erstellen"
msgid "Create / Edit"
msgstr "Erstellen / Bearbeiten"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:275
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:288
#, elixir-autogen, elixir-format
msgid "Create category"
msgstr "Kategorie erstellen"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:193
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:206
#, elixir-autogen, elixir-format
msgid "Create tag"
msgstr "Schlagwort erstellen"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:456
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:469
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:48
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:46
#, elixir-autogen, elixir-format
@@ -611,7 +611,7 @@ msgstr "Datenpfad"
msgid "Date Distribution"
msgstr "Datumsverteilung"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:288
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:301
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:177
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:185
#, elixir-autogen, elixir-format
@@ -698,7 +698,7 @@ msgstr "Beschreibung"
msgid "Desktop Runtime"
msgstr "Desktop-Laufzeit"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:223
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:236
#, elixir-autogen, elixir-format
msgid "Detect"
msgstr "Erkennen"
@@ -708,9 +708,9 @@ msgstr "Erkennen"
#: lib/bds/desktop/shell_live/media_editor.ex:203
#: lib/bds/desktop/shell_live/media_editor.ex:209
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59
-#: lib/bds/desktop/shell_live/post_editor.ex:713
-#: lib/bds/desktop/shell_live/post_editor.ex:742
-#: lib/bds/desktop/shell_live/post_editor.ex:748
+#: lib/bds/desktop/shell_live/post_editor.ex:754
+#: lib/bds/desktop/shell_live/post_editor.ex:783
+#: lib/bds/desktop/shell_live/post_editor.ex:789
#, elixir-autogen, elixir-format
msgid "Detect Language"
msgstr "Sprache erkennen"
@@ -776,7 +776,7 @@ msgstr "Ansicht schließen"
msgid "Display Text"
msgstr "Anzeigetext"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:232
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:245
#, elixir-autogen, elixir-format
msgid "Do Not Translate"
msgstr "Nicht übersetzen"
@@ -898,8 +898,8 @@ msgstr "Fehler"
msgid "Exact Match"
msgstr "Exakte Übereinstimmung"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:349
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:354
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:362
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:367
#, elixir-autogen, elixir-format
msgid "Excerpt"
msgstr "Auszug"
@@ -983,7 +983,7 @@ msgid "Force Reload"
msgstr "Erzwungenes Neuladen"
#: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:194
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:419
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:432
#, elixir-autogen, elixir-format
msgid "Gallery"
msgstr "Galerie"
@@ -1036,7 +1036,7 @@ msgstr "Host"
#: lib/bds/desktop/shell_data.ex:116
#: lib/bds/desktop/shell_live/index.html.heex:666
#: lib/bds/desktop/shell_live/media_editor.ex:711
-#: lib/bds/desktop/shell_live/post_editor.ex:965
+#: lib/bds/desktop/shell_live/post_editor.ex:1006
#, elixir-autogen, elixir-format
msgid "Idle"
msgstr "Leerlauf"
@@ -1178,12 +1178,12 @@ msgstr "Inline"
msgid "Insert"
msgstr "Einfuegen"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:390
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:403
#, elixir-autogen, elixir-format
msgid "Insert Link"
msgstr "Link einfuegen"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:399
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:412
#, elixir-autogen, elixir-format
msgid "Insert Media"
msgstr "Medium einfuegen"
@@ -1201,13 +1201,13 @@ msgstr "Art"
#: lib/bds/desktop/shell_live/import_editor.ex:878
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:171
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:207
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:220
#, elixir-autogen, elixir-format
msgid "Language"
msgstr "Sprache"
#: lib/bds/desktop/shell_live/media_editor.ex:210
-#: lib/bds/desktop/shell_live/post_editor.ex:749
+#: lib/bds/desktop/shell_live/post_editor.ex:790
#, elixir-autogen, elixir-format
msgid "Language detection failed."
msgstr "Spracherkennung fehlgeschlagen."
@@ -1223,7 +1223,7 @@ msgstr "Hell"
msgid "Link to Post"
msgstr "Mit Beitrag verknüpfen"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:329
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:342
#, elixir-autogen, elixir-format
msgid "Linked Media"
msgstr "Verknüpfte Medien"
@@ -1234,7 +1234,7 @@ msgid "Linked Posts"
msgstr "Verknüpfte Beiträge"
#: lib/bds/desktop/shell_live/panel_renderer.ex:142
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:312
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:325
#, elixir-autogen, elixir-format
msgid "Links To"
msgstr "Verweist auf"
@@ -1291,7 +1291,7 @@ msgstr "Zuordnen zu..."
msgid "Mapped"
msgstr "Zugeordnet"
-#: lib/bds/desktop/shell_live/post_editor.ex:968
+#: lib/bds/desktop/shell_live/post_editor.ex:1009
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:123
#, elixir-autogen, elixir-format
msgid "Markdown"
@@ -1454,8 +1454,8 @@ msgstr "Noch keine Git-Historie"
#: lib/bds/desktop/shell_live/misc_editor.ex:473
#: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:72
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:308
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:320
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:321
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:333
#: lib/bds/desktop/shell_live/sidebar_components.ex:321
#: lib/bds/desktop/shell_live/sidebar_components.ex:381
#: lib/bds/desktop/shell_live/sidebar_components.ex:455
@@ -1466,7 +1466,7 @@ msgstr "Noch keine Git-Historie"
msgid "No items"
msgstr "Keine Einträge"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:342
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:355
#, elixir-autogen, elixir-format
msgid "No linked media"
msgstr "Keine verknüpften Medien"
@@ -1703,7 +1703,7 @@ msgstr "Im Browser öffnen"
msgid "OpenAI-compatible endpoints, model routing, airplane mode, and system prompt"
msgstr "OpenAI-kompatible Endpunkte, Modellrouting, Flugmodus und Systemprompt"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:337
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:350
#, elixir-autogen, elixir-format
msgid "Order"
msgstr "Reihenfolge"
@@ -1789,16 +1789,16 @@ msgid "Persist the detected language for this media item"
msgstr "Die erkannte Sprache für dieses Medium speichern"
#: lib/bds/desktop/shell_live/misc_editor.ex:747
-#: lib/bds/desktop/shell_live/post_editor.ex:488
-#: lib/bds/desktop/shell_live/post_editor.ex:492
-#: lib/bds/desktop/shell_live/post_editor.ex:531
-#: lib/bds/desktop/shell_live/post_editor.ex:535
-#: lib/bds/desktop/shell_live/post_editor.ex:573
-#: lib/bds/desktop/shell_live/post_editor.ex:588
-#: lib/bds/desktop/shell_live/post_editor.ex:617
-#: lib/bds/desktop/shell_live/post_editor.ex:620
-#: lib/bds/desktop/shell_live/post_editor.ex:700
-#: lib/bds/desktop/shell_live/post_editor.ex:703
+#: lib/bds/desktop/shell_live/post_editor.ex:529
+#: lib/bds/desktop/shell_live/post_editor.ex:533
+#: lib/bds/desktop/shell_live/post_editor.ex:572
+#: lib/bds/desktop/shell_live/post_editor.ex:576
+#: lib/bds/desktop/shell_live/post_editor.ex:614
+#: lib/bds/desktop/shell_live/post_editor.ex:629
+#: lib/bds/desktop/shell_live/post_editor.ex:658
+#: lib/bds/desktop/shell_live/post_editor.ex:661
+#: lib/bds/desktop/shell_live/post_editor.ex:741
+#: lib/bds/desktop/shell_live/post_editor.ex:744
#: lib/bds/desktop/shell_live/sidebar_components.ex:651
#: lib/bds/desktop/shell_live/sidebar_delete.ex:174
#: lib/bds/ui/registry.ex:99
@@ -1808,7 +1808,7 @@ msgstr "Beitrag"
#: lib/bds/desktop/shell_data.ex:247
#: lib/bds/desktop/shell_live/panel_renderer.ex:118
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:297
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:310
#, elixir-autogen, elixir-format
msgid "Post Links"
msgstr "Beitragsverweise"
@@ -1828,12 +1828,12 @@ msgstr "Beitragsvorlage"
msgid "Post is marked as do-not-translate but has translations"
msgstr "Beitrag ist als nicht-übersetzen markiert, hat aber Übersetzungen"
-#: lib/bds/desktop/shell_live/post_editor.ex:531
+#: lib/bds/desktop/shell_live/post_editor.ex:572
#, elixir-autogen, elixir-format
msgid "Post published"
msgstr "Beitrag veröffentlicht"
-#: lib/bds/desktop/shell_live/post_editor.ex:488
+#: lib/bds/desktop/shell_live/post_editor.ex:529
#, elixir-autogen, elixir-format
msgid "Post saved"
msgstr "Beitrag gespeichert"
@@ -1857,7 +1857,7 @@ msgstr "Beiträge (%{count})"
msgid "Preferences"
msgstr "Einstellungen"
-#: lib/bds/desktop/shell_live/post_editor.ex:969
+#: lib/bds/desktop/shell_live/post_editor.ex:1010
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:124
#, elixir-autogen, elixir-format
msgid "Preview"
@@ -1873,7 +1873,7 @@ msgstr "Vorschaumodus"
msgid "Preview Post"
msgstr "Beitragsvorschau"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:430
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:443
#, elixir-autogen, elixir-format
msgid "Preview unavailable"
msgstr "Vorschau nicht verfügbar"
@@ -1926,8 +1926,8 @@ msgid "Publish Selected"
msgstr "Ausgewähltes veröffentlichen"
#: lib/bds/desktop/shell_data.ex:181
-#: lib/bds/desktop/shell_live/post_editor.ex:963
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:459
+#: lib/bds/desktop/shell_live/post_editor.ex:1004
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:472
#: lib/bds/ui/sidebar.ex:324
#, elixir-autogen, elixir-format
msgid "Published"
@@ -2062,7 +2062,7 @@ msgstr "Remote-Pfad"
msgid "Remove"
msgstr "Entfernen"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:250
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:263
#, elixir-autogen, elixir-format
msgid "Remove category"
msgstr "Kategorie entfernen"
@@ -2124,7 +2124,7 @@ msgstr "Lösung"
msgid "Result"
msgstr "Ergebnis"
-#: lib/bds/desktop/shell_live/post_editor.ex:964
+#: lib/bds/desktop/shell_live/post_editor.ex:1005
#, elixir-autogen, elixir-format
msgid "Reverted"
msgstr "Zurückgesetzt"
@@ -2176,7 +2176,7 @@ msgid "Save Translation"
msgstr "Übersetzung speichern"
#: lib/bds/desktop/shell_live/media_editor.ex:710
-#: lib/bds/desktop/shell_live/post_editor.ex:962
+#: lib/bds/desktop/shell_live/post_editor.ex:1003
#, elixir-autogen, elixir-format
msgid "Saved"
msgstr "Gespeichert"
@@ -2376,7 +2376,7 @@ msgstr "Größe"
#: lib/bds/desktop/shell_live/import_editor.ex:1130
#: lib/bds/desktop/shell_live/import_editor.ex:1187
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:238
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:251
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:24
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:23
#, elixir-autogen, elixir-format
@@ -2498,7 +2498,7 @@ msgid "Technology"
msgstr "Technik"
#: lib/bds/desktop/shell_live/misc_editor.ex:752
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:286
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:299
#: lib/bds/desktop/shell_live/sidebar_components.ex:660
#: lib/bds/desktop/shell_live/sidebar_delete.ex:179
#: lib/bds/ui/registry.ex:134
@@ -2650,9 +2650,9 @@ msgstr "Seitenleiste umschalten"
#: lib/bds/desktop/shell_live/media_editor.ex:566
#: lib/bds/desktop/shell_live/media_editor.ex:571
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76
-#: lib/bds/desktop/shell_live/post_editor.ex:762
-#: lib/bds/desktop/shell_live/post_editor.ex:791
-#: lib/bds/desktop/shell_live/post_editor.ex:796
+#: lib/bds/desktop/shell_live/post_editor.ex:803
+#: lib/bds/desktop/shell_live/post_editor.ex:832
+#: lib/bds/desktop/shell_live/post_editor.ex:837
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60
#, elixir-autogen, elixir-format
msgid "Translate"
@@ -2729,7 +2729,7 @@ msgstr "Verknüpfung mit Beitrag aufheben"
#: lib/bds/desktop/shell_live/media_editor.ex:709
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10
-#: lib/bds/desktop/shell_live/post_editor.ex:961
+#: lib/bds/desktop/shell_live/post_editor.ex:1002
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7
#, elixir-autogen, elixir-format
msgid "Unsaved"
@@ -2749,7 +2749,7 @@ msgstr "Ohne Titel"
msgid "Untitled Import"
msgstr "Unbenannter Import"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:457
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:470
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:48
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:46
#, elixir-autogen, elixir-format
@@ -3210,7 +3210,7 @@ msgstr "Gleichzeitige Bildimporte"
#: lib/bds/desktop/shell_live.ex:647
#: lib/bds/desktop/shell_live.ex:658
#: lib/bds/desktop/shell_live.ex:669
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:407
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:420
#, elixir-autogen, elixir-format
msgid "Add Gallery Images"
msgstr "Galerie-Bilder hinzufügen"
@@ -3230,12 +3230,12 @@ msgstr "Archivieren"
msgid "Move this post to the archive"
msgstr "Diesen Beitrag ins Archiv verschieben"
-#: lib/bds/desktop/shell_live/post_editor.ex:617
+#: lib/bds/desktop/shell_live/post_editor.ex:658
#, elixir-autogen, elixir-format
msgid "Post archived"
msgstr "Beitrag archiviert"
-#: lib/bds/desktop/shell_live/post_editor.ex:700
+#: lib/bds/desktop/shell_live/post_editor.ex:741
#, elixir-autogen, elixir-format
msgid "Post unarchived"
msgstr "Beitrag wiederhergestellt"
@@ -3414,18 +3414,18 @@ msgstr "Blogmark"
msgid "Open a project before importing a blogmark."
msgstr "Öffnen Sie ein Projekt, bevor Sie ein Blogmark importieren."
-#: lib/bds/desktop/shell_live/post_editor.ex:643
+#: lib/bds/desktop/shell_live/post_editor.ex:684
#, elixir-autogen, elixir-format
msgid "Added %{name}"
msgstr "%{name} hinzugefügt"
-#: lib/bds/desktop/shell_live/post_editor.ex:650
+#: lib/bds/desktop/shell_live/post_editor.ex:691
#, elixir-autogen, elixir-format
msgid "Failed to import %{path}: %{reason}"
msgstr "Import von %{path} fehlgeschlagen: %{reason}"
-#: lib/bds/desktop/shell_live/post_editor.ex:642
-#: lib/bds/desktop/shell_live/post_editor.ex:649
+#: lib/bds/desktop/shell_live/post_editor.ex:683
+#: lib/bds/desktop/shell_live/post_editor.ex:690
#, elixir-autogen, elixir-format
msgid "Insert Image"
msgstr "Bild einfügen"
@@ -3454,3 +3454,8 @@ msgstr "Bookmarklet konnte nicht in die Zwischenablage kopiert werden"
#, elixir-autogen, elixir-format
msgid "The project this blogmark targets does not exist here."
msgstr "Das Projekt, auf das dieses Blogmark verweist, existiert hier nicht."
+
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:183
+#, elixir-autogen, elixir-format
+msgid "Suggested tags"
+msgstr "Vorgeschlagene Tags"
diff --git a/priv/gettext/en/LC_MESSAGES/ui.po b/priv/gettext/en/LC_MESSAGES/ui.po
index 0a2d7d9..8044215 100644
--- a/priv/gettext/en/LC_MESSAGES/ui.po
+++ b/priv/gettext/en/LC_MESSAGES/ui.po
@@ -79,7 +79,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:42
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
-#: lib/bds/desktop/shell_live/post_editor.ex:847
+#: lib/bds/desktop/shell_live/post_editor.ex:888
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#, elixir-autogen, elixir-format
msgid "AI Suggestions"
@@ -142,7 +142,7 @@ msgstr ""
msgid "Add Submenu"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:259
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:272
#, elixir-autogen, elixir-format
msgid "Add category"
msgstr ""
@@ -246,7 +246,7 @@ msgid "Assistant"
msgstr ""
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:166
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:202
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:215
#, elixir-autogen, elixir-format
msgid "Author"
msgstr ""
@@ -263,8 +263,8 @@ msgstr ""
#: lib/bds/desktop/shell_live/media_editor.ex:353
#: lib/bds/desktop/shell_live/media_editor.ex:546
#: lib/bds/desktop/shell_live/overlay_manager.ex:73
-#: lib/bds/desktop/shell_live/post_editor.ex:714
-#: lib/bds/desktop/shell_live/post_editor.ex:763
+#: lib/bds/desktop/shell_live/post_editor.ex:755
+#: lib/bds/desktop/shell_live/post_editor.ex:804
#, elixir-autogen, elixir-format
msgid "Automatic AI actions stay gated by airplane mode."
msgstr ""
@@ -283,7 +283,7 @@ msgid "Available languages"
msgstr ""
#: lib/bds/desktop/shell_live/panel_renderer.ex:124
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:300
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:313
#, elixir-autogen, elixir-format
msgid "Backlinks"
msgstr ""
@@ -369,7 +369,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/index.html.heex:336
#: lib/bds/desktop/shell_live/misc_editor.ex:755
#: lib/bds/desktop/shell_live/misc_editor.ex:756
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:243
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:256
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:59
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:75
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:107
@@ -501,7 +501,7 @@ msgstr ""
msgid "Confirm"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:362
+#: 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/ui/sidebar.ex:764
@@ -550,17 +550,17 @@ msgstr ""
msgid "Create / Edit"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:275
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:288
#, elixir-autogen, elixir-format
msgid "Create category"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:193
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:206
#, elixir-autogen, elixir-format
msgid "Create tag"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:456
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:469
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:48
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:46
#, elixir-autogen, elixir-format
@@ -611,7 +611,7 @@ msgstr ""
msgid "Date Distribution"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:288
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:301
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:177
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:185
#, elixir-autogen, elixir-format
@@ -698,7 +698,7 @@ msgstr ""
msgid "Desktop Runtime"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:223
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:236
#, elixir-autogen, elixir-format
msgid "Detect"
msgstr ""
@@ -708,9 +708,9 @@ msgstr ""
#: lib/bds/desktop/shell_live/media_editor.ex:203
#: lib/bds/desktop/shell_live/media_editor.ex:209
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59
-#: lib/bds/desktop/shell_live/post_editor.ex:713
-#: lib/bds/desktop/shell_live/post_editor.ex:742
-#: lib/bds/desktop/shell_live/post_editor.ex:748
+#: lib/bds/desktop/shell_live/post_editor.ex:754
+#: lib/bds/desktop/shell_live/post_editor.ex:783
+#: lib/bds/desktop/shell_live/post_editor.ex:789
#, elixir-autogen, elixir-format
msgid "Detect Language"
msgstr ""
@@ -776,7 +776,7 @@ msgstr ""
msgid "Display Text"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:232
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:245
#, elixir-autogen, elixir-format
msgid "Do Not Translate"
msgstr ""
@@ -898,8 +898,8 @@ msgstr ""
msgid "Exact Match"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:349
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:354
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:362
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:367
#, elixir-autogen, elixir-format
msgid "Excerpt"
msgstr ""
@@ -983,7 +983,7 @@ msgid "Force Reload"
msgstr ""
#: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:194
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:419
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:432
#, elixir-autogen, elixir-format
msgid "Gallery"
msgstr ""
@@ -1036,7 +1036,7 @@ msgstr ""
#: lib/bds/desktop/shell_data.ex:116
#: lib/bds/desktop/shell_live/index.html.heex:666
#: lib/bds/desktop/shell_live/media_editor.ex:711
-#: lib/bds/desktop/shell_live/post_editor.ex:965
+#: lib/bds/desktop/shell_live/post_editor.ex:1006
#, elixir-autogen, elixir-format
msgid "Idle"
msgstr ""
@@ -1178,12 +1178,12 @@ msgstr ""
msgid "Insert"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:390
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:403
#, elixir-autogen, elixir-format
msgid "Insert Link"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:399
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:412
#, elixir-autogen, elixir-format
msgid "Insert Media"
msgstr ""
@@ -1201,13 +1201,13 @@ msgstr ""
#: lib/bds/desktop/shell_live/import_editor.ex:878
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:171
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:207
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:220
#, elixir-autogen, elixir-format
msgid "Language"
msgstr ""
#: lib/bds/desktop/shell_live/media_editor.ex:210
-#: lib/bds/desktop/shell_live/post_editor.ex:749
+#: lib/bds/desktop/shell_live/post_editor.ex:790
#, elixir-autogen, elixir-format
msgid "Language detection failed."
msgstr ""
@@ -1223,7 +1223,7 @@ msgstr ""
msgid "Link to Post"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:329
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:342
#, elixir-autogen, elixir-format
msgid "Linked Media"
msgstr ""
@@ -1234,7 +1234,7 @@ msgid "Linked Posts"
msgstr ""
#: lib/bds/desktop/shell_live/panel_renderer.ex:142
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:312
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:325
#, elixir-autogen, elixir-format
msgid "Links To"
msgstr ""
@@ -1291,7 +1291,7 @@ msgstr ""
msgid "Mapped"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:968
+#: lib/bds/desktop/shell_live/post_editor.ex:1009
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:123
#, elixir-autogen, elixir-format
msgid "Markdown"
@@ -1454,8 +1454,8 @@ msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:473
#: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:72
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:308
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:320
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:321
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:333
#: lib/bds/desktop/shell_live/sidebar_components.ex:321
#: lib/bds/desktop/shell_live/sidebar_components.ex:381
#: lib/bds/desktop/shell_live/sidebar_components.ex:455
@@ -1466,7 +1466,7 @@ msgstr ""
msgid "No items"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:342
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:355
#, elixir-autogen, elixir-format
msgid "No linked media"
msgstr ""
@@ -1703,7 +1703,7 @@ msgstr ""
msgid "OpenAI-compatible endpoints, model routing, airplane mode, and system prompt"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:337
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:350
#, elixir-autogen, elixir-format
msgid "Order"
msgstr ""
@@ -1789,16 +1789,16 @@ msgid "Persist the detected language for this media item"
msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:747
-#: lib/bds/desktop/shell_live/post_editor.ex:488
-#: lib/bds/desktop/shell_live/post_editor.ex:492
-#: lib/bds/desktop/shell_live/post_editor.ex:531
-#: lib/bds/desktop/shell_live/post_editor.ex:535
-#: lib/bds/desktop/shell_live/post_editor.ex:573
-#: lib/bds/desktop/shell_live/post_editor.ex:588
-#: lib/bds/desktop/shell_live/post_editor.ex:617
-#: lib/bds/desktop/shell_live/post_editor.ex:620
-#: lib/bds/desktop/shell_live/post_editor.ex:700
-#: lib/bds/desktop/shell_live/post_editor.ex:703
+#: lib/bds/desktop/shell_live/post_editor.ex:529
+#: lib/bds/desktop/shell_live/post_editor.ex:533
+#: lib/bds/desktop/shell_live/post_editor.ex:572
+#: lib/bds/desktop/shell_live/post_editor.ex:576
+#: lib/bds/desktop/shell_live/post_editor.ex:614
+#: lib/bds/desktop/shell_live/post_editor.ex:629
+#: lib/bds/desktop/shell_live/post_editor.ex:658
+#: lib/bds/desktop/shell_live/post_editor.ex:661
+#: lib/bds/desktop/shell_live/post_editor.ex:741
+#: lib/bds/desktop/shell_live/post_editor.ex:744
#: lib/bds/desktop/shell_live/sidebar_components.ex:651
#: lib/bds/desktop/shell_live/sidebar_delete.ex:174
#: lib/bds/ui/registry.ex:99
@@ -1808,7 +1808,7 @@ msgstr ""
#: lib/bds/desktop/shell_data.ex:247
#: lib/bds/desktop/shell_live/panel_renderer.ex:118
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:297
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:310
#, elixir-autogen, elixir-format
msgid "Post Links"
msgstr ""
@@ -1828,12 +1828,12 @@ msgstr ""
msgid "Post is marked as do-not-translate but has translations"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:531
+#: lib/bds/desktop/shell_live/post_editor.ex:572
#, elixir-autogen, elixir-format
msgid "Post published"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:488
+#: lib/bds/desktop/shell_live/post_editor.ex:529
#, elixir-autogen, elixir-format
msgid "Post saved"
msgstr ""
@@ -1857,7 +1857,7 @@ msgstr ""
msgid "Preferences"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:969
+#: lib/bds/desktop/shell_live/post_editor.ex:1010
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:124
#, elixir-autogen, elixir-format
msgid "Preview"
@@ -1873,7 +1873,7 @@ msgstr ""
msgid "Preview Post"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:430
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:443
#, elixir-autogen, elixir-format
msgid "Preview unavailable"
msgstr ""
@@ -1926,8 +1926,8 @@ msgid "Publish Selected"
msgstr ""
#: lib/bds/desktop/shell_data.ex:181
-#: lib/bds/desktop/shell_live/post_editor.ex:963
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:459
+#: lib/bds/desktop/shell_live/post_editor.ex:1004
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:472
#: lib/bds/ui/sidebar.ex:324
#, elixir-autogen, elixir-format
msgid "Published"
@@ -2062,7 +2062,7 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:250
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:263
#, elixir-autogen, elixir-format
msgid "Remove category"
msgstr ""
@@ -2124,7 +2124,7 @@ msgstr ""
msgid "Result"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:964
+#: lib/bds/desktop/shell_live/post_editor.ex:1005
#, elixir-autogen, elixir-format
msgid "Reverted"
msgstr ""
@@ -2176,7 +2176,7 @@ msgid "Save Translation"
msgstr ""
#: lib/bds/desktop/shell_live/media_editor.ex:710
-#: lib/bds/desktop/shell_live/post_editor.ex:962
+#: lib/bds/desktop/shell_live/post_editor.ex:1003
#, elixir-autogen, elixir-format
msgid "Saved"
msgstr ""
@@ -2376,7 +2376,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/import_editor.ex:1130
#: lib/bds/desktop/shell_live/import_editor.ex:1187
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:238
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:251
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:24
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:23
#, elixir-autogen, elixir-format
@@ -2498,7 +2498,7 @@ msgid "Technology"
msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:752
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:286
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:299
#: lib/bds/desktop/shell_live/sidebar_components.ex:660
#: lib/bds/desktop/shell_live/sidebar_delete.ex:179
#: lib/bds/ui/registry.ex:134
@@ -2650,9 +2650,9 @@ msgstr ""
#: lib/bds/desktop/shell_live/media_editor.ex:566
#: lib/bds/desktop/shell_live/media_editor.ex:571
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76
-#: lib/bds/desktop/shell_live/post_editor.ex:762
-#: lib/bds/desktop/shell_live/post_editor.ex:791
-#: lib/bds/desktop/shell_live/post_editor.ex:796
+#: lib/bds/desktop/shell_live/post_editor.ex:803
+#: lib/bds/desktop/shell_live/post_editor.ex:832
+#: lib/bds/desktop/shell_live/post_editor.ex:837
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60
#, elixir-autogen, elixir-format
msgid "Translate"
@@ -2729,7 +2729,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/media_editor.ex:709
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10
-#: lib/bds/desktop/shell_live/post_editor.ex:961
+#: lib/bds/desktop/shell_live/post_editor.ex:1002
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7
#, elixir-autogen, elixir-format
msgid "Unsaved"
@@ -2749,7 +2749,7 @@ msgstr ""
msgid "Untitled Import"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:457
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:470
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:48
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:46
#, elixir-autogen, elixir-format
@@ -3210,7 +3210,7 @@ msgstr "Image Import Concurrency"
#: lib/bds/desktop/shell_live.ex:647
#: lib/bds/desktop/shell_live.ex:658
#: lib/bds/desktop/shell_live.ex:669
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:407
+#: 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"
@@ -3230,12 +3230,12 @@ msgstr ""
msgid "Move this post to the archive"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:617
+#: lib/bds/desktop/shell_live/post_editor.ex:658
#, elixir-autogen, elixir-format, fuzzy
msgid "Post archived"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:700
+#: lib/bds/desktop/shell_live/post_editor.ex:741
#, elixir-autogen, elixir-format, fuzzy
msgid "Post unarchived"
msgstr ""
@@ -3414,18 +3414,18 @@ msgstr "Blogmark"
msgid "Open a project before importing a blogmark."
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:643
+#: lib/bds/desktop/shell_live/post_editor.ex:684
#, elixir-autogen, elixir-format
msgid "Added %{name}"
msgstr "Added %{name}"
-#: lib/bds/desktop/shell_live/post_editor.ex:650
+#: lib/bds/desktop/shell_live/post_editor.ex:691
#, elixir-autogen, elixir-format
msgid "Failed to import %{path}: %{reason}"
msgstr "Failed to import %{path}: %{reason}"
-#: lib/bds/desktop/shell_live/post_editor.ex:642
-#: lib/bds/desktop/shell_live/post_editor.ex:649
+#: lib/bds/desktop/shell_live/post_editor.ex:683
+#: lib/bds/desktop/shell_live/post_editor.ex:690
#, elixir-autogen, elixir-format
msgid "Insert Image"
msgstr "Insert Image"
@@ -3454,3 +3454,8 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "The project this blogmark targets does not exist here."
msgstr ""
+
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:183
+#, elixir-autogen, elixir-format
+msgid "Suggested tags"
+msgstr ""
diff --git a/priv/gettext/es/LC_MESSAGES/ui.po b/priv/gettext/es/LC_MESSAGES/ui.po
index 0d1f3c5..1ce16b0 100644
--- a/priv/gettext/es/LC_MESSAGES/ui.po
+++ b/priv/gettext/es/LC_MESSAGES/ui.po
@@ -79,7 +79,7 @@ msgstr "Configuración de IA"
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:42
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
-#: lib/bds/desktop/shell_live/post_editor.ex:847
+#: lib/bds/desktop/shell_live/post_editor.ex:888
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#, elixir-autogen, elixir-format
msgid "AI Suggestions"
@@ -142,7 +142,7 @@ msgstr "Agregar archivo de categoría"
msgid "Add Submenu"
msgstr "Agregar submenú"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:259
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:272
#, elixir-autogen, elixir-format
msgid "Add category"
msgstr "Añadir categoría"
@@ -246,7 +246,7 @@ msgid "Assistant"
msgstr "Asistente"
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:166
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:202
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:215
#, elixir-autogen, elixir-format
msgid "Author"
msgstr "Autor"
@@ -263,8 +263,8 @@ msgstr "Automático"
#: lib/bds/desktop/shell_live/media_editor.ex:353
#: lib/bds/desktop/shell_live/media_editor.ex:546
#: lib/bds/desktop/shell_live/overlay_manager.ex:73
-#: lib/bds/desktop/shell_live/post_editor.ex:714
-#: lib/bds/desktop/shell_live/post_editor.ex:763
+#: lib/bds/desktop/shell_live/post_editor.ex:755
+#: lib/bds/desktop/shell_live/post_editor.ex:804
#, elixir-autogen, elixir-format
msgid "Automatic AI actions stay gated by airplane mode."
msgstr "Las acciones automáticas de IA siguen bloqueadas por el modo avión."
@@ -283,7 +283,7 @@ msgid "Available languages"
msgstr "Idiomas disponibles"
#: lib/bds/desktop/shell_live/panel_renderer.ex:124
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:300
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:313
#, elixir-autogen, elixir-format
msgid "Backlinks"
msgstr "Referencias entrantes"
@@ -369,7 +369,7 @@ msgstr "Leyenda"
#: lib/bds/desktop/shell_live/index.html.heex:336
#: lib/bds/desktop/shell_live/misc_editor.ex:755
#: lib/bds/desktop/shell_live/misc_editor.ex:756
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:243
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:256
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:59
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:75
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:107
@@ -501,7 +501,7 @@ msgstr "Configura una clave API en Ajustes para habilitar el chat de IA."
msgid "Confirm"
msgstr "Confirmar"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:362
+#: 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/ui/sidebar.ex:764
@@ -550,17 +550,17 @@ msgstr "Crear"
msgid "Create / Edit"
msgstr "Crear / editar"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:275
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:288
#, elixir-autogen, elixir-format
msgid "Create category"
msgstr "Crear categoría"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:193
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:206
#, elixir-autogen, elixir-format
msgid "Create tag"
msgstr "Crear etiqueta"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:456
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:469
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:48
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:46
#, elixir-autogen, elixir-format
@@ -611,7 +611,7 @@ msgstr "Ruta de datos"
msgid "Date Distribution"
msgstr "Distribución por fecha"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:288
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:301
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:177
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:185
#, elixir-autogen, elixir-format
@@ -698,7 +698,7 @@ msgstr "Descripción"
msgid "Desktop Runtime"
msgstr "Entorno de escritorio"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:223
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:236
#, elixir-autogen, elixir-format
msgid "Detect"
msgstr "Detectar"
@@ -708,9 +708,9 @@ msgstr "Detectar"
#: lib/bds/desktop/shell_live/media_editor.ex:203
#: lib/bds/desktop/shell_live/media_editor.ex:209
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59
-#: lib/bds/desktop/shell_live/post_editor.ex:713
-#: lib/bds/desktop/shell_live/post_editor.ex:742
-#: lib/bds/desktop/shell_live/post_editor.ex:748
+#: lib/bds/desktop/shell_live/post_editor.ex:754
+#: lib/bds/desktop/shell_live/post_editor.ex:783
+#: lib/bds/desktop/shell_live/post_editor.ex:789
#, elixir-autogen, elixir-format
msgid "Detect Language"
msgstr "Detectar idioma"
@@ -776,7 +776,7 @@ msgstr "Cerrar superficie"
msgid "Display Text"
msgstr "Texto mostrado"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:232
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:245
#, elixir-autogen, elixir-format
msgid "Do Not Translate"
msgstr "No traducir"
@@ -898,8 +898,8 @@ msgstr "Error"
msgid "Exact Match"
msgstr "Coincidencia exacta"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:349
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:354
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:362
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:367
#, elixir-autogen, elixir-format
msgid "Excerpt"
msgstr "Extracto"
@@ -983,7 +983,7 @@ msgid "Force Reload"
msgstr "Recarga forzada"
#: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:194
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:419
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:432
#, elixir-autogen, elixir-format
msgid "Gallery"
msgstr "Galeria"
@@ -1036,7 +1036,7 @@ msgstr "Host"
#: lib/bds/desktop/shell_data.ex:116
#: lib/bds/desktop/shell_live/index.html.heex:666
#: lib/bds/desktop/shell_live/media_editor.ex:711
-#: lib/bds/desktop/shell_live/post_editor.ex:965
+#: lib/bds/desktop/shell_live/post_editor.ex:1006
#, elixir-autogen, elixir-format
msgid "Idle"
msgstr "Inactivo"
@@ -1178,12 +1178,12 @@ msgstr "En línea"
msgid "Insert"
msgstr "Insertar"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:390
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:403
#, elixir-autogen, elixir-format
msgid "Insert Link"
msgstr "Insertar enlace"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:399
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:412
#, elixir-autogen, elixir-format
msgid "Insert Media"
msgstr "Insertar medio"
@@ -1201,13 +1201,13 @@ msgstr "Tipo"
#: lib/bds/desktop/shell_live/import_editor.ex:878
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:171
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:207
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:220
#, elixir-autogen, elixir-format
msgid "Language"
msgstr "Idioma"
#: lib/bds/desktop/shell_live/media_editor.ex:210
-#: lib/bds/desktop/shell_live/post_editor.ex:749
+#: lib/bds/desktop/shell_live/post_editor.ex:790
#, elixir-autogen, elixir-format
msgid "Language detection failed."
msgstr "La detección de idioma falló."
@@ -1223,7 +1223,7 @@ msgstr "Claro"
msgid "Link to Post"
msgstr "Enlazar con publicación"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:329
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:342
#, elixir-autogen, elixir-format
msgid "Linked Media"
msgstr "Medios vinculados"
@@ -1234,7 +1234,7 @@ msgid "Linked Posts"
msgstr "Publicaciones enlazadas"
#: lib/bds/desktop/shell_live/panel_renderer.ex:142
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:312
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:325
#, elixir-autogen, elixir-format
msgid "Links To"
msgstr "Enlaza a"
@@ -1291,7 +1291,7 @@ msgstr "Mapear a..."
msgid "Mapped"
msgstr "Mapeado"
-#: lib/bds/desktop/shell_live/post_editor.ex:968
+#: lib/bds/desktop/shell_live/post_editor.ex:1009
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:123
#, elixir-autogen, elixir-format
msgid "Markdown"
@@ -1454,8 +1454,8 @@ msgstr "Aún no hay historial de Git"
#: lib/bds/desktop/shell_live/misc_editor.ex:473
#: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:72
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:308
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:320
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:321
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:333
#: lib/bds/desktop/shell_live/sidebar_components.ex:321
#: lib/bds/desktop/shell_live/sidebar_components.ex:381
#: lib/bds/desktop/shell_live/sidebar_components.ex:455
@@ -1466,7 +1466,7 @@ msgstr "Aún no hay historial de Git"
msgid "No items"
msgstr "No hay elementos"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:342
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:355
#, elixir-autogen, elixir-format
msgid "No linked media"
msgstr "Sin medios vinculados"
@@ -1703,7 +1703,7 @@ msgstr "Abrir en el navegador"
msgid "OpenAI-compatible endpoints, model routing, airplane mode, and system prompt"
msgstr "Endpoints compatibles con OpenAI, enrutamiento de modelos, modo avión y prompt del sistema"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:337
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:350
#, elixir-autogen, elixir-format
msgid "Order"
msgstr "Orden"
@@ -1789,16 +1789,16 @@ msgid "Persist the detected language for this media item"
msgstr "Guardar el idioma detectado para este medio"
#: lib/bds/desktop/shell_live/misc_editor.ex:747
-#: lib/bds/desktop/shell_live/post_editor.ex:488
-#: lib/bds/desktop/shell_live/post_editor.ex:492
-#: lib/bds/desktop/shell_live/post_editor.ex:531
-#: lib/bds/desktop/shell_live/post_editor.ex:535
-#: lib/bds/desktop/shell_live/post_editor.ex:573
-#: lib/bds/desktop/shell_live/post_editor.ex:588
-#: lib/bds/desktop/shell_live/post_editor.ex:617
-#: lib/bds/desktop/shell_live/post_editor.ex:620
-#: lib/bds/desktop/shell_live/post_editor.ex:700
-#: lib/bds/desktop/shell_live/post_editor.ex:703
+#: lib/bds/desktop/shell_live/post_editor.ex:529
+#: lib/bds/desktop/shell_live/post_editor.ex:533
+#: lib/bds/desktop/shell_live/post_editor.ex:572
+#: lib/bds/desktop/shell_live/post_editor.ex:576
+#: lib/bds/desktop/shell_live/post_editor.ex:614
+#: lib/bds/desktop/shell_live/post_editor.ex:629
+#: lib/bds/desktop/shell_live/post_editor.ex:658
+#: lib/bds/desktop/shell_live/post_editor.ex:661
+#: lib/bds/desktop/shell_live/post_editor.ex:741
+#: lib/bds/desktop/shell_live/post_editor.ex:744
#: lib/bds/desktop/shell_live/sidebar_components.ex:651
#: lib/bds/desktop/shell_live/sidebar_delete.ex:174
#: lib/bds/ui/registry.ex:99
@@ -1808,7 +1808,7 @@ msgstr "Publicación"
#: lib/bds/desktop/shell_data.ex:247
#: lib/bds/desktop/shell_live/panel_renderer.ex:118
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:297
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:310
#, elixir-autogen, elixir-format
msgid "Post Links"
msgstr "Enlaces de artículos"
@@ -1828,12 +1828,12 @@ msgstr "Plantilla de publicación"
msgid "Post is marked as do-not-translate but has translations"
msgstr "La entrada está marcada como no-traducir pero tiene traducciones"
-#: lib/bds/desktop/shell_live/post_editor.ex:531
+#: lib/bds/desktop/shell_live/post_editor.ex:572
#, elixir-autogen, elixir-format
msgid "Post published"
msgstr "Artículo publicado"
-#: lib/bds/desktop/shell_live/post_editor.ex:488
+#: lib/bds/desktop/shell_live/post_editor.ex:529
#, elixir-autogen, elixir-format
msgid "Post saved"
msgstr "Artículo guardado"
@@ -1857,7 +1857,7 @@ msgstr "Publicaciones (%{count})"
msgid "Preferences"
msgstr "Preferencias"
-#: lib/bds/desktop/shell_live/post_editor.ex:969
+#: lib/bds/desktop/shell_live/post_editor.ex:1010
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:124
#, elixir-autogen, elixir-format
msgid "Preview"
@@ -1873,7 +1873,7 @@ msgstr "Modo de vista previa"
msgid "Preview Post"
msgstr "Vista previa de entrada"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:430
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:443
#, elixir-autogen, elixir-format
msgid "Preview unavailable"
msgstr "Vista previa no disponible"
@@ -1926,8 +1926,8 @@ msgid "Publish Selected"
msgstr "Publicar seleccionados"
#: lib/bds/desktop/shell_data.ex:181
-#: lib/bds/desktop/shell_live/post_editor.ex:963
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:459
+#: lib/bds/desktop/shell_live/post_editor.ex:1004
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:472
#: lib/bds/ui/sidebar.ex:324
#, elixir-autogen, elixir-format
msgid "Published"
@@ -2062,7 +2062,7 @@ msgstr "Ruta remota"
msgid "Remove"
msgstr "Quitar"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:250
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:263
#, elixir-autogen, elixir-format
msgid "Remove category"
msgstr "Eliminar categoría"
@@ -2124,7 +2124,7 @@ msgstr "Resolución"
msgid "Result"
msgstr "Resultado"
-#: lib/bds/desktop/shell_live/post_editor.ex:964
+#: lib/bds/desktop/shell_live/post_editor.ex:1005
#, elixir-autogen, elixir-format
msgid "Reverted"
msgstr "Revertido"
@@ -2176,7 +2176,7 @@ msgid "Save Translation"
msgstr "Guardar traducción"
#: lib/bds/desktop/shell_live/media_editor.ex:710
-#: lib/bds/desktop/shell_live/post_editor.ex:962
+#: lib/bds/desktop/shell_live/post_editor.ex:1003
#, elixir-autogen, elixir-format
msgid "Saved"
msgstr "Guardado"
@@ -2376,7 +2376,7 @@ msgstr "Tamaño"
#: lib/bds/desktop/shell_live/import_editor.ex:1130
#: lib/bds/desktop/shell_live/import_editor.ex:1187
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:238
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:251
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:24
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:23
#, elixir-autogen, elixir-format
@@ -2498,7 +2498,7 @@ msgid "Technology"
msgstr "Tecnología"
#: lib/bds/desktop/shell_live/misc_editor.ex:752
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:286
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:299
#: lib/bds/desktop/shell_live/sidebar_components.ex:660
#: lib/bds/desktop/shell_live/sidebar_delete.ex:179
#: lib/bds/ui/registry.ex:134
@@ -2650,9 +2650,9 @@ msgstr "Alternar barra lateral"
#: lib/bds/desktop/shell_live/media_editor.ex:566
#: lib/bds/desktop/shell_live/media_editor.ex:571
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76
-#: lib/bds/desktop/shell_live/post_editor.ex:762
-#: lib/bds/desktop/shell_live/post_editor.ex:791
-#: lib/bds/desktop/shell_live/post_editor.ex:796
+#: lib/bds/desktop/shell_live/post_editor.ex:803
+#: lib/bds/desktop/shell_live/post_editor.ex:832
+#: lib/bds/desktop/shell_live/post_editor.ex:837
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60
#, elixir-autogen, elixir-format
msgid "Translate"
@@ -2729,7 +2729,7 @@ msgstr "Desvincular del artículo"
#: lib/bds/desktop/shell_live/media_editor.ex:709
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10
-#: lib/bds/desktop/shell_live/post_editor.ex:961
+#: lib/bds/desktop/shell_live/post_editor.ex:1002
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7
#, elixir-autogen, elixir-format
msgid "Unsaved"
@@ -2749,7 +2749,7 @@ msgstr "Sin título"
msgid "Untitled Import"
msgstr "Importación sin título"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:457
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:470
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:48
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:46
#, elixir-autogen, elixir-format
@@ -3210,7 +3210,7 @@ msgstr "Importación simultánea de imágenes"
#: lib/bds/desktop/shell_live.ex:647
#: lib/bds/desktop/shell_live.ex:658
#: lib/bds/desktop/shell_live.ex:669
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:407
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:420
#, elixir-autogen, elixir-format
msgid "Add Gallery Images"
msgstr "Añadir imágenes a la galería"
@@ -3230,12 +3230,12 @@ msgstr "Archivar"
msgid "Move this post to the archive"
msgstr "Mover este artículo al archivo"
-#: lib/bds/desktop/shell_live/post_editor.ex:617
+#: lib/bds/desktop/shell_live/post_editor.ex:658
#, elixir-autogen, elixir-format
msgid "Post archived"
msgstr "Artículo archivado"
-#: lib/bds/desktop/shell_live/post_editor.ex:700
+#: lib/bds/desktop/shell_live/post_editor.ex:741
#, elixir-autogen, elixir-format
msgid "Post unarchived"
msgstr "Artículo restaurado"
@@ -3414,18 +3414,18 @@ msgstr "Blogmark"
msgid "Open a project before importing a blogmark."
msgstr "Abre un proyecto antes de importar un blogmark."
-#: lib/bds/desktop/shell_live/post_editor.ex:643
+#: lib/bds/desktop/shell_live/post_editor.ex:684
#, elixir-autogen, elixir-format
msgid "Added %{name}"
msgstr "%{name} añadido"
-#: lib/bds/desktop/shell_live/post_editor.ex:650
+#: lib/bds/desktop/shell_live/post_editor.ex:691
#, elixir-autogen, elixir-format
msgid "Failed to import %{path}: %{reason}"
msgstr "No se pudo importar %{path}: %{reason}"
-#: lib/bds/desktop/shell_live/post_editor.ex:642
-#: lib/bds/desktop/shell_live/post_editor.ex:649
+#: lib/bds/desktop/shell_live/post_editor.ex:683
+#: lib/bds/desktop/shell_live/post_editor.ex:690
#, elixir-autogen, elixir-format
msgid "Insert Image"
msgstr "Insertar imagen"
@@ -3454,3 +3454,8 @@ msgstr "Error al copiar el bookmarklet al portapapeles"
#, elixir-autogen, elixir-format
msgid "The project this blogmark targets does not exist here."
msgstr "El proyecto al que apunta este blogmark no existe aquí."
+
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:183
+#, elixir-autogen, elixir-format
+msgid "Suggested tags"
+msgstr "Etiquetas sugeridas"
diff --git a/priv/gettext/fr/LC_MESSAGES/ui.po b/priv/gettext/fr/LC_MESSAGES/ui.po
index b83275d..054dc4a 100644
--- a/priv/gettext/fr/LC_MESSAGES/ui.po
+++ b/priv/gettext/fr/LC_MESSAGES/ui.po
@@ -79,7 +79,7 @@ msgstr "Paramètres IA"
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:42
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
-#: lib/bds/desktop/shell_live/post_editor.ex:847
+#: lib/bds/desktop/shell_live/post_editor.ex:888
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#, elixir-autogen, elixir-format
msgid "AI Suggestions"
@@ -142,7 +142,7 @@ msgstr "Ajouter une archive de catégorie"
msgid "Add Submenu"
msgstr "Ajouter un sous-menu"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:259
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:272
#, elixir-autogen, elixir-format
msgid "Add category"
msgstr "Ajouter une catégorie"
@@ -246,7 +246,7 @@ msgid "Assistant"
msgstr "Assistant"
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:166
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:202
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:215
#, elixir-autogen, elixir-format
msgid "Author"
msgstr "Auteur"
@@ -263,8 +263,8 @@ msgstr "Automatique"
#: lib/bds/desktop/shell_live/media_editor.ex:353
#: lib/bds/desktop/shell_live/media_editor.ex:546
#: lib/bds/desktop/shell_live/overlay_manager.ex:73
-#: lib/bds/desktop/shell_live/post_editor.ex:714
-#: lib/bds/desktop/shell_live/post_editor.ex:763
+#: lib/bds/desktop/shell_live/post_editor.ex:755
+#: lib/bds/desktop/shell_live/post_editor.ex:804
#, elixir-autogen, elixir-format
msgid "Automatic AI actions stay gated by airplane mode."
msgstr "Les actions IA automatiques restent bloquées par le mode avion."
@@ -283,7 +283,7 @@ msgid "Available languages"
msgstr "Langues disponibles"
#: lib/bds/desktop/shell_live/panel_renderer.ex:124
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:300
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:313
#, elixir-autogen, elixir-format
msgid "Backlinks"
msgstr "Rétroliens"
@@ -369,7 +369,7 @@ msgstr "Legende"
#: lib/bds/desktop/shell_live/index.html.heex:336
#: lib/bds/desktop/shell_live/misc_editor.ex:755
#: lib/bds/desktop/shell_live/misc_editor.ex:756
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:243
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:256
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:59
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:75
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:107
@@ -501,7 +501,7 @@ msgstr "Configurez une clé API dans les Réglages pour activer le chat IA."
msgid "Confirm"
msgstr "Confirmer"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:362
+#: 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/ui/sidebar.ex:764
@@ -550,17 +550,17 @@ msgstr "Créer"
msgid "Create / Edit"
msgstr "Créer / modifier"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:275
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:288
#, elixir-autogen, elixir-format
msgid "Create category"
msgstr "Créer une catégorie"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:193
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:206
#, elixir-autogen, elixir-format
msgid "Create tag"
msgstr "Créer un mot-clé"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:456
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:469
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:48
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:46
#, elixir-autogen, elixir-format
@@ -611,7 +611,7 @@ msgstr "Chemin des données"
msgid "Date Distribution"
msgstr "Répartition par date"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:288
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:301
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:177
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:185
#, elixir-autogen, elixir-format
@@ -698,7 +698,7 @@ msgstr "Description"
msgid "Desktop Runtime"
msgstr "Exécution bureau"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:223
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:236
#, elixir-autogen, elixir-format
msgid "Detect"
msgstr "Détecter"
@@ -708,9 +708,9 @@ msgstr "Détecter"
#: lib/bds/desktop/shell_live/media_editor.ex:203
#: lib/bds/desktop/shell_live/media_editor.ex:209
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59
-#: lib/bds/desktop/shell_live/post_editor.ex:713
-#: lib/bds/desktop/shell_live/post_editor.ex:742
-#: lib/bds/desktop/shell_live/post_editor.ex:748
+#: lib/bds/desktop/shell_live/post_editor.ex:754
+#: lib/bds/desktop/shell_live/post_editor.ex:783
+#: lib/bds/desktop/shell_live/post_editor.ex:789
#, elixir-autogen, elixir-format
msgid "Detect Language"
msgstr "Détecter la langue"
@@ -776,7 +776,7 @@ msgstr "Fermer la surface"
msgid "Display Text"
msgstr "Texte affiche"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:232
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:245
#, elixir-autogen, elixir-format
msgid "Do Not Translate"
msgstr "Ne pas traduire"
@@ -898,8 +898,8 @@ msgstr "Erreur"
msgid "Exact Match"
msgstr "Correspondance exacte"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:349
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:354
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:362
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:367
#, elixir-autogen, elixir-format
msgid "Excerpt"
msgstr "Extrait"
@@ -983,7 +983,7 @@ msgid "Force Reload"
msgstr "Recharger de force"
#: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:194
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:419
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:432
#, elixir-autogen, elixir-format
msgid "Gallery"
msgstr "Galerie"
@@ -1036,7 +1036,7 @@ msgstr "Hôte"
#: lib/bds/desktop/shell_data.ex:116
#: lib/bds/desktop/shell_live/index.html.heex:666
#: lib/bds/desktop/shell_live/media_editor.ex:711
-#: lib/bds/desktop/shell_live/post_editor.ex:965
+#: lib/bds/desktop/shell_live/post_editor.ex:1006
#, elixir-autogen, elixir-format
msgid "Idle"
msgstr "Inactif"
@@ -1178,12 +1178,12 @@ msgstr "En ligne"
msgid "Insert"
msgstr "Inserer"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:390
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:403
#, elixir-autogen, elixir-format
msgid "Insert Link"
msgstr "Inserer un lien"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:399
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:412
#, elixir-autogen, elixir-format
msgid "Insert Media"
msgstr "Inserer un media"
@@ -1201,13 +1201,13 @@ msgstr "Type"
#: lib/bds/desktop/shell_live/import_editor.ex:878
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:171
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:207
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:220
#, elixir-autogen, elixir-format
msgid "Language"
msgstr "Langue"
#: lib/bds/desktop/shell_live/media_editor.ex:210
-#: lib/bds/desktop/shell_live/post_editor.ex:749
+#: lib/bds/desktop/shell_live/post_editor.ex:790
#, elixir-autogen, elixir-format
msgid "Language detection failed."
msgstr "La détection de la langue a échoué."
@@ -1223,7 +1223,7 @@ msgstr "Clair"
msgid "Link to Post"
msgstr "Lier à un article"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:329
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:342
#, elixir-autogen, elixir-format
msgid "Linked Media"
msgstr "Médias liés"
@@ -1234,7 +1234,7 @@ msgid "Linked Posts"
msgstr "Articles liés"
#: lib/bds/desktop/shell_live/panel_renderer.ex:142
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:312
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:325
#, elixir-autogen, elixir-format
msgid "Links To"
msgstr "Liens vers"
@@ -1291,7 +1291,7 @@ msgstr "Mapper vers..."
msgid "Mapped"
msgstr "Mappé"
-#: lib/bds/desktop/shell_live/post_editor.ex:968
+#: lib/bds/desktop/shell_live/post_editor.ex:1009
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:123
#, elixir-autogen, elixir-format
msgid "Markdown"
@@ -1454,8 +1454,8 @@ msgstr "Pas encore d'historique Git"
#: lib/bds/desktop/shell_live/misc_editor.ex:473
#: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:72
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:308
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:320
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:321
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:333
#: lib/bds/desktop/shell_live/sidebar_components.ex:321
#: lib/bds/desktop/shell_live/sidebar_components.ex:381
#: lib/bds/desktop/shell_live/sidebar_components.ex:455
@@ -1466,7 +1466,7 @@ msgstr "Pas encore d'historique Git"
msgid "No items"
msgstr "Aucun élément"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:342
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:355
#, elixir-autogen, elixir-format
msgid "No linked media"
msgstr "Aucun média lié"
@@ -1703,7 +1703,7 @@ msgstr "Ouvrir dans le navigateur"
msgid "OpenAI-compatible endpoints, model routing, airplane mode, and system prompt"
msgstr "Points d'accès compatibles OpenAI, routage de modèles, mode avion et prompt système"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:337
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:350
#, elixir-autogen, elixir-format
msgid "Order"
msgstr "Ordre"
@@ -1789,16 +1789,16 @@ msgid "Persist the detected language for this media item"
msgstr "Enregistrer la langue détectée pour ce média"
#: lib/bds/desktop/shell_live/misc_editor.ex:747
-#: lib/bds/desktop/shell_live/post_editor.ex:488
-#: lib/bds/desktop/shell_live/post_editor.ex:492
-#: lib/bds/desktop/shell_live/post_editor.ex:531
-#: lib/bds/desktop/shell_live/post_editor.ex:535
-#: lib/bds/desktop/shell_live/post_editor.ex:573
-#: lib/bds/desktop/shell_live/post_editor.ex:588
-#: lib/bds/desktop/shell_live/post_editor.ex:617
-#: lib/bds/desktop/shell_live/post_editor.ex:620
-#: lib/bds/desktop/shell_live/post_editor.ex:700
-#: lib/bds/desktop/shell_live/post_editor.ex:703
+#: lib/bds/desktop/shell_live/post_editor.ex:529
+#: lib/bds/desktop/shell_live/post_editor.ex:533
+#: lib/bds/desktop/shell_live/post_editor.ex:572
+#: lib/bds/desktop/shell_live/post_editor.ex:576
+#: lib/bds/desktop/shell_live/post_editor.ex:614
+#: lib/bds/desktop/shell_live/post_editor.ex:629
+#: lib/bds/desktop/shell_live/post_editor.ex:658
+#: lib/bds/desktop/shell_live/post_editor.ex:661
+#: lib/bds/desktop/shell_live/post_editor.ex:741
+#: lib/bds/desktop/shell_live/post_editor.ex:744
#: lib/bds/desktop/shell_live/sidebar_components.ex:651
#: lib/bds/desktop/shell_live/sidebar_delete.ex:174
#: lib/bds/ui/registry.ex:99
@@ -1808,7 +1808,7 @@ msgstr "Article"
#: lib/bds/desktop/shell_data.ex:247
#: lib/bds/desktop/shell_live/panel_renderer.ex:118
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:297
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:310
#, elixir-autogen, elixir-format
msgid "Post Links"
msgstr "Liens d'articles"
@@ -1828,12 +1828,12 @@ msgstr "Modèle d’article"
msgid "Post is marked as do-not-translate but has translations"
msgstr "L'article est marqué ne-pas-traduire mais a des traductions"
-#: lib/bds/desktop/shell_live/post_editor.ex:531
+#: lib/bds/desktop/shell_live/post_editor.ex:572
#, elixir-autogen, elixir-format
msgid "Post published"
msgstr "Article publié"
-#: lib/bds/desktop/shell_live/post_editor.ex:488
+#: lib/bds/desktop/shell_live/post_editor.ex:529
#, elixir-autogen, elixir-format
msgid "Post saved"
msgstr "Article enregistré"
@@ -1857,7 +1857,7 @@ msgstr "Articles (%{count})"
msgid "Preferences"
msgstr "Préférences"
-#: lib/bds/desktop/shell_live/post_editor.ex:969
+#: lib/bds/desktop/shell_live/post_editor.ex:1010
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:124
#, elixir-autogen, elixir-format
msgid "Preview"
@@ -1873,7 +1873,7 @@ msgstr "Mode aperçu"
msgid "Preview Post"
msgstr "Aperçu de l’article"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:430
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:443
#, elixir-autogen, elixir-format
msgid "Preview unavailable"
msgstr "Aperçu non disponible"
@@ -1926,8 +1926,8 @@ msgid "Publish Selected"
msgstr "Publier la sélection"
#: lib/bds/desktop/shell_data.ex:181
-#: lib/bds/desktop/shell_live/post_editor.ex:963
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:459
+#: lib/bds/desktop/shell_live/post_editor.ex:1004
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:472
#: lib/bds/ui/sidebar.ex:324
#, elixir-autogen, elixir-format
msgid "Published"
@@ -2062,7 +2062,7 @@ msgstr "Chemin distant"
msgid "Remove"
msgstr "Retirer"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:250
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:263
#, elixir-autogen, elixir-format
msgid "Remove category"
msgstr "Supprimer la catégorie"
@@ -2124,7 +2124,7 @@ msgstr "Résolution"
msgid "Result"
msgstr "Résultat"
-#: lib/bds/desktop/shell_live/post_editor.ex:964
+#: lib/bds/desktop/shell_live/post_editor.ex:1005
#, elixir-autogen, elixir-format
msgid "Reverted"
msgstr "Restauré"
@@ -2176,7 +2176,7 @@ msgid "Save Translation"
msgstr "Enregistrer la traduction"
#: lib/bds/desktop/shell_live/media_editor.ex:710
-#: lib/bds/desktop/shell_live/post_editor.ex:962
+#: lib/bds/desktop/shell_live/post_editor.ex:1003
#, elixir-autogen, elixir-format
msgid "Saved"
msgstr "Enregistré"
@@ -2376,7 +2376,7 @@ msgstr "Taille"
#: lib/bds/desktop/shell_live/import_editor.ex:1130
#: lib/bds/desktop/shell_live/import_editor.ex:1187
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:238
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:251
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:24
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:23
#, elixir-autogen, elixir-format
@@ -2498,7 +2498,7 @@ msgid "Technology"
msgstr "Technologie"
#: lib/bds/desktop/shell_live/misc_editor.ex:752
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:286
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:299
#: lib/bds/desktop/shell_live/sidebar_components.ex:660
#: lib/bds/desktop/shell_live/sidebar_delete.ex:179
#: lib/bds/ui/registry.ex:134
@@ -2650,9 +2650,9 @@ msgstr "Afficher ou masquer la barre latérale"
#: lib/bds/desktop/shell_live/media_editor.ex:566
#: lib/bds/desktop/shell_live/media_editor.ex:571
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76
-#: lib/bds/desktop/shell_live/post_editor.ex:762
-#: lib/bds/desktop/shell_live/post_editor.ex:791
-#: lib/bds/desktop/shell_live/post_editor.ex:796
+#: lib/bds/desktop/shell_live/post_editor.ex:803
+#: lib/bds/desktop/shell_live/post_editor.ex:832
+#: lib/bds/desktop/shell_live/post_editor.ex:837
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60
#, elixir-autogen, elixir-format
msgid "Translate"
@@ -2729,7 +2729,7 @@ msgstr "Dissocier de l'article"
#: lib/bds/desktop/shell_live/media_editor.ex:709
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10
-#: lib/bds/desktop/shell_live/post_editor.ex:961
+#: lib/bds/desktop/shell_live/post_editor.ex:1002
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7
#, elixir-autogen, elixir-format
msgid "Unsaved"
@@ -2749,7 +2749,7 @@ msgstr "Sans titre"
msgid "Untitled Import"
msgstr "Import sans titre"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:457
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:470
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:48
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:46
#, elixir-autogen, elixir-format
@@ -3210,7 +3210,7 @@ msgstr "Importation simultanée d'images"
#: lib/bds/desktop/shell_live.ex:647
#: lib/bds/desktop/shell_live.ex:658
#: lib/bds/desktop/shell_live.ex:669
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:407
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:420
#, elixir-autogen, elixir-format
msgid "Add Gallery Images"
msgstr "Ajouter des images à la galerie"
@@ -3230,12 +3230,12 @@ msgstr "Archiver"
msgid "Move this post to the archive"
msgstr "Déplacer cet article dans les archives"
-#: lib/bds/desktop/shell_live/post_editor.ex:617
+#: lib/bds/desktop/shell_live/post_editor.ex:658
#, elixir-autogen, elixir-format
msgid "Post archived"
msgstr "Article archivé"
-#: lib/bds/desktop/shell_live/post_editor.ex:700
+#: lib/bds/desktop/shell_live/post_editor.ex:741
#, elixir-autogen, elixir-format
msgid "Post unarchived"
msgstr "Article désarchivé"
@@ -3414,18 +3414,18 @@ msgstr "Blogmark"
msgid "Open a project before importing a blogmark."
msgstr "Ouvrez un projet avant d’importer un blogmark."
-#: lib/bds/desktop/shell_live/post_editor.ex:643
+#: lib/bds/desktop/shell_live/post_editor.ex:684
#, elixir-autogen, elixir-format
msgid "Added %{name}"
msgstr "%{name} ajouté"
-#: lib/bds/desktop/shell_live/post_editor.ex:650
+#: lib/bds/desktop/shell_live/post_editor.ex:691
#, elixir-autogen, elixir-format
msgid "Failed to import %{path}: %{reason}"
msgstr "Échec de l'import de %{path} : %{reason}"
-#: lib/bds/desktop/shell_live/post_editor.ex:642
-#: lib/bds/desktop/shell_live/post_editor.ex:649
+#: lib/bds/desktop/shell_live/post_editor.ex:683
+#: lib/bds/desktop/shell_live/post_editor.ex:690
#, elixir-autogen, elixir-format
msgid "Insert Image"
msgstr "Insérer une image"
@@ -3454,3 +3454,8 @@ msgstr "Échec de la copie du bookmarklet dans le presse-papiers"
#, elixir-autogen, elixir-format
msgid "The project this blogmark targets does not exist here."
msgstr "Le projet ciblé par ce blogmark n'existe pas ici."
+
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:183
+#, elixir-autogen, elixir-format
+msgid "Suggested tags"
+msgstr "Tags suggérés"
diff --git a/priv/gettext/it/LC_MESSAGES/ui.po b/priv/gettext/it/LC_MESSAGES/ui.po
index c25eb63..18ec9fb 100644
--- a/priv/gettext/it/LC_MESSAGES/ui.po
+++ b/priv/gettext/it/LC_MESSAGES/ui.po
@@ -79,7 +79,7 @@ msgstr "Impostazioni IA"
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:42
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
-#: lib/bds/desktop/shell_live/post_editor.ex:847
+#: lib/bds/desktop/shell_live/post_editor.ex:888
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#, elixir-autogen, elixir-format
msgid "AI Suggestions"
@@ -142,7 +142,7 @@ msgstr "Aggiungi archivio categoria"
msgid "Add Submenu"
msgstr "Aggiungi sottomenu"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:259
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:272
#, elixir-autogen, elixir-format
msgid "Add category"
msgstr "Aggiungi categoria"
@@ -246,7 +246,7 @@ msgid "Assistant"
msgstr "Assistente"
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:166
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:202
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:215
#, elixir-autogen, elixir-format
msgid "Author"
msgstr "Autore"
@@ -263,8 +263,8 @@ msgstr "Automatico"
#: lib/bds/desktop/shell_live/media_editor.ex:353
#: lib/bds/desktop/shell_live/media_editor.ex:546
#: lib/bds/desktop/shell_live/overlay_manager.ex:73
-#: lib/bds/desktop/shell_live/post_editor.ex:714
-#: lib/bds/desktop/shell_live/post_editor.ex:763
+#: lib/bds/desktop/shell_live/post_editor.ex:755
+#: lib/bds/desktop/shell_live/post_editor.ex:804
#, elixir-autogen, elixir-format
msgid "Automatic AI actions stay gated by airplane mode."
msgstr "Le azioni IA automatiche restano bloccate dalla modalità aereo."
@@ -283,7 +283,7 @@ msgid "Available languages"
msgstr "Lingue disponibili"
#: lib/bds/desktop/shell_live/panel_renderer.ex:124
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:300
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:313
#, elixir-autogen, elixir-format
msgid "Backlinks"
msgstr "Riferimenti in entrata"
@@ -369,7 +369,7 @@ msgstr "Didascalia"
#: lib/bds/desktop/shell_live/index.html.heex:336
#: lib/bds/desktop/shell_live/misc_editor.ex:755
#: lib/bds/desktop/shell_live/misc_editor.ex:756
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:243
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:256
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:59
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:75
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:107
@@ -501,7 +501,7 @@ msgstr "Configura una chiave API nelle Impostazioni per abilitare la chat IA."
msgid "Confirm"
msgstr "Conferma"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:362
+#: 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/ui/sidebar.ex:764
@@ -550,17 +550,17 @@ msgstr "Crea"
msgid "Create / Edit"
msgstr "Crea / modifica"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:275
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:288
#, elixir-autogen, elixir-format
msgid "Create category"
msgstr "Crea categoria"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:193
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:206
#, elixir-autogen, elixir-format
msgid "Create tag"
msgstr "Crea tag"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:456
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:469
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:48
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:46
#, elixir-autogen, elixir-format
@@ -611,7 +611,7 @@ msgstr "Percorso dati"
msgid "Date Distribution"
msgstr "Distribuzione per data"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:288
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:301
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:177
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:185
#, elixir-autogen, elixir-format
@@ -698,7 +698,7 @@ msgstr "Descrizione"
msgid "Desktop Runtime"
msgstr "Runtime desktop"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:223
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:236
#, elixir-autogen, elixir-format
msgid "Detect"
msgstr "Rileva"
@@ -708,9 +708,9 @@ msgstr "Rileva"
#: lib/bds/desktop/shell_live/media_editor.ex:203
#: lib/bds/desktop/shell_live/media_editor.ex:209
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59
-#: lib/bds/desktop/shell_live/post_editor.ex:713
-#: lib/bds/desktop/shell_live/post_editor.ex:742
-#: lib/bds/desktop/shell_live/post_editor.ex:748
+#: lib/bds/desktop/shell_live/post_editor.ex:754
+#: lib/bds/desktop/shell_live/post_editor.ex:783
+#: lib/bds/desktop/shell_live/post_editor.ex:789
#, elixir-autogen, elixir-format
msgid "Detect Language"
msgstr "Rileva lingua"
@@ -776,7 +776,7 @@ msgstr "Chiudi superficie"
msgid "Display Text"
msgstr "Testo visualizzato"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:232
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:245
#, elixir-autogen, elixir-format
msgid "Do Not Translate"
msgstr "Non tradurre"
@@ -898,8 +898,8 @@ msgstr "Errore"
msgid "Exact Match"
msgstr "Corrispondenza esatta"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:349
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:354
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:362
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:367
#, elixir-autogen, elixir-format
msgid "Excerpt"
msgstr "Estratto"
@@ -983,7 +983,7 @@ msgid "Force Reload"
msgstr "Ricarica forzata"
#: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:194
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:419
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:432
#, elixir-autogen, elixir-format
msgid "Gallery"
msgstr "Galleria"
@@ -1036,7 +1036,7 @@ msgstr "Host"
#: lib/bds/desktop/shell_data.ex:116
#: lib/bds/desktop/shell_live/index.html.heex:666
#: lib/bds/desktop/shell_live/media_editor.ex:711
-#: lib/bds/desktop/shell_live/post_editor.ex:965
+#: lib/bds/desktop/shell_live/post_editor.ex:1006
#, elixir-autogen, elixir-format
msgid "Idle"
msgstr "Inattivo"
@@ -1178,12 +1178,12 @@ msgstr "In linea"
msgid "Insert"
msgstr "Inserisci"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:390
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:403
#, elixir-autogen, elixir-format
msgid "Insert Link"
msgstr "Inserisci collegamento"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:399
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:412
#, elixir-autogen, elixir-format
msgid "Insert Media"
msgstr "Inserisci media"
@@ -1201,13 +1201,13 @@ msgstr "Tipo"
#: lib/bds/desktop/shell_live/import_editor.ex:878
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:171
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:207
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:220
#, elixir-autogen, elixir-format
msgid "Language"
msgstr "Lingua"
#: lib/bds/desktop/shell_live/media_editor.ex:210
-#: lib/bds/desktop/shell_live/post_editor.ex:749
+#: lib/bds/desktop/shell_live/post_editor.ex:790
#, elixir-autogen, elixir-format
msgid "Language detection failed."
msgstr "Rilevamento della lingua non riuscito."
@@ -1223,7 +1223,7 @@ msgstr "Chiaro"
msgid "Link to Post"
msgstr "Collega al post"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:329
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:342
#, elixir-autogen, elixir-format
msgid "Linked Media"
msgstr "Media collegati"
@@ -1234,7 +1234,7 @@ msgid "Linked Posts"
msgstr "Post collegati"
#: lib/bds/desktop/shell_live/panel_renderer.ex:142
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:312
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:325
#, elixir-autogen, elixir-format
msgid "Links To"
msgstr "Collegato a"
@@ -1291,7 +1291,7 @@ msgstr "Mappa a..."
msgid "Mapped"
msgstr "Mappato"
-#: lib/bds/desktop/shell_live/post_editor.ex:968
+#: lib/bds/desktop/shell_live/post_editor.ex:1009
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:123
#, elixir-autogen, elixir-format
msgid "Markdown"
@@ -1454,8 +1454,8 @@ msgstr "Nessuna cronologia Git"
#: lib/bds/desktop/shell_live/misc_editor.ex:473
#: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:72
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:308
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:320
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:321
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:333
#: lib/bds/desktop/shell_live/sidebar_components.ex:321
#: lib/bds/desktop/shell_live/sidebar_components.ex:381
#: lib/bds/desktop/shell_live/sidebar_components.ex:455
@@ -1466,7 +1466,7 @@ msgstr "Nessuna cronologia Git"
msgid "No items"
msgstr "Nessun elemento"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:342
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:355
#, elixir-autogen, elixir-format
msgid "No linked media"
msgstr "Nessun media collegato"
@@ -1703,7 +1703,7 @@ msgstr "Apri nel browser"
msgid "OpenAI-compatible endpoints, model routing, airplane mode, and system prompt"
msgstr "Endpoint compatibili OpenAI, routing dei modelli, modalità aereo e prompt di sistema"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:337
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:350
#, elixir-autogen, elixir-format
msgid "Order"
msgstr "Ordine"
@@ -1789,16 +1789,16 @@ msgid "Persist the detected language for this media item"
msgstr "Salva la lingua rilevata per questo media"
#: lib/bds/desktop/shell_live/misc_editor.ex:747
-#: lib/bds/desktop/shell_live/post_editor.ex:488
-#: lib/bds/desktop/shell_live/post_editor.ex:492
-#: lib/bds/desktop/shell_live/post_editor.ex:531
-#: lib/bds/desktop/shell_live/post_editor.ex:535
-#: lib/bds/desktop/shell_live/post_editor.ex:573
-#: lib/bds/desktop/shell_live/post_editor.ex:588
-#: lib/bds/desktop/shell_live/post_editor.ex:617
-#: lib/bds/desktop/shell_live/post_editor.ex:620
-#: lib/bds/desktop/shell_live/post_editor.ex:700
-#: lib/bds/desktop/shell_live/post_editor.ex:703
+#: lib/bds/desktop/shell_live/post_editor.ex:529
+#: lib/bds/desktop/shell_live/post_editor.ex:533
+#: lib/bds/desktop/shell_live/post_editor.ex:572
+#: lib/bds/desktop/shell_live/post_editor.ex:576
+#: lib/bds/desktop/shell_live/post_editor.ex:614
+#: lib/bds/desktop/shell_live/post_editor.ex:629
+#: lib/bds/desktop/shell_live/post_editor.ex:658
+#: lib/bds/desktop/shell_live/post_editor.ex:661
+#: lib/bds/desktop/shell_live/post_editor.ex:741
+#: lib/bds/desktop/shell_live/post_editor.ex:744
#: lib/bds/desktop/shell_live/sidebar_components.ex:651
#: lib/bds/desktop/shell_live/sidebar_delete.ex:174
#: lib/bds/ui/registry.ex:99
@@ -1808,7 +1808,7 @@ msgstr "Post"
#: lib/bds/desktop/shell_data.ex:247
#: lib/bds/desktop/shell_live/panel_renderer.ex:118
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:297
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:310
#, elixir-autogen, elixir-format
msgid "Post Links"
msgstr "Collegamenti articoli"
@@ -1828,12 +1828,12 @@ msgstr "Template del post"
msgid "Post is marked as do-not-translate but has translations"
msgstr "Il post è contrassegnato come non-tradurre ma ha traduzioni"
-#: lib/bds/desktop/shell_live/post_editor.ex:531
+#: lib/bds/desktop/shell_live/post_editor.ex:572
#, elixir-autogen, elixir-format
msgid "Post published"
msgstr "Articolo pubblicato"
-#: lib/bds/desktop/shell_live/post_editor.ex:488
+#: lib/bds/desktop/shell_live/post_editor.ex:529
#, elixir-autogen, elixir-format
msgid "Post saved"
msgstr "Articolo salvato"
@@ -1857,7 +1857,7 @@ msgstr "Articoli (%{count})"
msgid "Preferences"
msgstr "Preferenze"
-#: lib/bds/desktop/shell_live/post_editor.ex:969
+#: lib/bds/desktop/shell_live/post_editor.ex:1010
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:124
#, elixir-autogen, elixir-format
msgid "Preview"
@@ -1873,7 +1873,7 @@ msgstr "Modalità anteprima"
msgid "Preview Post"
msgstr "Anteprima post"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:430
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:443
#, elixir-autogen, elixir-format
msgid "Preview unavailable"
msgstr "Anteprima non disponibile"
@@ -1926,8 +1926,8 @@ msgid "Publish Selected"
msgstr "Pubblica selezionati"
#: lib/bds/desktop/shell_data.ex:181
-#: lib/bds/desktop/shell_live/post_editor.ex:963
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:459
+#: lib/bds/desktop/shell_live/post_editor.ex:1004
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:472
#: lib/bds/ui/sidebar.ex:324
#, elixir-autogen, elixir-format
msgid "Published"
@@ -2062,7 +2062,7 @@ msgstr "Percorso remoto"
msgid "Remove"
msgstr "Rimuovi"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:250
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:263
#, elixir-autogen, elixir-format
msgid "Remove category"
msgstr "Rimuovi categoria"
@@ -2124,7 +2124,7 @@ msgstr "Risoluzione"
msgid "Result"
msgstr "Risultato"
-#: lib/bds/desktop/shell_live/post_editor.ex:964
+#: lib/bds/desktop/shell_live/post_editor.ex:1005
#, elixir-autogen, elixir-format
msgid "Reverted"
msgstr "Ripristinato"
@@ -2176,7 +2176,7 @@ msgid "Save Translation"
msgstr "Salva traduzione"
#: lib/bds/desktop/shell_live/media_editor.ex:710
-#: lib/bds/desktop/shell_live/post_editor.ex:962
+#: lib/bds/desktop/shell_live/post_editor.ex:1003
#, elixir-autogen, elixir-format
msgid "Saved"
msgstr "Salvato"
@@ -2376,7 +2376,7 @@ msgstr "Dimensione"
#: lib/bds/desktop/shell_live/import_editor.ex:1130
#: lib/bds/desktop/shell_live/import_editor.ex:1187
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:238
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:251
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:24
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:23
#, elixir-autogen, elixir-format
@@ -2498,7 +2498,7 @@ msgid "Technology"
msgstr "Tecnologia"
#: lib/bds/desktop/shell_live/misc_editor.ex:752
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:286
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:299
#: lib/bds/desktop/shell_live/sidebar_components.ex:660
#: lib/bds/desktop/shell_live/sidebar_delete.ex:179
#: lib/bds/ui/registry.ex:134
@@ -2650,9 +2650,9 @@ msgstr "Attiva/disattiva barra laterale"
#: lib/bds/desktop/shell_live/media_editor.ex:566
#: lib/bds/desktop/shell_live/media_editor.ex:571
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76
-#: lib/bds/desktop/shell_live/post_editor.ex:762
-#: lib/bds/desktop/shell_live/post_editor.ex:791
-#: lib/bds/desktop/shell_live/post_editor.ex:796
+#: lib/bds/desktop/shell_live/post_editor.ex:803
+#: lib/bds/desktop/shell_live/post_editor.ex:832
+#: lib/bds/desktop/shell_live/post_editor.ex:837
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60
#, elixir-autogen, elixir-format
msgid "Translate"
@@ -2729,7 +2729,7 @@ msgstr "Scollega dall'articolo"
#: lib/bds/desktop/shell_live/media_editor.ex:709
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10
-#: lib/bds/desktop/shell_live/post_editor.ex:961
+#: lib/bds/desktop/shell_live/post_editor.ex:1002
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7
#, elixir-autogen, elixir-format
msgid "Unsaved"
@@ -2749,7 +2749,7 @@ msgstr "Senza titolo"
msgid "Untitled Import"
msgstr "Importazione senza titolo"
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:457
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:470
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:48
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:46
#, elixir-autogen, elixir-format
@@ -3210,7 +3210,7 @@ msgstr "Importazione simultanea immagini"
#: lib/bds/desktop/shell_live.ex:647
#: lib/bds/desktop/shell_live.ex:658
#: lib/bds/desktop/shell_live.ex:669
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:407
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:420
#, elixir-autogen, elixir-format
msgid "Add Gallery Images"
msgstr "Aggiungi immagini alla galleria"
@@ -3230,12 +3230,12 @@ msgstr "Archivia"
msgid "Move this post to the archive"
msgstr "Sposta questo articolo nell'archivio"
-#: lib/bds/desktop/shell_live/post_editor.ex:617
+#: lib/bds/desktop/shell_live/post_editor.ex:658
#, elixir-autogen, elixir-format
msgid "Post archived"
msgstr "Articolo archiviato"
-#: lib/bds/desktop/shell_live/post_editor.ex:700
+#: lib/bds/desktop/shell_live/post_editor.ex:741
#, elixir-autogen, elixir-format
msgid "Post unarchived"
msgstr "Articolo ripristinato"
@@ -3414,18 +3414,18 @@ msgstr "Blogmark"
msgid "Open a project before importing a blogmark."
msgstr "Apri un progetto prima di importare un blogmark."
-#: lib/bds/desktop/shell_live/post_editor.ex:643
+#: lib/bds/desktop/shell_live/post_editor.ex:684
#, elixir-autogen, elixir-format
msgid "Added %{name}"
msgstr "%{name} aggiunto"
-#: lib/bds/desktop/shell_live/post_editor.ex:650
+#: lib/bds/desktop/shell_live/post_editor.ex:691
#, elixir-autogen, elixir-format
msgid "Failed to import %{path}: %{reason}"
msgstr "Impossibile importare %{path}: %{reason}"
-#: lib/bds/desktop/shell_live/post_editor.ex:642
-#: lib/bds/desktop/shell_live/post_editor.ex:649
+#: lib/bds/desktop/shell_live/post_editor.ex:683
+#: lib/bds/desktop/shell_live/post_editor.ex:690
#, elixir-autogen, elixir-format
msgid "Insert Image"
msgstr "Inserisci immagine"
@@ -3454,3 +3454,8 @@ msgstr "Impossibile copiare il bookmarklet negli appunti"
#, elixir-autogen, elixir-format
msgid "The project this blogmark targets does not exist here."
msgstr "Il progetto a cui punta questo blogmark non esiste qui."
+
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:183
+#, elixir-autogen, elixir-format
+msgid "Suggested tags"
+msgstr "Tag suggeriti"
diff --git a/priv/gettext/ui.pot b/priv/gettext/ui.pot
index 9f82d40..aaf215d 100644
--- a/priv/gettext/ui.pot
+++ b/priv/gettext/ui.pot
@@ -92,7 +92,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:42
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
-#: lib/bds/desktop/shell_live/post_editor.ex:847
+#: lib/bds/desktop/shell_live/post_editor.ex:888
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#, elixir-autogen, elixir-format
msgid "AI Suggestions"
@@ -155,7 +155,7 @@ msgstr ""
msgid "Add Submenu"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:259
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:272
#, elixir-autogen, elixir-format
msgid "Add category"
msgstr ""
@@ -259,7 +259,7 @@ msgid "Assistant"
msgstr ""
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:166
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:202
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:215
#, elixir-autogen, elixir-format
msgid "Author"
msgstr ""
@@ -276,8 +276,8 @@ msgstr ""
#: lib/bds/desktop/shell_live/media_editor.ex:353
#: lib/bds/desktop/shell_live/media_editor.ex:546
#: lib/bds/desktop/shell_live/overlay_manager.ex:73
-#: lib/bds/desktop/shell_live/post_editor.ex:714
-#: lib/bds/desktop/shell_live/post_editor.ex:763
+#: lib/bds/desktop/shell_live/post_editor.ex:755
+#: lib/bds/desktop/shell_live/post_editor.ex:804
#, elixir-autogen, elixir-format
msgid "Automatic AI actions stay gated by airplane mode."
msgstr ""
@@ -296,7 +296,7 @@ msgid "Available languages"
msgstr ""
#: lib/bds/desktop/shell_live/panel_renderer.ex:124
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:300
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:313
#, elixir-autogen, elixir-format
msgid "Backlinks"
msgstr ""
@@ -382,7 +382,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/index.html.heex:336
#: lib/bds/desktop/shell_live/misc_editor.ex:755
#: lib/bds/desktop/shell_live/misc_editor.ex:756
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:243
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:256
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:59
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:75
#: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:107
@@ -514,7 +514,7 @@ msgstr ""
msgid "Confirm"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:362
+#: 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/ui/sidebar.ex:764
@@ -563,17 +563,17 @@ msgstr ""
msgid "Create / Edit"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:275
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:288
#, elixir-autogen, elixir-format
msgid "Create category"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:193
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:206
#, elixir-autogen, elixir-format
msgid "Create tag"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:456
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:469
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:48
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:46
#, elixir-autogen, elixir-format
@@ -624,7 +624,7 @@ msgstr ""
msgid "Date Distribution"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:288
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:301
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:177
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:185
#, elixir-autogen, elixir-format
@@ -711,7 +711,7 @@ msgstr ""
msgid "Desktop Runtime"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:223
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:236
#, elixir-autogen, elixir-format
msgid "Detect"
msgstr ""
@@ -721,9 +721,9 @@ msgstr ""
#: lib/bds/desktop/shell_live/media_editor.ex:203
#: lib/bds/desktop/shell_live/media_editor.ex:209
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59
-#: lib/bds/desktop/shell_live/post_editor.ex:713
-#: lib/bds/desktop/shell_live/post_editor.ex:742
-#: lib/bds/desktop/shell_live/post_editor.ex:748
+#: lib/bds/desktop/shell_live/post_editor.ex:754
+#: lib/bds/desktop/shell_live/post_editor.ex:783
+#: lib/bds/desktop/shell_live/post_editor.ex:789
#, elixir-autogen, elixir-format
msgid "Detect Language"
msgstr ""
@@ -789,7 +789,7 @@ msgstr ""
msgid "Display Text"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:232
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:245
#, elixir-autogen, elixir-format
msgid "Do Not Translate"
msgstr ""
@@ -911,8 +911,8 @@ msgstr ""
msgid "Exact Match"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:349
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:354
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:362
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:367
#, elixir-autogen, elixir-format
msgid "Excerpt"
msgstr ""
@@ -996,7 +996,7 @@ msgid "Force Reload"
msgstr ""
#: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:194
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:419
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:432
#, elixir-autogen, elixir-format
msgid "Gallery"
msgstr ""
@@ -1049,7 +1049,7 @@ msgstr ""
#: lib/bds/desktop/shell_data.ex:116
#: lib/bds/desktop/shell_live/index.html.heex:666
#: lib/bds/desktop/shell_live/media_editor.ex:711
-#: lib/bds/desktop/shell_live/post_editor.ex:965
+#: lib/bds/desktop/shell_live/post_editor.ex:1006
#, elixir-autogen, elixir-format
msgid "Idle"
msgstr ""
@@ -1191,12 +1191,12 @@ msgstr ""
msgid "Insert"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:390
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:403
#, elixir-autogen, elixir-format
msgid "Insert Link"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:399
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:412
#, elixir-autogen, elixir-format
msgid "Insert Media"
msgstr ""
@@ -1214,13 +1214,13 @@ msgstr ""
#: lib/bds/desktop/shell_live/import_editor.ex:878
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:171
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:207
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:220
#, elixir-autogen, elixir-format
msgid "Language"
msgstr ""
#: lib/bds/desktop/shell_live/media_editor.ex:210
-#: lib/bds/desktop/shell_live/post_editor.ex:749
+#: lib/bds/desktop/shell_live/post_editor.ex:790
#, elixir-autogen, elixir-format
msgid "Language detection failed."
msgstr ""
@@ -1236,7 +1236,7 @@ msgstr ""
msgid "Link to Post"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:329
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:342
#, elixir-autogen, elixir-format
msgid "Linked Media"
msgstr ""
@@ -1247,7 +1247,7 @@ msgid "Linked Posts"
msgstr ""
#: lib/bds/desktop/shell_live/panel_renderer.ex:142
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:312
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:325
#, elixir-autogen, elixir-format
msgid "Links To"
msgstr ""
@@ -1304,7 +1304,7 @@ msgstr ""
msgid "Mapped"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:968
+#: lib/bds/desktop/shell_live/post_editor.ex:1009
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:123
#, elixir-autogen, elixir-format
msgid "Markdown"
@@ -1467,8 +1467,8 @@ msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:473
#: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:72
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:308
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:320
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:321
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:333
#: lib/bds/desktop/shell_live/sidebar_components.ex:321
#: lib/bds/desktop/shell_live/sidebar_components.ex:381
#: lib/bds/desktop/shell_live/sidebar_components.ex:455
@@ -1479,7 +1479,7 @@ msgstr ""
msgid "No items"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:342
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:355
#, elixir-autogen, elixir-format
msgid "No linked media"
msgstr ""
@@ -1716,7 +1716,7 @@ msgstr ""
msgid "OpenAI-compatible endpoints, model routing, airplane mode, and system prompt"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:337
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:350
#, elixir-autogen, elixir-format
msgid "Order"
msgstr ""
@@ -1802,16 +1802,16 @@ msgid "Persist the detected language for this media item"
msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:747
-#: lib/bds/desktop/shell_live/post_editor.ex:488
-#: lib/bds/desktop/shell_live/post_editor.ex:492
-#: lib/bds/desktop/shell_live/post_editor.ex:531
-#: lib/bds/desktop/shell_live/post_editor.ex:535
-#: lib/bds/desktop/shell_live/post_editor.ex:573
-#: lib/bds/desktop/shell_live/post_editor.ex:588
-#: lib/bds/desktop/shell_live/post_editor.ex:617
-#: lib/bds/desktop/shell_live/post_editor.ex:620
-#: lib/bds/desktop/shell_live/post_editor.ex:700
-#: lib/bds/desktop/shell_live/post_editor.ex:703
+#: lib/bds/desktop/shell_live/post_editor.ex:529
+#: lib/bds/desktop/shell_live/post_editor.ex:533
+#: lib/bds/desktop/shell_live/post_editor.ex:572
+#: lib/bds/desktop/shell_live/post_editor.ex:576
+#: lib/bds/desktop/shell_live/post_editor.ex:614
+#: lib/bds/desktop/shell_live/post_editor.ex:629
+#: lib/bds/desktop/shell_live/post_editor.ex:658
+#: lib/bds/desktop/shell_live/post_editor.ex:661
+#: lib/bds/desktop/shell_live/post_editor.ex:741
+#: lib/bds/desktop/shell_live/post_editor.ex:744
#: lib/bds/desktop/shell_live/sidebar_components.ex:651
#: lib/bds/desktop/shell_live/sidebar_delete.ex:174
#: lib/bds/ui/registry.ex:99
@@ -1821,7 +1821,7 @@ msgstr ""
#: lib/bds/desktop/shell_data.ex:247
#: lib/bds/desktop/shell_live/panel_renderer.ex:118
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:297
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:310
#, elixir-autogen, elixir-format
msgid "Post Links"
msgstr ""
@@ -1841,12 +1841,12 @@ msgstr ""
msgid "Post is marked as do-not-translate but has translations"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:531
+#: lib/bds/desktop/shell_live/post_editor.ex:572
#, elixir-autogen, elixir-format
msgid "Post published"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:488
+#: lib/bds/desktop/shell_live/post_editor.ex:529
#, elixir-autogen, elixir-format
msgid "Post saved"
msgstr ""
@@ -1870,7 +1870,7 @@ msgstr ""
msgid "Preferences"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:969
+#: lib/bds/desktop/shell_live/post_editor.ex:1010
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:124
#, elixir-autogen, elixir-format
msgid "Preview"
@@ -1886,7 +1886,7 @@ msgstr ""
msgid "Preview Post"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:430
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:443
#, elixir-autogen, elixir-format
msgid "Preview unavailable"
msgstr ""
@@ -1939,8 +1939,8 @@ msgid "Publish Selected"
msgstr ""
#: lib/bds/desktop/shell_data.ex:181
-#: lib/bds/desktop/shell_live/post_editor.ex:963
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:459
+#: lib/bds/desktop/shell_live/post_editor.ex:1004
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:472
#: lib/bds/ui/sidebar.ex:324
#, elixir-autogen, elixir-format
msgid "Published"
@@ -2075,7 +2075,7 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:250
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:263
#, elixir-autogen, elixir-format
msgid "Remove category"
msgstr ""
@@ -2137,7 +2137,7 @@ msgstr ""
msgid "Result"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:964
+#: lib/bds/desktop/shell_live/post_editor.ex:1005
#, elixir-autogen, elixir-format
msgid "Reverted"
msgstr ""
@@ -2189,7 +2189,7 @@ msgid "Save Translation"
msgstr ""
#: lib/bds/desktop/shell_live/media_editor.ex:710
-#: lib/bds/desktop/shell_live/post_editor.ex:962
+#: lib/bds/desktop/shell_live/post_editor.ex:1003
#, elixir-autogen, elixir-format
msgid "Saved"
msgstr ""
@@ -2389,7 +2389,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/import_editor.ex:1130
#: lib/bds/desktop/shell_live/import_editor.ex:1187
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:238
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:251
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:24
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:23
#, elixir-autogen, elixir-format
@@ -2511,7 +2511,7 @@ msgid "Technology"
msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:752
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:286
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:299
#: lib/bds/desktop/shell_live/sidebar_components.ex:660
#: lib/bds/desktop/shell_live/sidebar_delete.ex:179
#: lib/bds/ui/registry.ex:134
@@ -2663,9 +2663,9 @@ msgstr ""
#: lib/bds/desktop/shell_live/media_editor.ex:566
#: lib/bds/desktop/shell_live/media_editor.ex:571
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76
-#: lib/bds/desktop/shell_live/post_editor.ex:762
-#: lib/bds/desktop/shell_live/post_editor.ex:791
-#: lib/bds/desktop/shell_live/post_editor.ex:796
+#: lib/bds/desktop/shell_live/post_editor.ex:803
+#: lib/bds/desktop/shell_live/post_editor.ex:832
+#: lib/bds/desktop/shell_live/post_editor.ex:837
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60
#, elixir-autogen, elixir-format
msgid "Translate"
@@ -2742,7 +2742,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/media_editor.ex:709
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10
-#: lib/bds/desktop/shell_live/post_editor.ex:961
+#: lib/bds/desktop/shell_live/post_editor.ex:1002
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7
#, elixir-autogen, elixir-format
msgid "Unsaved"
@@ -2762,7 +2762,7 @@ msgstr ""
msgid "Untitled Import"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:457
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:470
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:48
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:46
#, elixir-autogen, elixir-format
@@ -3223,7 +3223,7 @@ msgstr ""
#: lib/bds/desktop/shell_live.ex:647
#: lib/bds/desktop/shell_live.ex:658
#: lib/bds/desktop/shell_live.ex:669
-#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:407
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:420
#, elixir-autogen, elixir-format
msgid "Add Gallery Images"
msgstr ""
@@ -3243,12 +3243,12 @@ msgstr ""
msgid "Move this post to the archive"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:617
+#: lib/bds/desktop/shell_live/post_editor.ex:658
#, elixir-autogen, elixir-format
msgid "Post archived"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:700
+#: lib/bds/desktop/shell_live/post_editor.ex:741
#, elixir-autogen, elixir-format
msgid "Post unarchived"
msgstr ""
@@ -3427,18 +3427,18 @@ msgstr ""
msgid "Open a project before importing a blogmark."
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:643
+#: lib/bds/desktop/shell_live/post_editor.ex:684
#, elixir-autogen, elixir-format
msgid "Added %{name}"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:650
+#: lib/bds/desktop/shell_live/post_editor.ex:691
#, elixir-autogen, elixir-format
msgid "Failed to import %{path}: %{reason}"
msgstr ""
-#: lib/bds/desktop/shell_live/post_editor.ex:642
-#: lib/bds/desktop/shell_live/post_editor.ex:649
+#: lib/bds/desktop/shell_live/post_editor.ex:683
+#: lib/bds/desktop/shell_live/post_editor.ex:690
#, elixir-autogen, elixir-format
msgid "Insert Image"
msgstr ""
@@ -3467,3 +3467,8 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "The project this blogmark targets does not exist here."
msgstr ""
+
+#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:183
+#, elixir-autogen, elixir-format
+msgid "Suggested tags"
+msgstr ""
diff --git a/specs/editor_post.allium b/specs/editor_post.allium
index 1d78aa1..c28dcc1 100644
--- a/specs/editor_post.allium
+++ b/specs/editor_post.allium
@@ -137,10 +137,14 @@ surface PostEditorSurface {
@guarantee TagAutocomplete
-- Tag input with autocomplete.
- -- Standard: prefix match on existing tag names (case-insensitive).
- -- When semanticSimilarityEnabled: also suggests tags from 10 similar posts,
- -- weighted by similarity, top 5 shown.
- -- Merged results: prefix matches first, then embedding suggestions.
+ -- While typing: substring match on existing tag names (case-insensitive),
+ -- top 8 shown, plus a "create tag" row when the query is new.
+ -- While the query is empty (on focus): semantic suggestions appear under a
+ -- "Suggested tags" label — tags drawn from up to 10 similar posts,
+ -- weighted by similarity, top 5, excluding tags already on the post.
+ -- Requires semanticSimilarityEnabled and a built embedding index;
+ -- it is an index read (no model inference) so it works offline and
+ -- yields nothing when similarity is disabled or unindexed.
@guarantee TranslationFlagsBar
-- Row of flag emoji buttons inline with metadata toggle.
diff --git a/test/bds/desktop/shell_live_test.exs b/test/bds/desktop/shell_live_test.exs
index 75dafa9..0052b82 100644
--- a/test/bds/desktop/shell_live_test.exs
+++ b/test/bds/desktop/shell_live_test.exs
@@ -61,6 +61,7 @@ defmodule BDS.Desktop.ShellLiveTest do
tag_chips: [%{name: "elixir", color: "#3b82f6"}],
tag_query: "",
tag_suggestions: [],
+ tag_semantic_suggestions: [],
tag_query_addable?: false,
languages: ["en", "de"],
detect_language_enabled?: true,
@@ -2878,6 +2879,59 @@ defmodule BDS.Desktop.ShellLiveTest do
)
end
+ test "focusing the post editor tag input surfaces semantic suggestions from similar posts", %{
+ project: project
+ } do
+ assert {:ok, _metadata} =
+ Metadata.update_project_metadata(project.id, %{semantic_similarity_enabled: true})
+
+ {:ok, neighbor} =
+ Posts.create_post(%{
+ project_id: project.id,
+ title: "Rocket Science",
+ content: "space rocket orbit mission galaxy launch trajectory",
+ tags: ["astronomy"],
+ language: "en"
+ })
+
+ assert {:ok, _published} = Posts.publish_post(neighbor.id)
+
+ {:ok, draft} =
+ Posts.create_post(%{
+ project_id: project.id,
+ title: "Orbital Mechanics",
+ content: "space rocket orbit mission galaxy launch propulsion",
+ language: "en"
+ })
+
+ assert {:ok, _indexed} = BDS.Embeddings.index_unindexed(project.id)
+
+ {:ok, view, _html} = live_isolated(build_conn(), BDS.Desktop.ShellLive)
+
+ render_click(view, "pin_sidebar_item", %{
+ "route" => "post",
+ "id" => draft.id,
+ "title" => draft.title,
+ "subtitle" => "draft"
+ })
+
+ html =
+ view
+ |> element("[phx-focus='focus_post_editor_tags']")
+ |> render_focus()
+
+ assert html =~ "astronomy"
+
+ html =
+ view
+ |> element(".tag-suggestion.ai-suggested", "astronomy")
+ |> render_click()
+
+ # Editor must stay open and the tag must be stored.
+ assert html =~ ~s(data-testid="post-editor")
+ assert html =~ ~s(