Trenutno dejavna stran: start » sl » Interna dokumentacija » Razširitve DokuWikija (WvdS) » WvdS.DokuWiki.Snippet Vtičnik

WvdS.DokuWiki.Snippet Vtičnik

Snippet vstavi ponovno uporabne gradnike HTML v stran — prek oznake {{wk:snippet>kljuc}}, neodvisno od nastavitve htmlok. Gradnik se opredeli enkrat in vstavi povsod, kjer je potreben. Paket je namenjen avtorjem, ki ponavljajočih se blokov nočejo prepisovati, in upraviteljem, ki vzdržujejo zalogo gradnikov.

Prvi koraki

Pogosta opravila

Kaj želite Za koga Kje to naredite Navodilo
vstaviti gradnik avtorji oznaka {{wk:snippet>kljuc}} Sintaksa
ustvariti ali spremeniti gradnik upravitelji Skrbništvo > WvdS Snippets Definicija snippetov
gradnik napolniti z vrednostmi avtorji parametri oznake Primeri
razumeti, zakaj je HTML tu dovoljen upravitelji Kako deluje
ugotoviti, zakaj gradnik ostane prazen avtorji Kako deluje
gradnik nagovoriti iz drugega paketa razvijalci Integracija
spremeniti nastavitev upravitelji upravitelj nastavitev Konfiguracija

Definicija

Vticnik wksnippet omogoca veckratno uporabne HTML gradnike (snippete) s centraliziranim upravljanjem. Ponuja varno alternativo htmlok in omogoca kombiniranje HTML z vecjezicnimi prevodi.

Primeri uporabe

  • Navigacijski meniji - Glavni meni, stranska navigacija centralno upravljana
  • Ponavljajoci elementi - Podnozje, glave, gumbi
  • Lokalizirane komponente - HTML z integrirano vecjezicnostjo
  • Bloki podobni pripomockom - Povezave do druzabnih omrezij, kontaktne skatle
  • Razsiritve predlog - Kompleksne HTML strukture v wiki straneh

Sintaksa

{{wk:snippet>key}}

Parametri

Parameter Tip Opis
key string Ime snippeta iz konfiguracije

Definicija snippetov

Format

Snippeti so definirani v konfiguraciji vticnika v naslednjem formatu:

[snippet_name]
HTML vsebina tukaj
lahko je vecvrsticna
key oznake so dovoljene

Pravila

Pravilo Opis
Vrstica z imenom Zacne se z [ime] v svoji vrstici
Vsebina Vse po vrstici z imenom do naslednjega […]
Vecvrsticno Mozno poljubno stevilo vrstic
Prazne vrstice Dovoljene znotraj snippeta
wki18n ... oznake se obdelajo
HTML Popolni HTML dovoljen

Dovoljena vsebina

Vrsta vsebine Primer
HTML oznake

, ''<nav>, <ul>, itd. |

CSS razredi class=„my-class“
Vgrajeni slogi style=„color: red;“
JavaScript onclick=„…“ (uporabljajte previdno)
Font Awesome <i class=„fa fa-home“></i>
wki18n oznake Domov
Vgrajeni prevodi de:Besedilo|en:Text

Konfiguracija

Skrbniške nastavitve

Preko Skrbnik → Konfiguracija → wksnippet:

Nastavitev Tip Privzeto Opis
allowPhp Vklop/Izklop Izklop Dovoli kodo PHP v izsečkih (varnostno tveganje!)

Skrbniški vmesnik

Prek Skrbnik → Snippets je mogoče izsečke upravljati neposredno:

Funkcija Opis
Seznam izsečkov Prikaže vse razpoložljive izsečke s predogledom
Urejanje izsečka Spremeni vsebino HTML v urejevalniku besedila
Nov izseček Ustvari nov ključ izsečka
Brisanje izsečka Odstrani datoteko izsečka (s potrditvijo)

Primer izsečka (main_menu.html)

Datoteka: lib/plugins/wksnippet/snippets/main_menu.html

<nav class="main-menu">
    <ul class="menu-list">
        <li class="menu-item"><a href="?id=start">Domov</a></li>
        <li class="menu-item"><a href="?id=docs">Projektna dokumentacija</a></li>
        <li class="menu-item"><a href="?id=contact">Kontakt</a></li>
    </ul>
</nav>

Primer izsečka (go_back.html)

Datoteka: lib/plugins/wksnippet/snippets/go_back.html

<div class="go-back">
    <i class="fa fa-arrow-left"></i>
    <a href="javascript:history.back()">Nazaj</a>
</div>

Primeri

Primer 1: Glavni meni v stranski vrstici

Zahteva: Centralni navigacijski meni za vse strani.

Definicija snippeta:

[main_menu]
<nav class="main-menu">
    <ul>
        <li><a href="?id=start">Domov</a></li>
        <li><a href="?id=sl:docs:start">Projektna dokumentacija</a></li>
    </ul>
</nav>

Uporaba v sidebar.txt:

~~NOCACHE~~
{{wk:snippet>main_menu}}

Rezultat:

  • Meni se pojavi na vseh straneh
  • Prevodi se samodejno uporabijo
  • Spremembe so centralizirane v konfiguraciji

Primer 2: Povezava nazaj z ikono

Zahteva: Enotna povezava nazaj v pod-imenskih prostorih.

Definicija snippeta:

[go_back]
<div class="go-back" style="margin-bottom: 1em;">
    <i class="fa fa-arrow-left" style="margin-right: 0.5em;"></i>
    <a href="javascript:history.back()">de:Zurück|en:Back|sl:Nazaj</a>
</div>

Uporaba v sidebar1.txt:

~~NOCACHE~~
{{wk:snippet>go_back}}
{{wk:acmenu}}

Primer 3: Kontaktna skatla

Zahteva: Veckratno uporabne kontaktne informacije.

Definicija snippeta:

[contact_box]
<div class="contact-box">
    <h4>de:Kontakt|en:Contact|sl:Kontakt</h4>
    <p>
        <i class="fa fa-envelope"></i> info@example.com<br>
        <i class="fa fa-phone"></i> +49 123 456789
    </p>
</div>

Uporaba:

{{wk:snippet>contact_box}}

Primer 4: Vecjezicno podnozje

Zahteva: Podnozje z dinamicnim letom in lokaliziranimi povezavami.

Definicija snippeta:

[footer]
<footer class="site-footer">
    <div class="footer-content">
        <p>&copy; 2025 conf:title</p>
        <nav class="footer-links">
            <a href="?id=kolofon">menu_imprint</a> |
            <a href="?id=zasebnost">menu_privacy</a> |
            <a href="?id=zemljevid">menu_sitemap</a>
        </nav>
    </div>
</footer>

Kako deluje

Procesni cevovod

1. Zaznava sintakse
   └── Najde vse {{wk:snippet>...}} oznake

2. Iskanje snippeta
   └── Išce ime snippeta v konfiguraciji
   └── Izvlece HTML vsebino

3. Obdelava wki18n
   └── Zamenja ... oznake v snippetu
   └── Uporabi trenutni jezik

4. HTML izhod
   └── Vstavi obdelano HTML kodo v stran
   └── Brez dodatnega escaping-a (surov HTML)

Vrstni red obdelave

Prioriteta Vticnik Sort vrednost
1 wki18n 305
2 wksnippet 310
3 wkimage 319
wki18n se obdela pred wksnippet, da prevodi v snippetih delujejo pravilno.

Integracija

Z wki18n

Snippeti podpirajo vse variante sintakse wki18n:

[multilingual_block]
<div class="info">
    greeting
    de:Hallo|en:Hello|sl:Zdravo
    {{wk:lang:en>english_only_text}}
</div>

Z wkacmenu

Tipicna struktura stranske vrstice:

~~NOCACHE~~
{{wk:snippet>go_back}}
{{wk:acmenu}}

Z wkimage

Snippeti lahko vsebujejo tudi slike:

[logo_block]
<div class="logo">
    {{wk:image>wiki:logo.png|width=100%|maxwidth=200}}
</div>

Varnost

Prednosti pred htmlok

Vidik htmlok wksnippet
HTML vnos Prosto v vsaki strani Samo preko skrbnika
Varnostno tveganje Visoko (XSS, vbrizgavanje) Nizko (nadzorovano)
Revizija Tezka (razpršeno) Enostavna (centralno)
Uporabniške pravice Kdorkoli s pravicami urejanja Samo skrbniki

Dobre prakse

  • Ohranjajte JavaScript minimalen - Samo ko je nujno potrebno
  • Zunanje povezave s target=„_blank“ - Varnost z rel=„noopener“
  • Brez obcutljivih podatkov - Brez API kljucev, gesel v snippetih
  • Edinstvena imena - Izberite opisna imena snippetov

Obravnava napak

Vedenje ob napakah

Scenarij Vedenje
Snippet ni najden Izpise [snippet_name not found]
Prazen snippet Ne izpise nicesar
Neveljaven format Ignorira neveljavne vrstice
wki18n napaka Vrne kljuc (nadomestna vrednost)

Razhroščevanje

Ce se pojavijo tezave, preverite:

  • Ali je ime snippeta pravilno zapisano?
  • Ali se definicija zacne z [ime]?
  • Ali je nastavljen za dinamicno vsebino?
  • Ali wki18n oznake delujejo posamezno?

Zmogljivost

Priporocila

Scenarij Priporocilo
Staticni snippeti Pustite predpomnilnik omogocen
Dinamicni snippeti (jezik) Uporabite
Veliki snippeti Razdelite v manjše
Veliko snippetov Ne definirajte vec kot 50

Predpomnjenje

Strani z jezikovno odvisnimi snippeti naj imajo na zacetku, da se prikaže pravilna jezikovna razlicica.

Zgodovina verzij

Verzija Datum Spremembe
2.0.0 2026-01-06 Preimenovanje iz wvdschunk v wvdssnippet
1.0.0 2025-01-06 Zacetna izdaja

Glej tudi


Tehnicna referenca

Razred: syntax_plugin_wksnippet

Datoteka: lib/plugins/wksnippet/syntax.php

Metoda Opis
getType() Vrne substition
getSort() Vrne 310 (po wki18n)
connectTo($mode) Registrira vzorec \{\{wk:snippet>[^}]+\}\}
handle($match, …) Izvlece ime snippeta
render($mode, …) Izda HTML vsebino

Razred: helper_plugin_wksnippet

Datoteka: lib/plugins/wksnippet/helper.php

Metoda Parametri Vrne Opis
getSnippets() - array Naloži vse izsečke iz mape snippets
get() $name string Vrne vsebino izsečka

Razred: admin_plugin_wksnippet

Datoteka: lib/plugins/wksnippet/admin.php

Metoda Opis
html() Izriše skrbniški vmesnik
handle()
sl/wiki/dwe/wksnippet/start.txt · Zadnja sprememba: uporabnika 0.0.0.0