Telegram-iOS/submodules/BrowserUI/Sources
isaac 471d11df16 Copy rich messages as markdown (whole message + partial selection)
Rich messages (RichTextMessageAttribute, text == "") are copyable as
markdown two ways: the context-menu Copy action copies the whole
message, and a text selection inside the rich-data bubble copies just
the selected range. Both reconstruct markdown mirroring the edit
round-trip (markdownStringFromInstantPage).

Implements the full RichText entity case set
(mention/hashtag/cashtag/bot-command/bank-card/auto url/email/phone) with
tap interaction, the InstantPage -> markdown inverse converter and edit
round-trip, markdown-context stamping during V2 layout
(InstantPageMarkdownBlockContext: heading level, list/code/table/quote
depth), partial-selection markdown emission
(InstantPageMultiTextAdapter.markdownForRange), and numerous converter
edge-case fixes (tables, links, fenced code, blockquote line coalescing,
compact nested >> markers).

CLAUDE.md documents the feature; the spec/plan scratch docs generated
during development are not committed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 13:52:47 +02:00
..
BrowserAddressBarComponent.swift Glass 2026-01-25 00:31:18 +08:00
BrowserAddressListComponent.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
BrowserAddressListItemComponent.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
BrowserBookmarksScreen.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
BrowserContent.swift Local instant view 2024-08-29 11:44:05 +04:00
BrowserDocumentContent.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
BrowserExceptionDomainAlertContentNode.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
BrowserFontSizeContextMenuItem.swift Initial in-app browser implementation 2023-02-18 00:59:18 +04:00
BrowserInstantPageContent.swift InstantPage list checkboxes (task-list style): parse, serialize, render 2026-05-27 16:44:47 +02:00
BrowserMarkdown.swift InstantPage blockQuote: nested-blocks payload 2026-05-29 01:00:47 +02:00
BrowserNavigationBarComponent.swift Various improvements 2026-02-19 21:53:26 +04:00
BrowserPdfContent.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
BrowserReadability.swift InstantPage blockQuote: nested-blocks payload 2026-05-29 01:00:47 +02:00
BrowserRecentlyVisited.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
BrowserScreen.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
BrowserSearchBarComponent.swift Various improvements 2025-12-29 10:05:51 +04:00
BrowserTitleBarComponent.swift Glass 2026-01-25 00:31:18 +08:00
BrowserToolbarComponent.swift Various improvements 2026-04-22 23:03:51 +02:00
BrowserWebContent.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
InstantPageToMarkdown.swift Copy rich messages as markdown (whole message + partial selection) 2026-05-29 13:52:47 +02:00
SectionHeaderComponent.swift Browser improvements 2024-07-25 17:04:44 +02:00
Utils.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00