composer: settings copy — 'Convert common Markdown formatting as you type' (#935)
Paul's wording, on all three platforms, with the hint teaching the syntax in literal markers (Text(verbatim:) native / textContent web): 'e.g. **bold**, *italic* (or _italic_) and ~strikethrough~'. Also retires the stale 'messages render the same either way' claim — untrue since opt-out started escaping (#934).
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
4 files changed,
+20
−6
ios/LChat/Views/ServerSettingsSheet.swift+3 −2ios/LChatMac/MacSettingsView.swift+3 −2web/static/shell.js+13 −2web/static/style.css+1 −0
diff --git a/ios/LChat/Views/ServerSettingsSheet.swift b/ios/LChat/Views/ServerSettingsSheet.swift| index 03eff3c..6e1859b 100644 |
| --- a/ios/LChat/Views/ServerSettingsSheet.swift |
| +++ b/ios/LChat/Views/ServerSettingsSheet.swift |
| @@ -83,11 +83,12 @@ struct ServerSettingsSheet: View { |
| .labelsHidden() |
| } |
| Section { |
| - Toggle("Format as you type", isOn: $formatAsYouType) |
| + Toggle("Convert common Markdown formatting as you type", isOn: $formatAsYouType) |
| } header: { |
| Text("Composer") |
| } footer: { |
| - Text("**bold** becomes bold as you close the stars — same for *italics*, `code` and ~strikethrough~. Off, the markers stay visible while you type; messages render the same either way.") |
| + // verbatim: the hint TEACHES the syntax — the markers must show. |
| + Text(verbatim: "e.g. **bold**, *italic* (or _italic_) and ~strikethrough~") |
| } |
| Section { |
| Text("Notifications are managed in Settings ▸ Notifications ▸ Eleven.") |
diff --git a/ios/LChatMac/MacSettingsView.swift b/ios/LChatMac/MacSettingsView.swift| index f59e841..b6efc87 100644 |
| --- a/ios/LChatMac/MacSettingsView.swift |
| +++ b/ios/LChatMac/MacSettingsView.swift |
| @@ -65,11 +65,12 @@ struct MacSettingsView: View { |
| Text("Text size") |
| } |
| Section { |
| - Toggle("Format as you type", isOn: $formatAsYouType) |
| + Toggle("Convert common Markdown formatting as you type", isOn: $formatAsYouType) |
| } header: { |
| Text("Composer") |
| } footer: { |
| - Text("**bold** becomes bold as you close the stars — same for *italics*, `code` and ~strikethrough~. Off, the markers stay visible while you type; messages render the same either way.") |
| + // verbatim: the hint TEACHES the syntax — the markers must show. |
| + Text(verbatim: "e.g. **bold**, *italic* (or _italic_) and ~strikethrough~") |
| } |
| CLIToolSection() |
| Section("Profile") { |
diff --git a/web/static/shell.js b/web/static/shell.js| index 353b23e..27193fe 100644 |
| --- a/web/static/shell.js |
| +++ b/web/static/shell.js |
| @@ -475,7 +475,7 @@ function showThemePicker() { |
| composerLabel.textContent = "Composer"; |
| composerLabel.style.marginTop = "14px"; |
| card.appendChild(composerLabel); |
| - const toggleRow = (labelText, checked, onchange) => { |
| + const toggleRow = (labelText, checked, onchange, hintText) => { |
| const row = document.createElement("label"); |
| row.className = "composer-pref-row"; |
| const box = document.createElement("input"); |
| @@ -486,9 +486,20 @@ function showThemePicker() { |
| txt.textContent = labelText; |
| row.append(box, txt); |
| card.appendChild(row); |
| + if (hintText) { |
| + const hint = document.createElement("div"); |
| + hint.className = "composer-pref-hint"; |
| + hint.textContent = hintText; // literal markers on purpose — the hint teaches the syntax |
| + card.appendChild(hint); |
| + } |
| return row; |
| }; |
| - toggleRow("Format as you type (**bold** becomes bold)", formatAsYouTypePref(), (on) => setFormatAsYouType(on)); |
| + toggleRow( |
| + "Convert common Markdown formatting as you type", |
| + formatAsYouTypePref(), |
| + (on) => setFormatAsYouType(on), |
| + "e.g. **bold**, *italic* (or _italic_) and ~strikethrough~", |
| + ); |
| toggleRow("Classic plain-text composer", classicComposerPref(), (on) => { |
| setClassicComposer(on); |
| // Remount the open thread's pane so the switch is immediate. Parked panes |
diff --git a/web/static/style.css b/web/static/style.css| index f101894..cc1558f 100644 |
| --- a/web/static/style.css |
| +++ b/web/static/style.css |
| @@ -1659,6 +1659,7 @@ input:focus, textarea:focus { outline: 2px solid var(--accent); border-color: tr |
| cursor: pointer; |
| } |
| .composer-pref-row input[type="checkbox"] { accent-color: var(--accent); width: 18px; height: 18px; margin: 0; } |
| +.composer-pref-hint { margin: -4px 0 8px 28px; font-size: 12px; color: var(--muted); } |
| .composer .composer-input.pm-empty::before { |
| content: attr(data-placeholder); |
| color: var(--muted); |