Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Usage  





2 Documentation transcluded from the template  





3 Parameters  





4 Examples  














Module:Clade/hidden






Tiếng Vit

 

Edit links
 









Module
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 




In other projects  



Wikiversity
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 

< Module:Clade

Clade System
Templates and modules for generating cladograms
Modules
Related templates
Help
Basics
  • Using clade
  • Customise brackets
  • Table structure
Tips
  • Newick
  • Annotations
  • Alignment
Technical help

This module contains the code for {{Clade hidden}}

Useful help page:


Usage

[edit]

{{#invoke:Clade|hidden}}


Documentation transcluded from the template

[edit]

Creates an interactive clade element that is collapsible. The initial state can be collapsed (hidden) or expanded (visible). Interactivity is achieved by clicking appropriate symbols in the cladogram (e.g. ⊞ or ⊟) or custom interactive elements can be added externally with {{clade toggle}}.

This feature is intended to be used sparsely on large clagograms where the whole structure cannot be seen in the screen window.

Parameters

[edit]

Parameters as {{clade}} with the addition of the following:


Development note: The behaviour of the hidden element when in mobile mode or with javascript disable is controlled in {{clade hidden/styles.css}}. The currentl behaviour is to hide the symbols and leave the expanded content. The following CSS code can hide the content in these modes. However there are currently a couple of issues: width of labels on collapsed elements if on dummy clade; initial state of content when |expanded=true.

table.clade td.clade-interactive  div.mw-collapsible-content { display:none; }

Examples

[edit]
CodeOutput
{{Clade
|label1=root
|1={{Clade
   |1=Unhidden Leaf
   |label2=Hidden clade
   |2={{Clade hidden  |id=1|1=Leaf1
      |2=Leaf2
      }}
   }}
}}
root

Unhidden Leaf

Hidden clade

Leaf1

Leaf2

{{Clade
|label1=root
|1={{Clade
   |1=Unhidden Leaf
   |label2=Collapsible clade 
   |2={{Clade hidden 
      |id=2<!-- clade hidden parameters -->
      |expanded=true
      |mode=right 
      |expand-text=(expand text) 
      |collapse-text=(collapse text)
      |expand-symbol=&#10753; 
      |collapse-symbol=&#10754;
      
      |1=Leaf1   <!-- standard clade parameters -->
      |2=Leaf2
      }}
   }}
}}
root

Unhidden Leaf

Collapsible clade
⨁(expand text)

Leaf1

Leaf2

⨂(collapse text)

local p = {}

function p.hidden(frame)
    
    local id = mw.getCurrentFrame():getParent().args['id'] or ""
    local mode = mw.getCurrentFrame():getParent().args['mode'] or "right"
    local expandSymbol = mw.getCurrentFrame():getParent().args['expand-symbol'] or "&#8862;"
    local collapseSymbol = mw.getCurrentFrame():getParent().args['collapse-symbol'] or "&#8863;"
    local expandText = mw.getCurrentFrame():getParent().args['expand-text'] or ""
    local collapseText = mw.getCurrentFrame():getParent().args['collapse-text'] or ""
    local initialStateExpanded = mw.getCurrentFrame():getParent().args['expanded'] or "false"
    if mw.getCurrentFrame():getParent().args['expand-symbol'] == "none" then
        expandSymbol = expandText
    else
     expandSymbol = expandSymbol .. expandText
    end
    if mw.getCurrentFrame():getParent().args['collapse-symbol'] == "none" then
        collapseSymbol = collapseText
    else
  collapseSymbol = collapseSymbol .. collapseText
    end
    
    -- default is content collapsed
    local contentState = " mw-collapsed" -- class to collapse content at start
    local collapseSymbolState = " mw-collapsed"
    local expandSymbolState = ""
    if initialStateExpanded  == "true" or initialStateExpanded  == "yes" then
       contentState = ""
       collapseSymbolState =  ""
       expandSymbolState = " mw-collapsed" 
    end
     
 
    -- collapsible element containing the EXPAND SYMBOL and/or text
    --local expandSymbolString = '<td class="nomobile" style="padding:0 0 0.0em 0;">'  -- mobile exclusion no longer necessary
    local expandSymbolString = '<td style="padding:0 0 0.0em 0;">' 
                .. '<div class="mw-collapsible' .. expandSymbolState .. '" id="mw-customcollapsible-expandSymbol' .. id .. '">'
                .. '<div class="mw-collapsible-content mw-customtoggle-expandSymbol' .. id .. '">'
                .. '<div class="mw-customtoggle-myClade' .. id 
                ..             ' mw-customtoggle-collapseSymbol' .. id 
                ..             ' mw-customtoggle-expandSymbol' .. id 
                ..    '" style="font-size:100%;">' .. expandSymbol .. '</div>'
                .. '</div></div></td>'
    
    -- collapsible element containing the CLADE CONTENT 
    local clade = require( 'Module:Clade' )
    local contentString = '<td style="padding:0;" class="clade-interactive" >'
                .. '<div class="mw-collapsible' .. contentState .. '" id="mw-customcollapsible-myClade' .. id .. '>'
                .. '<div class="mw-collapsible-content mw-customtoggle-NOT_ON_CONTENT" >' -- don't toggle on the content
                
                .. '\n' .. clade.main(frame)  -- important to start wikitext tables on new line
                .. '</div></div></td>'
    
    -- collapsible element containing the COLLAPSE SYMBOL and/or text
    --local collapseSymbolString = '<td class="nomobile" style="padding:0 0 0.0em 0;">' -- mobile exclusion no longer necessary
    local collapseSymbolString = '<td style="padding:0 0 0.0em 0;">'
                .. '<div class="mw-collapsible' .. collapseSymbolState .. '" id="mw-customcollapsible-collapseSymbol' .. id .. '">'
                .. '<div class="mw-collapsible-content mw-customtoggle-collapseSymbol' .. id .. '" >'
                .. '<span class="mw-customtoggle-expandSymbol' .. id 
                            .. ' mw-customtoggle-myClade' .. id 
                            .. ' mw-customtoggle-collapseSymbol' .. id 
                            .. ' " style="font-size:100%;" >' .. collapseSymbol .. '</span>'
                            .. '</div></div></td>'


 local tableStyle = frame.args.style or ""
 if tableStyle == '{{{style}}}' then tableStyle = "" end
  local cladeString = '<table style="border-spacing:0;margin:0;'..tableStyle ..'"><tr>'
    cladeString = cladeString .. expandSymbolString 
    if mode == "left" then
     cladeString = cladeString .. collapseSymbolString
    end
    cladeString = cladeString .. contentString 
    if mode == "right" then
     cladeString = cladeString .. collapseSymbolString
    end
    -- Note: if we want collapse string left and right it needs an extra element with a different id
    cladeString = cladeString ..  '</tr></table>'


return p.templateStyle( frame, "Clade hidden/styles.css" ) .. cladeString
end

function p.toggle(frame)
 
 if 1==2 then return 'some text' end
 
 --local toggleSymbol = 'toggle all'
 local toggleSymbol = mw.getCurrentFrame():getParent().args['button'] or ""

 local toggleString = '<div class="'
                
    local i=0
    while  i < 20 do  -- limit on number of toggle elements controlled by the trigger button
     i = i + 1 -- so we start with 1
  local target = mw.getCurrentFrame():getParent().args['id'..tostring(i)] 
     
     -- add classes for the three elements of each target: expand symbol, collapse symbol and contents
     if target ~= nil then
            toggleString = toggleString .. ' mw-customtoggle-myClade' .. target 
                ..             ' mw-customtoggle-collapseSymbol' .. target 
                ..             ' mw-customtoggle-expandSymbol' .. target 
        end
    end
  
 
 toggleString = toggleString  ..  '">' .. toggleSymbol .. '</div>'

  return toggleString
end


-- <templatestyles src="Clade hidden/styles.css"></templatestyles>
function p.templateStyle( frame, src )
   return frame:extensionTag( 'templatestyles', '', { src = src } );
end

return p

Retrieved from "https://en.wikipedia.org/w/index.php?title=Module:Clade/hidden&oldid=1228433472"

Categories: 
Modules in beta
Templates using TemplateStyles
 



This page was last edited on 11 June 2024, at 06:09 (UTC).

Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



Privacy policy

About Wikipedia

Disclaimers

Contact Wikipedia

Code of Conduct

Developers

Statistics

Cookie statement

Mobile view



Wikimedia Foundation
Powered by MediaWiki