Forge
markdowndeeb25a2
1# Spike: RichTextKit (Topten.RichTextKit) в Intercom Skia
2
3**Ветка:** `feature/RichTextKit` → merge в `develop`
4**Дата:** 2026-05-20
5**Статус:** принято, feature-flag снят
6**Лицензия:** MIT — при необходимости форк по образцу [AvaloniaEdit](https://github.com/KarataevDmitry/AvaloniaEdit)
7
8## Цель
9
10Проверить, что layout/рендер inline и block markdown в Intercom можно отдать **RichTextKit**, не переписывая весь Intercom.
11
12## Что вошло в продукт
13
14- NuGet: `Topten.RichTextKit` 0.4.167
15- `Views/Chat/Skia/SkiaRichTextKitMarkdown.cs` — inline + block (`TryMeasureDocument`)
16- `SkiaChatBubbleRenderer` — RTK для body всех `SkiaChatBubbleKind`; title/footer — `DrawText`
17- Slash `/help` detail, composer, mono code strips — RTK без флага
18- `SkiaChatRenderLimits` — `MaxProseBodyLines` 128, `MaxDocumentRows` 256
19- Тесты: `CascadeIDE.Tests/SkiaRichTextKitMarkdownTests.cs`
20
21## Ограничения (ADR 0129)
22
23- Полный Markdig в scroll **не** цель
24- Заголовки `##` в **сообщениях ленты** (inline path) — plain; в slash detail и `.md` help — block path с heading styles
25- Composer: каретка — эвристика `WrapLines`, не RTK hit-test
26
27## Риски
28
29- Транзитивный SkiaSharp 2.88 от RTK vs Avalonia 12.x — следить за runtime
30- Релизы RTK редкие — fork MIT допустим
31
32## Решение
33
34**Берём NuGet.** Spike завершён, `SkiaRichTextKitFeature` удалён.
35
View only · write via MCP/CIDE