Malldiskussion:Bråk

Senaste kommentaren: för 12 år sedan av Simsalabim i ämnet Refaktorisering?

CSS redigera

Jag bytte från sup-sub-small-big till märkning med span och CSS-stilar enligt mönster av tyska mallen. Det gav fördelen att radavståndet inte påverkas av om det finns bråk på raden. Detta var mycket fult med gamla definitionen av mallen. Men nu ser jag i webbläsaren Opera att täljaren ibland görs osynlig. Är det Operas eller mallens fel? Kan det vara "line-height: 0" som spökar? --LA2 20 juni 2010 kl. 02.50 (CEST)Svara

Refaktorisering? redigera

När jag för ett tag sedan redigerade denna sida så behövde jag skriva datumuttrycket 20219 där det första datumet är ett ofullständigt bråk med strecket och nämnaren utelämnade. Efter inspektion av denna mall så lyckades jag få till det hiskeliga <span style="position: relative; bottom: 0.3em; font-size: 0.7em; line-height: 70%;">20</span>—{{bråk|21|9}} och det fick mig att fundera på om man kunde refaktorisera koden för denna mall så att den (i princip) utför expansionen

{{bråk|21|9}} → {{bråk-täljare|21}}⁄{{bråk-nämnare|9}}

där den nya mallen {{bråk-täljare}} skriver ut täljaren och den nya mallen {{bråk-nämnare}} skriver ut nämnaren. Då skulle jag kunna skriva mitt datumuttryck mycket snyggare som {{bråk-täljare|20}}—{{bråk|21|9}}. Nu är jag fullt medveten om att problemet som jag hade inte förekommer så ofta så detta kanske är en för omständig lösning för att lösa ett alltför obetydligt problem. Vad säger ni, bu eller bä? -- Simsalabim 26 juni 2011 kl. 22.08 (CEST)Svara

Specialmallarna {{bråk-täljare}} och {{bråk-nämnare}} är ju inget problem att skapa om du behöver dem. Det som gör mig litet tveksam till att ändra i den här mallen så att den anropar dessa specialmallar är begränsningen i antalet transkluderingar (w:en:Wikipedia:Template limits) som kan läggas in på en sida, vilket har drabbat några långa sidor här. Nu är jag inte säker på hur mycket denna ändring skulle påverka detta men undrar om förenklingen av koden ger så mycket att det uppväger eventuella problem?--Thurs 27 juni 2011 kl. 01.17 (CEST)Svara
Användande av <pages index= verkar väldigt ofta lösa det här med Template-limits i transkluderade sidor. Det löser dock sannolikt inte de fall, där det finns väldigt många mallar i en enda "Sida:". -- Lavallen 27 juni 2011 kl. 07.16 (CEST)Svara
Visst, att bara skapa täljar- och nämnarmallarna är inga problem. Den enda risk med att inte koppla ihop mallarna är om någon i framtiden börjar mixtra med bråk-mallen utan att tänka på att samma ändringar behöver införas på de andra mallarna (men det kanske kan avhjälpas med en kommentar i mallkoden).
Vad gäller mallens storlek vid transklusion så tog jag och skapade en testsida (i en testwiki) som bara innehöll ett anrop till mallen {{bråk}}, dels för nuvarande mall, dels för den refaktoriserade mallen. Genom att titta på html-kommentaren "NewPP limit report" som systemet generar för artikelsidor så fick jag följande siffror:
Wikikod Nuvarande mall Refaktoriserad mall
{{bråk|1}} Preprocessor node count: 13/1000000

Post-expand include size: 462/2097152 bytes
Template argument size: 1/2097152 bytes
Expensive parser function count: 0/100

Preprocessor node count: 21/1000000

Post-expand include size: 613/2097152 bytes
Template argument size: 3/2097152 bytes
Expensive parser function count: 0/100

{{bråk|1|2}} Preprocessor node count: 15/1000000

Post-expand include size: 462/2097152 bytes
Template argument size: 3/2097152 bytes
Expensive parser function count: 0/100

Preprocessor node count: 23/1000000

Post-expand include size: 613/2097152 bytes
Template argument size: 5/2097152 bytes
Expensive parser function count: 0/100

{{bråk|1|2|3}} Preprocessor node count: 15/1000000

Post-expand include size: 368/2097152 bytes
Template argument size: 4/2097152 bytes
Expensive parser function count: 0/100

Preprocessor node count: 23/1000000

Post-expand include size: 519/2097152 bytes
Template argument size: 6/2097152 bytes
Expensive parser function count: 0/100

Som synes växer mallen från 462 till 613 bytes för det vanligaste typfallet {{bråk|1|2}}. Till detta får man räkna med att "Expansion depth" ökar med ett snäpp. Alright, jag släpper detta och nöjer mig med {{bråk-täljare}} ({{bråk-nämnare}} kan skapas vid behov).
[En sidokommentar: Om man vill jaga "bytes" så kan man ifrågasätta det förnuftiga i att låta {{bråk|2}} ge stambråket 12 istället för att insistera på att man ska skriva {{bråk|1|2}}. Utan denna finess så tas en nivå i expansionen bort och minskar mallens storlek (Post-expand include size) från 462 till 308 bytes (och från 613 till 459 bytes i refaktoriseringen). Fast det är inget vi kan ändra på nu.] -- Simsalabim 27 juni 2011 kl. 12.43 (CEST)Svara
Tillbaka till sidan "Bråk".