[feature][footnotes] Мульти-бэклинки: определение возвращает ко ВСЕМ своим ссылкам (продолжение #166) #168
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Выделено из #166 как отдельный UI-слой (Feature 3b). Дата-целостностное ядро #166 (reuse + first-wins + warnings + paste-reuse) уже сделано в PR. Здесь — только редакторный UX мульти-бэклинков.
Контекст
После #166 повторные
[^a]ссылки — это одна сноска (reuse): один номер, одно определение, N кликабельных ссылок вперёд. Но обратная стрелка ↩ в определении сейчас ведёт только к ПЕРВОЙ ссылке (scrollToReference(id)→ первыйsup[data-id=…]). Нужно, чтобы определение возвращало к каждой из своих ссылок (как в Pandoc/Wikipedia: ↩ a b c).Объём
footnote-numbering.ts/footnote-util.tsсобратьid -> [reference occurrences](порядок/счётчик), кэшировать рядом сnumbers. Экспорт gettergetFootnoteRefCount(state, id)(или список индексов).scrollToReference(footnote-reference.ts:~318) доscrollToReference(id, index?)→querySelectorAll('sup[data-footnote-ref][data-id="…"]')[index].apps/client/.../footnote/footnote-definition-view.tsx— при числе ссылок > 1 рендерить ↩ + подметкиa, b, c…, каждая ведёт к своей occurrence; при одной — текущее поведение.apps/client/.../footnote/footnote.module.css— раскладка нескольких бэклинков.footnote-views.structure.test.tsx— мульти-бэклинки рендерятся по числу ссылок.Почему отдельно
UI-слой требует визуальной проверки (вёрстка бэклинков), которую нельзя полноценно сделать headless. Ядро reuse работает без него; это полировка обратной навигации.
DoD
Ghost referenced this issue2026-06-25 11:11:27 +03:00
Ghost referenced this issue2026-06-25 11:38:57 +03:00
Ghost referenced this issue2026-06-25 12:00:53 +03:00