KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ
Notatnik, dane i dostępność
Czego się nauczysz
- Prześledź źródła i wyjaśnij opisany kontrakt.
- Porównaj źródła i oba warianty podglądu. Wyjaśnij, gdzie odbywa się zapis notatki, a gdzie wybór tokenu motywu.
Wymagania wstępne
- Ukończ Podstawy i wcześniejszy poziom tej ścieżki.
Wyjaśnienie krok po kroku
NotesStyleThemeDb łączy KretUI, KretStyle, KTheme i KretDB przez logikę KretS. Wariant dark/highContrast nie zwalnia z testu kontrastu i fokusu. Raport SDK self-test oraz PNG są oddzielnymi dowodami; żaden nie potwierdza zgody na uruchomienie UI/DB w Core Production.
Praca z kodem źródłowym
Notatki: KretUI + KretStyle + KTheme + KretS + KretDB
Pełny przykład warstw interfejsu na podstawie szablonu SDK `multi-language`: struktura (`.kretui`), wygląd (`.kstyle` — selektory, stany, `media`), motyw (`.ktheme` — tokeny, warianty `dark`/`highContrast`, kontrola kontrastu WCAG), logika (KretS) i dane (KretDB). Render w wariancie wysokiego kontrastu i interakcja zapisująca do bazy. Folder `low-contrast/` pokazuje, że zbyt mały kontrast motywu jest błędem kompilacji.
# Baza projektu: notatki numerowane od 1 i licznik notatek.
database UiDemo {
version = 1
table notes {
id: Int primary key
text: String
}
table counters {
name: String primary key
value: Int
}
}
Czytanie kodu linia po linii
Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.
# Baza projektu: notatki numerowane od 1 i licznik notatek.Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.database UiDemo {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.version = 1Pole tożsamości lub wersji w otaczającym bloku; zachowaj jego kontekst.Pusta linia oddziela fragmenty źródła.table notes {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.id: Int primary keyOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.text: StringOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.}Zamknięcie struktury otwartej we wcześniejszych liniach.Pusta linia oddziela fragmenty źródła.table counters {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.name: String primary keyOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.value: IntOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.}Zamknięcie struktury otwartej we wcześniejszych liniach.}Zamknięcie struktury otwartej we wcześniejszych liniach.
Oczekiwany wynik: Kod 0 w trzech pierwszych krokach (dwie klatki PNG), kod 1 z `KCS-KUI-0305` w ostatnim.
Typowy błąd: Logika w stylu (np. `when` w `.kstyle`) — to błąd „nieznana właściwość”; styl i motyw nie mają dostępu do stanu ani uprawnień.
Instrukcja, wersje i zapisane wyniki →Materiały źródłowe do tego tematu
Przeczytaj powiązane rozdziały. Kod i kontrakty zachowano z importu; historia źródeł jest dostępna przy każdym rozdziale.
KretUI — zgodność i wersje / compatibility and versions
KretUI — zgodność i wersje / compatibility and versions
Polski
- Zamrożone to, co realnie renderuje renderer SDK (łatki 8–11).
- P09 (
results,onBlur,shortcut) — PROPOSED_LOCAL (G-07). - Funkcje z bazy wiedzy niezaimplementowane w rendererze → KretUI 1.x (PLANNED).
- Znane ograniczenie tej rundy (EXP-F02):
kretui-host --self-testnie dołącza bibliotek KretLib (KCS-KRS-1003).
KretUI — kody diagnostyczne / diagnostic codes
KretUI — kody diagnostyczne / diagnostic codes
| Kod / code | Polski |
|---|---|
KCS-KUI-0107 | komponent NOT_SUPPORTED (tooltip, menu, contextMenu, chart) |
KCS-KUI-0108 | brak etykiety/opisu/alt (ostrzeżenie dostępności) |
KCS-KUI-02xx | błędy KretStyle (właściwość, wartość, token, selektor, stan) |
KCS-KUI-0305 | kontrast pary tokenów poniżej minimum (błąd) |
KCS-KUI-03xx | błędy KTheme (warianty, aliasy, rodzaje wartości) |
Format: kret-diagnostics/1 (kod, plik, wiersz, kolumna, zakres) / (code, file, line, column, range).
KretUI — bezpieczeństwo / security
KretUI — bezpieczeństwo / security
Polski
- Interfejs nie nadaje uprawnień, nie przechowuje sekretów i niczym nie steruje bezpośrednio — tylko wywołuje zadeklarowane komendy.
- Logika działa w osobnym procesie pluginu (
logic: isolated-process, potwierdzone wself-test.json). - Obrazy tylko z katalogu projektu (bez sieci,
.., ścieżek bezwzględnych, dowiązań). - Renderer działa z prawami użytkownika (nie jest piaskownicą) — ograniczenie opisane w Studio.
KretUI — rozwiązywanie problemów / troubleshooting
KretUI — rozwiązywanie problemów / troubleshooting
| Problem (PL) | Rozwiązanie (PL) |
|---|---|
| Akcja nic nie robi | komenda w handlers manifestu? sygnatura on zgodna z args? sprawdź error w stanie |
KCS-KUI-0305 po zmianie koloru | popraw kontrast tokenów w motywie i wszystkich wariantach |
| Podgląd w Studio: „plugin działa już w innym procesie” | BRK-12: jeden proces logiki na plugin i katalog danych — patch Studio STUDIO-R01 |
KretUI — samouczek ADVANCED
KretUI — samouczek ADVANCED
Status 1.0: `FROZEN_SUPPORTED_SUBSET` — zamrożony dokładnie opisany zakres; reszta poza kontraktem 1.0. Gramatyka/wersja: kretui-1.0 · kstyle-1.0 · ktheme-1.0. Status języka nie nadaje uprawnień KCS ani prawa do działania w Production.Cel: integracja z Core i innymi językami, KretDB, bezpieczny dostęp do API, pluginy, stan, testy, diagnostyka, uprawnienia.
Narzędzia: kret = <SDK>\Compiler\kret.exe (SDK 1.0.0-rc.3+kret.local.3), kretui-host = <SDK>\UiHost\kretui-host.exe. {DATA}/{OUT} = nowe, puste katalogi.
1. Notatki: KretUI + KretStyle + KTheme + KretS + KretDB (KRETUI-A01-NotesStyleThemeDb)
Projekt: ../../Examples/ADVANCED_NotesStyleThemeDb/ · klasyfikacja RUNNABLE_LOCAL · Playground LOCAL_EXECUTE
Kroki (katalog roboczy: katalog przykładu):
kret check . --json— w wyniku:"succeeded": truekretui-host . --self-test {OUT}/add --data {DATA} --policy host-policy.json --input 0/2/0=Kupić mleko --click 0/2/1kretui-host . --self-test {OUT}/hc --data {DATA} --policy host-policy.json --variant highContrastkret check low-contrast --json— oczekiwany błąd — w wyniku:KCS-KUI-0305
Wynik tej rundy: PASS — zob. EXPECTED_OUTPUT.txt.
Ćwiczenie i sprawdzenie wiedzy
Porównaj źródła i oba warianty podglądu. Wyjaśnij, gdzie odbywa się zapis notatki, a gdzie wybór tokenu motywu.
Szkic nie jest wysyłany na serwer i znika po opuszczeniu lekcji. Przed wyjściem możesz go skopiować.Podpowiedzi
- KretUI opisuje strukturę i interakcje interfejsu (widoki, stan, bindingi, akcje do komend KretS). KretStyle opisuje wygląd (selektory, kaskada, stany, `media`), KTheme — motyw (tokeny, warianty `dark`/`highContrast`, kontrola kontrastu WCAG). Renderer SDK (Avalonia) działa we własnym procesie, logika w procesie pluginu. Interfejs nie nadaje uprawnień i nie przechowuje sekretów.
- Odczytaj ograniczenia i oczekiwane błędy z dostarczonego samouczka; check i run są oddzielnymi krokami.
Omówienie rozwiązania
Odpowiedź oprzyj na pokazanym kodzie i rozdziale źródłowym. NotesStyleThemeDb łączy KretUI, KretStyle, KTheme i KretDB przez logikę KretS. Wariant dark/highContrast nie zwalnia z testu kontrastu i fokusu. Raport SDK self-test oraz PNG są oddzielnymi dowodami; żaden nie potwierdza zgody na uruchomienie UI/DB w Core Production.
Podsumowanie i następny krok
NotesStyleThemeDb łączy KretUI, KretStyle, KTheme i KretDB przez logikę KretS. Wariant dark/highContrast nie zwalnia z testu kontrastu i fokusu. Raport SDK self-test oraz PNG są oddzielnymi dowodami; żaden nie potwierdza zgody na uruchomienie UI/DB w Core Production.
Zaloguj się na konto użytkownika, aby zapisywać postęp i zakładki. Konta obsługi mogą czytać bez zapisu postępu. Logowanie →