Przejdź do treści

KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ

Notatnik, dane i dostępność

ADVANCED40 min
Postęp nauki 0 / 3
Zaloguj się na konto użytkownika, aby zachować postęp.

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.

  1. # Baza projektu: notatki numerowane od 1 i licznik notatek.Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  2. database UiDemo {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  3. version = 1Pole tożsamości lub wersji w otaczającym bloku; zachowaj jego kontekst.
  4. Pusta linia oddziela fragmenty źródła.
  5. table notes {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  6. id: Int primary keyOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  7. text: StringOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  8. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  9. Pusta linia oddziela fragmenty źródła.
  10. table counters {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  11. name: String primary keyOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  12. value: IntOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  13. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  14. }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-test nie dołącza bibliotek KretLib (KCS-KRS-1003).
Otwórz cały rozdział ze źródłem →
KretUI — kody diagnostyczne / diagnostic codes

KretUI — kody diagnostyczne / diagnostic codes

Kod / codePolski
KCS-KUI-0107komponent NOT_SUPPORTED (tooltip, menu, contextMenu, chart)
KCS-KUI-0108brak etykiety/opisu/alt (ostrzeżenie dostępności)
KCS-KUI-02xxbłędy KretStyle (właściwość, wartość, token, selektor, stan)
KCS-KUI-0305kontrast pary tokenów poniżej minimum (błąd)
KCS-KUI-03xxbłędy KTheme (warianty, aliasy, rodzaje wartości)

Format: kret-diagnostics/1 (kod, plik, wiersz, kolumna, zakres) / (code, file, line, column, range).

Otwórz cały rozdział ze źródłem →
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 w self-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.
Otwórz cały rozdział ze źródłem →
KretUI — rozwiązywanie problemów / troubleshooting

KretUI — rozwiązywanie problemów / troubleshooting

Problem (PL)Rozwiązanie (PL)
Akcja nic nie robikomenda w handlers manifestu? sygnatura on zgodna z args? sprawdź error w stanie
KCS-KUI-0305 po zmianie kolorupopraw 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
Otwórz cały rozdział ze źródłem →
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):

  1. kret check . --json — w wyniku: "succeeded": true
  2. kretui-host . --self-test {OUT}/add --data {DATA} --policy host-policy.json --input 0/2/0=Kupić mleko --click 0/2/1
  3. kretui-host . --self-test {OUT}/hc --data {DATA} --policy host-policy.json --variant highContrast
  4. kret check low-contrast --json — oczekiwany błąd — w wyniku: KCS-KUI-0305

Wynik tej rundy: PASS — zob. EXPECTED_OUTPUT.txt.

Otwórz cały rozdział ze źródłem →

Ć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.

Które podsumowanie jest zgodne z lekcją?

To quiz o opisanym kontrakcie. Nie kompiluje kodu, nie potwierdza wykonania programu i nie przyznaje nagród.

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 →

Wybierz, co możemy zapamiętać w tej przeglądarce. Możesz zmienić decyzję w każdej chwili.

Polityka prywatności