WvdS.DokuWiki.Snippet Vticnik

Vticnik: wvdssnippet
Verzija: 2.0.0
Imenski prostor: lib/plugins/wvdssnippet/
Avtor: Wolfgang van der Stille zeljko.petrusic@outlook.de
Licenca: GPL 2


Definicija

Vticnik wvdssnippet 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

{{wvds: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
wvdsi18n ... 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> | | wvdsi18n oznake | Domov | | Vgrajeni prevodi | de:Besedilo|en:Text | —- ===== Konfiguracija ===== ==== Skrbniške nastavitve ==== Preko Skrbnik → Konfiguracija → wvdssnippet: ^ Nastavitev ^ Tip ^ Opis ^ | enabled | Vklop/Izklop | Omogoci/onemogoci vticnik | | snippets | Textarea | Definicije snippetov v formatu podobnem INI | ==== Primer konfiguracije ==== <code> [main_menu] <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> [go_back]

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

[social_links]

  <a href="https://github.com/myorg" target="_blank"><i class="fa fa-github"></i></a>
  <a href="https://twitter.com/myorg" target="_blank"><i class="fa fa-twitter"></i></a>

[footer] <footer class=„site-footer“>

      &copy; 2025 conf:title
  </div>
  <div class="links">
      <a href="?id=kolofon">menu_imprint</a>
      <a href="?id=zasebnost">menu_privacy</a>
  </div>

</footer> </code>


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~~
{{wvds: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~~
{{wvds:snippet>go_back}}
{{wvds: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:

{{wvds: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 {{wvds:snippet>...}} oznake

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

3. Obdelava wvdsi18n
   └── 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 wvdsi18n 305
2 wvdssnippet 310
3 wvdsimage 319
wvdsi18n se obdela pred wvdssnippet, da prevodi v snippetih delujejo pravilno.

Integracija

Z wvdsi18n

Snippeti podpirajo vse variante sintakse wvdsi18n:

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

Z wvdsacmenu

Tipicna struktura stranske vrstice:

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

Z wvdsimage

Snippeti lahko vsebujejo tudi slike:

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

Varnost

Prednosti pred htmlok

Vidik htmlok wvdssnippet
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
wvdsi18n 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 wvdsi18n 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_wvdssnippet

Datoteka: lib/plugins/wvdssnippet/syntax.php

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

Zasebne metode

Metoda Parametri Vrne Opis
getSnippet() $name string Išce snippet v konfiguraciji
parseSnippets() $config array Razcleni definicije snippetov
processSnippet() $content string
Zuletzt geändert: dne 29.01.2026 ob 09:40

Powered by DokuWiki