Wikipedista:Jvs/Wire

Z Wikipedie, otevřené encyklopedie

Nástroj Wire[editovat | editovat zdroj]

Dobrý den, naprogramoval jsem javascriptový nástroj pro úpravy textu orientovaný na Wikipedii s pracovním názvem Wire.

(Alternativní umístění).

Nástroj prochází textem v editačním okně a na každé pozici aplikuje seznam nahrazovacích pravidel. Umožňuje programátorovi snadno zavádět další pravidla a výjimky z pravidel.

Odzkoušeno ve Firefoxu, Internet Exploreru, Safari. Zatím nefunguje v Opeře. V této chvíli jsou hotovy čtyři „miniprogramy“. Pokud bude zájem, doplním další.

  • interpunkce : oprava mezerování v okolí interpunkčních znamének
  • typografie : uvozovky první úrovně a pomlčky
  • smrskni : stažení více mezer v jednu, ne však na začátku řádku
  • geo : konverze formátu GPS souřadnic z mapy.cz a atlas.cz

--Jvs 11:01, 2. 1. 2008 (UTC)

Díky, je to pěkné, po něčem takovém už několik měsíců toužím v souvislosti s projektem Wikisource, některé funkce určitě budu využívat. Našel jsem však několik chyb nebo míst, která mohou za určitých okolností chyby produkovat:
  • funkce interpunkce narušuje zápis číselných údajů, které obsahují dvojtečku, tečku nebo čárku (12:30, 12.30 a 12,30)
  • vkládání mezer mezi číslo a jednotku naopak může produkovat chybné výsledky, když narazí na správné zápisy např. 35mm film nebo 80letý, které se jakožto adjektivum (pětatřicetimilimetrový, osmdesátiletý) píšou dohromady
  • zatím rozepsaná funkce vkládání nedělitelné mezery za neslabičnou předložku (pravopisná pravidla) a jednopísmennou předložku či spojku (typografická pravidla) má zařazenu i spojku a, ta je však považována za výjimku a zlom řádku za ní nastat může; z používání tvrdé mezery po jednopísmenných předložkách na Wikipedii moc radost nemám, protože to zbytečně znepřehledňuje text a ve srovnání s jinými chybami je to nejméně závažný prohřešek, který by ideálně měly na svá bedra převzít prohlížeče.
Je technicky realizovatelné, aby v případě potřeby skript nenahrazoval v celé textarea, ale až od pozice kurzoru nebo jen ve vyznačeném textu? --Milda 11:54, 2. 1. 2008 (UTC)
Děkuji za odezvu! První problém vyřeším dodatečným pravidlem pro čísla, vkládání mezer mezi číslo a jednotku oddělím do samostatné tabulky. Rovněž omezení na vyznačený blok by mělo jít udělat. --Jvs 12:13, 2. 1. 2008 (UTC)
Publikoval jsem verzi 0.02, která reaguje na Mildovy požadavky, a již funguje i v Opeře. --Jvs 14:27, 2. 1. 2008 (UTC)

Bude skript uvolněn pod některou svobodnou licencí, aby jej bylo možné (s případnými malými úpravami – například možností spustit jen náhradu uvozovek, jen náhradu pomlček atd.) zakomponovat přímo do editační stránky Wikisource, kde pro něj vidím uplatnění? A ještě jedna drobná připomínka taky související s Wikisourcí: v literárních dílech občas bývá pomlčka i jinde než mezi dvěma slovy nebo čísly, například na začátku a konci řádku, eventuelně mezi začátkem (koncem) řádku a pomlčkou může být některé interpunkční znaménko z množiny uvozovka, tečka, čárka, středník otazník, vykřičník; dovedu si představit i výskyt typu „Část přímé řeči –“ a nedomluvil. bylo by možné upravit nebo přidat další regexpy toto zohledňující? Regexpy sice znám z Perlu, grepu a sedu, ale JavaScript je pro mě španělská vesnice, kde mohu maximálně přenášet cizí hotové kusy kódu nebo měnit konkrétní parametry, pokud nechci riskovat, že někam zanesu chybu, kterou nebudu umět najít a odstranit. --Milda 07:42, 4. 1. 2008 (UTC)

Ano, plánuji skript uvolnit pod svobodnou licencí. Ale může to být v různých podobách:
  • Prosadit zakomponování skriptu přímo do editační stránky.
  • Nechat volbu na uživateli (využitím rozšíření en:Greasemonkey).
  • Mám ještě verzi (pojmenoval jsem ji fire), která je určena pro lokální spouštění a je napsaná v Pythonu. Také by měla pracovat o něco rychleji. Ta by možná byla pro projekt wikisource vhodnější.
--Jvs 13:05, 4. 1. 2008 (UTC)

Další možnost jak to "nechat na uživateli" je vyrobit ten skript tak, aby se dal zakomponovat do osobního monobook.js (například můj se nachází na Wikipedista:Křžut/monobook.js. Přesněji řečeno nacházel by se, kdybych tam nějaký vlastní skript měl) Výhoda je že to funguje ve všech prohlížečích i bez nutnosti mít něco jako greasemonkey --Křžut 18:24, 8. 1. 2008 (UTC)

Se zprovozněním rozšíření Gadgets (česky „Udělátka“) se nabízí ještě vhodnější způsob, jak nástroj Wire poskytnout uživatelům: skript by se přenesl do jmenného prostoru MediaWiki, musely by se tam dát i patřičné příkazy pro přidání tlačítek nad editační okno, vytvořit deklarace jakožto udělátka a uživatelé by si podle svého zájmu v osobním nastavení už jen zatrhli příslušný checkbox, že chtějí aby se jim tento skript natahoval. Pak není potřebná žádná editace osobního monobooku desítek uživatelů. Líbilo by se to takto i autorovi skriptu? --Milda 21:23, 8. 1. 2008 (UTC)

„Udělátka“ už tedy jsou na české wiki dostupná?
Publikoval jsem poněkud optimalizovanou verzi Wire 0.06. Předtím bylo Wire pro dlouhé soubory téměř nepoužitelné. Budu na tom dále pracovat. --Jvs 09:10, 13. 1. 2008 (UTC)

Ano jsou, ale zatím je bohužel nikdo nezprovoznil, viz MediaWiki diskuse:Gadgets-definition.--Sevela.p 15:19, 13. 1. 2008 (UTC)

Wire jako gadget?[editovat | editovat zdroj]

O upravení Wire do formy gadgetu budu uvažovat tehdy, až (1) vzroste počet uživatelů a (2) komunita dojde k určitému konsensu ohledně podporovaných funkcí (jde třeba o vkládání nedělitelných mezer). --Jvs 13. 1. 2011, 13:30 (UTC)

Vložení Wire do monobook.js[editovat | editovat zdroj]

Jak vložit do monobooku? Viz zde: [1]. Úprava spočívá v tom, že na konci místo

 wire.init();

je třeba použít

 addOnloadHook(function() { wire.init(); });

--Jvs 25. 11. 2011, 11:21 (UTC)

Poznámka: Možnosti rozšiřování funkčnosti[editovat | editovat zdroj]

(Postupně rostoucí flexibilita)


  • Gadget

  • Import z cizího monobooku - viz např. [2]
    • Možnost uživatelské parametrizace (výběru požadovaných pravidel)

Postup: Do svého svého monobook.js vložte kód:

importScriptURI("//cs.wikipedia.org/w/index.php?title=Wikipedista:Jvs/wire.js&action=raw&ctype=text/javascript&dontcountme=s");

  • Ve vlastním monobooku
    • Možnost vlastních úprav

  • Jako user script
    • Možnost vlastních úprav
    • Výhody: snadno obslouží všechny MediaWiki projekty
    • Nevýhoda: závislost na počítači, ne všechny prohlížeče podporují user script

Nová funkce: Převod citačních šablon[editovat | editovat zdroj]

  • Dostupnost: od verze 0.16
  • Příklad užití: [3]
  • Nepřevedené parametry jsou označeny <!--WIRE:nepřevedeno:-->
  • Automaticky doplněné parametry jsou označeny <!--WIRE:doplněno:-->

Překladové řetězce jsou definovány ve slovnících

  • citationMetaDict,
  • citationSupplyParams,
  • citationDict

ve wire.js.