„Wikipedia Diskussion:Lua/Modul/PageTree“ – Versionsunterschied
Kelti (Diskussion | Beiträge) |
Kelti (Diskussion | Beiträge) |
||
Zeile 147: | Zeile 147: | ||
</pre> |
</pre> |
||
--[[Benutzer:Kelti|Kelti]] ([[Benutzer Diskussion:Kelti|Diskussion]]) 08:06, 6. Mai 2015 (CEST) |
--[[Benutzer:Kelti|Kelti]] ([[Benutzer Diskussion:Kelti|Diskussion]]) 08:06, 6. Mai 2015 (CEST) |
||
Wäre es in Ordnung, für das Speichern des Zustandes des Baums die HTML5-Objekte 'localStorage' oder 'sessionStorage' zu verwenden? --[[Benutzer:Kelti|Kelti]] ([[Benutzer Diskussion:Kelti|Diskussion]]) 11:50, 9. Mai 2015 (CEST) |
|||
== Englische Wikipedia == |
== Englische Wikipedia == |
Version vom 9. Mai 2015, 11:51 Uhr
Vorlagenprogrammierung | Diskussionen | Lua | Unterseiten | |||
Modul | Deutsch | English
|
Modul: | Dokumentation |
Folding
Ist es machbar, das Erscheinungsbild des Trees dahingehend zu erweitern, dass - analog zum Directory-Baum eines Dateimanagers - Subtrees zugeklappt und wieder aufgeklappt werden können? Wie könnten die Grundzüge einer Realisierung aussehen? Für das Inhaltsverzeichnis eines Wikibooks wäre das ausgesprochen hilfreich. --Kelti (Diskussion) 18:50, 29. Apr. 2015 (CEST)
- Einige Infos:
- Lua produziert wie auch jede Vorlage statischen Code. Das heißt: das Aussehen jeder einzelnen Seite ist fest vereinbart.
- Um dynamische Effekte zu erzielen, müsste zusätzlich ein JavaScript eingesetzt werden.
- Das ist prinzipiell möglich. Sowas habe ich auch schon längst im Hinterkopf.
- Dazu müsste jede Seite den vollständigen Baum erhalten, aber die Felder, die momentan noch eingeklappt sind, müssten über ein vom Seitenlink gesondertes Schaltelement sichtbar gemacht werden; oder könnten unsichtbar gemacht werden.
- Ein Unterseitensystem wie für Wikibooks ist jetzt schon durchaus möglich.
- Gehe mal auf Wikipedia:Technik/Text/Edit/VisualEditor/Rückmeldungen und klick dich zu dessen nachbarseiten oder zur jeweils übergeordneten Seite.
- Es lässt sich auch von einem Bot generieren; Wikipedia:Technik/Sitemap kommt von diesem Bot.
- VG --PerfektesChaos 19:25, 29. Apr. 2015 (CEST)
Hier eine Beispiel-Seite, die mittels eines Javascriptes das gewünschte Erscheinungsbild erzeugt. Solche Seiten können vom Modul PageTree oder von einem Template erzeugt und dann in diversen Seiten eingebunden werden. Es fehlt allerdings noch ein wichtiges Detail: wie kann der aktuelle Zustand des Baums (also: welche Subtrees sind eingeklappt und welche nicht) von einer Seite zur nächsten weitergereicht werden? Kann mir jemand auf die Sprünge helfen?
<html> <head> <script type="text/javascript"> <!-- function toggleSubtree(p_event) { /* Purpose: Create a look-and-feel which is similar to that of a file manager. The function toggles the visibility of subtrees by toggling the 'display' propery. She expects a fix recursive structure of HTML-elements, where subtrees belong to their preceding 'div' element: <tree> <div>..<a href="...">..</a></div> <div>..<a href="...">..</a></div> <tree> <div>..<a href="...">..</a></div> ... </tree> <div>..<a href="...">..</a></div> </tree> Non-leaf-nodes are marked with a little toggling triangle before the link text. This triangles are part of the HTML, not of a CSS 'before' rule. CSS 'before' rules are not part of Javascript. Hence they cannot be chanced dynamically. */ // process nothing but click events (mouse and touchscreen) if (p_event.type != 'click' && p_event.type != 'dblclick' && p_event.type != 'touchenter') return; // click event has 'bubbled up' to its parent TREE element. Get dispatcher of the event. var div = p_event.target; // it should be the DIV element if (typeof(div) == 'undefined' || div == null || div.tagName != 'DIV') return; // get CData from div element text = div.firstChild; if (typeof(text) == 'undefined' || text == null || text.nodeType != Node.TEXT_NODE) return; var val = text.nodeValue; // do nothing, if it's ' '. This 'div' element has only a link but no subtree if (val == '\u00A0') return; // navigate to the FOLLOWING 'tree' element var subTree = div.nextElementSibling; if (typeof(subTree) == 'undefined' || subTree == null || subTree.tagName != 'TREE') return; // perform toggling of the 'display' property of the 'tree' element. Don't use // the 'visibility' property. 'visibility' doesn't release the occupied space. if (val == '\u25B8') { text.nodeValue = '\u25BE'; subTree.style.display = 'block'; } else { text.nodeValue = '\u25B8'; subTree.style.display = 'none'; } } //--> </script> <style type="text/css"> /* U+25aa BLACK SMALL SQUARE (smaller than the following two) U+25b8 BLACK RIGHT-POINTING SMALL TRIANGLE U+25be BLACK DOWN-POINTING SMALL TRIANGLE */ tree { display: block; /* 'relative' is neccessary to get an anchor for the 'a'-elements */ position: relative; } tree tree { /* indentation per level */ margin-left: .7em; } div a { /* start position of text (with or without link) */ position: absolute; left: .7em; /* the div-element MUST contain any non-whitespace text. Why??? */ } a { /* no underscore for links */ text-decoration:none; color:inherit; } </style> </head> <body> <tree onclick="toggleSubtree(event);" ondblclick="toggleSubtree(event);"> <div> <a href="www.1.com">Chapter 1, no sub-chapter</a></div> <div>▾<a href="www.2.com">Chapter 2</a></div> <tree> <div> <a href="www.2_1.com">Chapter 2.1</a></div> <div> <a href="www.2_2.com">Chapter 2.2</a></div> <div> <a href="www.2_3.com">Chapter 2.3</a></div> <div>▾<a href="www.2_4.com">Chapter 2.4</a></div> <tree> <div> <a href="www.2_4_1com">Chapter 2.4.1</a></div> <div> <a href="www.2_4_2.com">Chapter 2.4.2</a></div> <div>▾<a href="www.2_4_3.com">Chapter 2.4.3</a></div> <tree> <div> <a href="www.2_4_3_1.com">Chapter 2.4.3.1</a></div> <div> <a href="www.2_4_3_2.com">Chapter 2.4.3.2</a></div> </tree> </tree> <div> <a href="www.2_5.com">Chapter 2.5</a></div> <div> <a href="www.2_6.com">Chapter 2.6</a></div> </tree> <div> <a href="www.3.com">Chapter 3</a></div> <div>▾<a>Chapter 4 (without introductory text, hence no link)</a></div> <tree> <div> <a href="www.4_1.com">Chapter 4.1</a></div> </tree> </tree> </body> </html>
--Kelti (Diskussion) 08:06, 6. Mai 2015 (CEST)
Wäre es in Ordnung, für das Speichern des Zustandes des Baums die HTML5-Objekte 'localStorage' oder 'sessionStorage' zu verwenden? --Kelti (Diskussion) 11:50, 9. Mai 2015 (CEST)
Englische Wikipedia
Warum ist das Modul nicht auf der englischen Wikipedia verfügbar? Gibt es prinzipielle Probleme oder ist es lediglich noch nicht transferiert worden? --Kelti (Diskussion) 18:50, 29. Apr. 2015 (CEST)
- Warum sollte es dort verfügbar sein?
- Auf die enWP ging von hier aus nur en:Module:TemplatePar und en:Module:TemplateDataGenerator.
- Nach eo gingen immerhin schon drei: eo:Modulo:URIutil, eo:Modulo:URLutil, eo:Ŝablono:LuaModuleDoc.
- Der Austausch von Modulen ist nicht so häufig, und viele sind auch nicht internationalisiert geschrieben.
- VG --PerfektesChaos 19:25, 29. Apr. 2015 (CEST)