Interakcje i wyposażenie
Żywe demo na canvasie i stojący za nim kontrakt, a potem ciche komponenty oprawiające każdą notatkę — te, na które patrzysz od pierwszej strony.
§3.1DemoMount — na żywo
Podział pracy jest tu ten sam co zwykle w tym pakiecie: znacznik montażu (scena, slot na sterowanie, slot na podpis) jedzie w pakiecie; moduł dema i jego loader należą do witryny. Ta witryna trzyma loader w src/lib/demo-loader.ts i woła mountAllDemos() raz z layoutu; wywołanie biegnie na każdej stronie, ale porcja kodu modułu dema jest pobierana tylko dla strony, która niesie punkt montażu [data-demo].
Demo, które przyjmuje wskaźnik na swoim canvasie, przekazuje interactive — scena przejmuje wtedy gesty dotykowe i pokazuje celownik. To poniżej jest bierne (tylko renderuje), więc zostawia flagę wyłączoną i przeciągnięcie palcem po canvasie nadal przewija stronę. Rysuje interferencję fal z dwóch źródeł tokenem tuszu samej strony, więc podąża za motywem:
Dwa źródła punktowe emitują fale koliste; gdzie grzbiet spotyka grzbiet, tusz się zbiera, gdzie grzbiet spotyka dolinę, prześwituje papier. Przełącz motyw — demo zamacza pędzel w żywych tokenach od nowa.
Kontrakt modułu to jeden domyślny eksport, mount(ctx), zwracający funkcję sprzątającą; identyfikatory modułów w rodzaju waves/interference loader rozwiązuje, jak witrynie wygodnie (tutaj import.meta.glob).
§3.2Wyposażenie stron
Pozostałe komponenty notatkę oprawiają, a nie wypełniają:
Herootwiera notatkę: kicker, tytuł w kroju tytułowym, lid przechodzący przez pełny potok Markdowna, linia metadanych i opcjonalnytocLabel, który dodaje do sidebara nienumerowany wiersz „wstępu”. Frontmatterowytitlenotatki pozostaje krótkim kanonicznym tytułem dla<title>i kart; ten w hero może być długi.PartHerootwiera rozdział huba — to głowa tej właśnie strony. Jego kickera nigdy nie wpisuje się ręcznie: trasa przekazuje etykietę rozdziału „Część III · …” jakoprops.partLabel.Partdzieli długą jednostronicową notatkę na części; preset numeracji zamienia go w grupowe wiersze sidebara w rodzaju „CZĘŚĆ II · Fundamenty”. Tak pocięta jest strona Wszystko naraz.HubCardi.hub-gridto karty powitalne huba;.pathto jego ramka ścieżki lektury — oba na stronie przeglądu tej galerii.LocalTocrenderuje listę skoków w obrębie strony; przyjmuje oba kształty ToC, które produkują dwa presety numeracji, i chowa się poniżej konfigurowalnego minimum. Niżej, na żywo, na ToC tego właśnie rozdziału.SidebarMemorytrzyma przewijany sidebar tam, gdzie czytelnik go zostawił, między wczytaniami stron, i centruje bieżący element (domyślnie[aria-current="page"]), ilekroć wypadłby poza widok. Wrzuć go do pudełka przewijania sidebara, za znacznikami nawigacji; działa przed pierwszym malowaniem, więc sidebar nigdy nie błyska od góry. Nosi go sidebar tego dema.LineageSvgoprawia ręcznie rysowane SVG (rodowód metody, drzewo taksonomii) w kartę — jedna poniżej.PageFooterto drobny druk u stóp notatki — linia pod każdą notatką tutaj.- Elementy przeglądania mieszkają w rozdziale wiki; markdownową stroną tej galerii jest Wszystko naraz.
§3.3LocalToc i LineageSvg, na żywo
LocalToc nakarmiony ToC tej strony z czasu budowania — tymi samymi danymi, które konsumuje sidebar, podanymi notatce jako props.toc:
I LineageSvg wokół ręcznie napisanego diagramu, tuszowanego wyłącznie tokenami semantycznymi, więc leży na obu motywach:
§3.4Wyposażenie bez komponentu
Kilka elementów to zwykłe klasy w base.css, dla witryn, które renderują je z własnego layoutu albo piszą jako HTML w prozie:
| Klasa | Co to jest |
|---|---|
.page-head + .kicker, .page-desc, .page-date | głowa strony sterowana frontmatterem (kicker, h1, opis, data), renderowana przez layout zamiast <Hero> |
.banner, .banner-fallback | jednolinijkowe powiadomienie pod głową; wariant fallback jest tym przygaszonym |
.page-foot | dwukolumnowa stopka drobnego druku (slot lewy, slot prawy) |
.speak | przekład na ludzki język pod nagłówkiem sekcji pogłębionej; jego etykieta to --speak-label |
.path + .title, .route, .arrow | ramka ścieżki lektury na hubie |
.ref-tag | mały tag w kroju maszynowym na liście bibliograficznej (miejsce publikacji, rok) |
.tag, .tag.teal / .mustard / .violet | odznaki kart publikacji, użyteczne wszędzie |
.measured + .measured-head, .measured-body, .measured-pane (.doc), .measured-tag | karta porównania „udokumentowane kontra zmierzone”: pełny morski pasek tytułu nad dwoma panelami — panel .doc niesie twierdzenie, drugi pomiar — sylwetka odrębna od każdego calloutu |
.paper .idea-label | mała wersalikowa etykieta kluczowej idei w treści PaperCard, np. <span class="idea-label">Kluczowa idea</span> |