Dyskusja modułu:Sprawdź

Treść strony nie jest dostępna w innych językach.
Z Wikipedii, wolnej encyklopedii

Obsługa pustej wartości (modyfikator "?") dla wyrażenia regularnego (^...$)[edytuj kod]

Pisane z głowy, więc kod może nie działać tak jak powinien:

local pattern = string.match(kind,"^(^.-$)!?$")
local pattern? = string.match(kind,"^(^.-$)%?$")
if (pattern and not mw.ustring.match(v, pattern))
 or (pattern? and not (#v == 0 or mw.ustring.match(v, pattern?))) then
  table.insert(invalid, argName(k))
elseif (#v > 0) ...

--MarMi wiki (dyskusja) 18:16, 20 kwi 2021 (CEST)[odpowiedz]

  • @MarMi wiki Chodzi o implementację sprawdzania czy pole pasuje do wzoru lub jest puste? Ja to rozwiązuję tak, że jeśli pole puste jest prawidłowe to nie podstawiam wzoru do {{#invoke:Sprawdź|Parametry}}. Wyrażenia regularne Lua są dosyć prymitywne. Nie widzę powodu aby je nadto promować. Mamy szablony, w których zamiast jednego sztywnego wzoru dobierany jest dedykowany wzór w zależności od wartości innego parametru. Zobacz źródła tutaj albo tutaj. Ich analiza w celu na przykład uzupełnienia lub poprawienia błędów to naprawdę niezła łamigłówka. Oczywiście zawsze możesz spróbować dodać ten kod samodzielnie. Paweł Ziemian (dyskusja) 20:04, 20 kwi 2021 (CEST)[odpowiedz]
    Tak, zapomniałem o istnieniu 1= jako opcjonalnego parametru.
    Skoro już i tak wywołuje się moduł, to czemu by przy okazji nie skorzystać z regexów?
    |2=^%-?%d$?}} jest bardziej zwarte od |2={{#if:{{{2|}}}|^%-?%d$}} (zakładając że działało by tak samo), chociaż z podświetlaniem składni da się jeszcze to odczytać.
    Przydała by się kontrola parametrów w samym module, bo zdarzało się że zapominałem o użyciu ^ i/lub $, przy ^...$? wydawało się że test jakoś działa, a tak naprawdę był ignorowany. MarMi wiki (dyskusja) 00:35, 21 kwi 2021 (CEST)[odpowiedz]
    Argument za kontrolą parametrów - albo przynajmniej za rozpoznawaniem błędów zwracanych przez szablony:
    {{#exprːln0}} rzuca błędem Błąd w wyrażeniu: nieprawidłowy argument funkcji ln – mniejszy lub równy 0
    |{{#invoke:Sprawdź|Parametry|=błąd błąd|1={{#exprːln0}}}}| połyka błędy szablonów w 1=: ||. MarMi wiki (dyskusja) 01:43, 27 kwi 2021 (CEST)[odpowiedz]
    Szybki fragment kodu:
    			if mw.ustring.match(v, 'class="error">') then
    				table.insert(invalid, k)
    				table.insert(unknown, v)
    			end
    
    MarMi wiki (dyskusja) 02:40, 27 kwi 2021 (CEST)[odpowiedz]
  • Użycie jednego ze znaków "^" lub "$" może być zamierzone, więc komunikat o błędzie nie jest wskazany. ~malarz pl PISZ 09:48, 21 kwi 2021 (CEST)[odpowiedz]
    Może się mylę, ale dla funkcji "parametry" inny tekst, nie pasujący do wzorca któregoś z testów (zmienna "kind"), jest po prostu ignorowany? Czy jednak jest do czegoś używany? MarMi wiki (dyskusja) 18:23, 21 kwi 2021 (CEST)[odpowiedz]

Klasa problemy a widoczność w przestrzeni głównej (ns:0)[edytuj kod]

Jeśli dobrze zrozumiałem (przyglądając się jednemu z szablonów cytuj xxx), to komunikaty o błędach (suffix) (klasa stylów problemy) nie będą widoczne w przestrzeni głównej (poza podglądem strony). Czy można dodać klasę (np. z display:inherit!important; - {{#invoke:Sprawdź|parametry|=zawsze-pokazuj}}), albo po prostu dodatkową opcję która by to przełączała (ale bez stylu chyba się i tak nie obejdzie)? (Jeśli to byłaby klasa, to może warto by też dodać możliwość podawania kilku klas: ="klasa1 ... klasaN" kategoria).

Ewentualnie czy któraś klasa stylów z Mediawiki:common.css (lub innych, o których nie wiem) z display:xxx!important; by się do tego nadawała? Bo niektóre z nich potrafią mieć inne ustawienia początkowe niż te na stronie (np. cite-name-before jest z none, a w artykule jest inline): cite-name-before, cite-name-after, cite-name-full, cite-name-initials, cite-at-al. MarMi wiki (dyskusja) 23:25, 30 maj 2021 (CEST)[odpowiedz]

@MarMi wiki (Sorki za późną odpowiedź. Umknęło mi.) Miliony osób zaglądających na Wikipedię to przeważnie czytelnicy. Z ich punktu widzenia te czerwone komunikaty to nic nie znaczący śmietnik, który zaburza odczytywanie informacji. Niewielka garstka zalogowanych użytkowników, która byłaby zainteresowana uwidacznianiem tych treści nawet w przestrzeni głównej może skorzystać z Specjalna:Moja strona/common.css aby to włączyć. Stosowny opis jest dodany w opisie kategorii, która jest przy tej okazji dodawana. Zobacz na przykład opis w Kategoria:Szablon cytuj do sprawdzenia. Przy cite-name-* sugerowałbym nie manipulować, bo to może zepsuć działanie {{cytuj}}. Paweł Ziemian (dyskusja) 19:01, 6 cze 2021 (CEST)[odpowiedz]
W razie czego (dla zainteresowanych) jest na to lepszy(?) sposób:
TemplateStyles (w Szablonach), w Modułach można to zrobić przez:
return mw.getCurrentFrame():extensionTag{
		name = 'templatestyles', args = { src = 'Module:Sidebar games events/styles.css' }
	} .. tostring(root)
-- albo
return table.concat({frame:extensionTag{
		name = 'templatestyles', args = { src = 'Module:Sidebar games events/styles.css' }
	}, tostring(root)})
MarMi wiki (dyskusja) 20:45, 6 cze 2021 (CEST)[odpowiedz]

Pusty kod w linii 312?[edytuj kod]

Czy ten warunek Moduł:Sprawdź#L-312 coś robi? Bo wygląda na niepotrzebny. MarMi wiki (dyskusja) 01:21, 22 cze 2021 (CEST)[odpowiedz]