@konce-pt/mention
v0.11.0
Published
Mention core for Koncept UI — parsing @mentions in text, the active query at the caret and diacritics-insensitive matching. Framework-free TypeScript, zero runtime dependencies.
Maintainers
Readme
@konce-pt/mention
Rdzeń wzmianek Koncept UI: wyciąganie @wzmianek
z tekstu, aktywne zapytanie przy kursorze i dopasowanie podpowiedzi bez znaków diakrytycznych.
Czysty TypeScript, zero zależności runtime, bez wiązania z frameworkiem.
Zwykle nie instalujesz go samodzielnie: używają go KptMention, KptMentions i KptRichText
z @konce-pt/angular oraz @konce-pt/react. Sięgnij po niego wprost, gdy wzmianki mają działać
w twoim własnym polu tekstowym albo po stronie serwera.
npm i @konce-pt/mentionimport { filterMentions, mentionQuery, parseMentionText } from '@konce-pt/mention';
const people = [
{ id: 'anna.k', label: 'Anna Kowalska' },
{ id: 'lukasz.w', label: 'Łukasz Wiśniewski' },
];
// Akapit rozbity na tekst i wzmianki — z `raw` każdej z nich wraca oryginał znak w znak.
parseMentionText('Pytanie do @anna.k o kosztorys.', people);
// Co podpowiedzieć przy kursorze (tu: po wpisaniu „@luk").
const query = mentionQuery('Pytanie do @luk', 15); // { query: 'luk', start: 11, end: 15 }
filterMentions(people, query.query); // [{ id: 'lukasz.w', … }]Wzmianka to nie kolorowy napis
[email protected] nie może stać się wzmianką, a Enter w podpowiedziach nie może wstawić nazwy
w innym miejscu, niż użytkownik pisze. Te same reguły są potrzebne w akapicie do czytania,
w zwykłym polu tekstowym, w edytorze i w obu portach — dlatego siedzą w jednym module z testami.
API
- Parsowanie —
parseMentionText,mentionToken,collectMentions, typKptMentionSegment - Zapytanie przy kursorze —
mentionQuery,applyMention, typKptMentionQuery - Dopasowanie —
filterMentions,foldMentionText,KPT_MENTION_LIMIT - Model — typ
KptMentionItem
Pełny opis: llms.txt (EN)
i llms-pl.txt (PL).
Testy
pnpm --filter @konce-pt/mention exec node --test "src/**/*.test.ts"Licencja
MIT © konce.pt
