From GamingWiki
Jump to: navigation, search
 
(8 intermediate revisions by the same user not shown)
Line 7: Line 7:
 
   HEADER
 
   HEADER
  
   If there is a header, we create a full-width TH tag.
+
   If there is a header specified, we create a full-width TH tag.
-->{{#if:{{{header|}}}|<nowiki />
+
-->{{#if:{{{header<includeonly>|</includeonly>}}}|<nowiki />
 
! colspan="{{#var:columns}}" {{!}} {{{header}}}  
 
! colspan="{{#var:columns}}" {{!}} {{{header}}}  
 
}}<!--
 
}}<!--
 +
  
 
   SUBHEAD
 
   SUBHEAD
Line 20: Line 21:
 
-->}}<!--
 
-->}}<!--
 
-->{{#vardefine: subheadcols | <!--
 
-->{{#vardefine: subheadcols | <!--
   -->{{#ifeq: {{{subhead|M_NUL}}}  | M_NUL |0| {{#expr:{{#var:columns}}-{{#var:rheadcols}}}} }}<!--
+
   -->{{#ifeq: {{{subhead|<includeonly>M_NUL</includeonly>}}}  | M_NUL |0| {{#expr:{{#var:columns}}-{{#var:rheadcols}}}} }}<!--
 
-->}}<!--
 
-->}}<!--
  
 +
-->{{#if:{{{header<includeonly>|</includeonly>}}}|{{Character sheet/section subhead|{{{header}}}| columns = {{#var:columns}} }} }}<!--
 
-->{{#ifeq: {{#var:subheadcols}} |0| |<nowiki />
 
-->{{#ifeq: {{#var:subheadcols}} |0| |<nowiki />
 
{{!}}-
 
{{!}}-
Line 34: Line 36:
 
   DATA
 
   DATA
  
We may have one, two or three label-data pairs.
+
We may have one, two or three label-data pairs (left, centre, right).
 +
We construct a hash, datalinehash, which maps each row number to data for the given row. The row data are serialized hashes. To generate these sub-hashes we look through all of the args to this template and find the ones that end in numbers. These are then saved as properties of the corresponding entry in datalinehash.
  
 
-->{{#hashdefine: datalinehash }}<!--
 
-->{{#hashdefine: datalinehash }}<!--
 
-->{{#forargs: | keynum | value | <!--
 
-->{{#forargs: | keynum | value | <!--
 +
 +
      Split the param (keynum) into a key name and a line number:
 
   -->{{#vardefine: key | {{#rmatch: {{#var:keynum}} | (\D+)(\d+) | $1 }} }}<!--
 
   -->{{#vardefine: key | {{#rmatch: {{#var:keynum}} | (\D+)(\d+) | $1 }} }}<!--
 
   -->{{#vardefine: num | {{#rmatch: {{#var:keynum}} | (\D+)(\d+) | $2 }} }}<!--
 
   -->{{#vardefine: num | {{#rmatch: {{#var:keynum}} | (\D+)(\d+) | $2 }} }}<!--
Line 50: Line 55:
 
   -->{{#hashreset: singledataline}}<!--
 
   -->{{#hashreset: singledataline}}<!--
 
-->}}<!-- end forargs
 
-->}}<!-- end forargs
 +
 +
Now datalinehash should look something like:
 +
 +
  1 => "label;css;some label,css,data;css;data for line 1"
 +
  2 => "llabel;css;left-side label,css,ldata;css;line 2 left,css,rdata;css;line 2 right"
 +
  etc.
 +
  
 
   Now each value of datalinehash can be parsed into a new hash. We want it sorted by
 
   Now each value of datalinehash can be parsed into a new hash. We want it sorted by
Line 66: Line 78:
 
   -->}}<!--
 
   -->}}<!--
 
   -->{{#ifeq: {{#hashvalue: thedataline | label |M_NUL}}-{{#hashvalue: thedataline | data |M_NUL}} | <!--
 
   -->{{#ifeq: {{#hashvalue: thedataline | label |M_NUL}}-{{#hashvalue: thedataline | data |M_NUL}} | <!--
 +
      --> M_NUL-M_NUL || {{#vardefine: groupcount | {{#expr: {{#var:groupcount}}+1}} }} <!--
 +
  -->}}<!--
 +
  -->{{#ifeq: {{#hashvalue: thedataline | clabel |M_NUL}}-{{#hashvalue: thedataline | cdata |M_NUL}} | <!--
 
       --> M_NUL-M_NUL || {{#vardefine: groupcount | {{#expr: {{#var:groupcount}}+1}} }} <!--
 
       --> M_NUL-M_NUL || {{#vardefine: groupcount | {{#expr: {{#var:groupcount}}+1}} }} <!--
 
   -->}}<!--
 
   -->}}<!--
Line 75: Line 90:
 
   -->{{#ifeq:{{#var:groupcount}}|0||<!--
 
   -->{{#ifeq:{{#var:groupcount}}|0||<!--
  
         Here we're assuming there are 6 columns total:
+
         Here we're assuming there are 6 columns total.
       -->{{#vardefine:groupcols|2<!--
+
        @todo remove this assumption
         --><!--{{#switch: {{#var:groupcount}} | 1 = 6 | 2 = 3 | 3 = 2 | 6 }}--><!--
+
       -->{{#vardefine:groupcols|<!--
 +
         -->{{#switch: {{#var:groupcount}} | 1 = 6 | 2 = 3 | 3 = 2 | 6 }}<!--
 
       -->}}<!--
 
       -->}}<!--
 
+
 
 
       -->{{#vardefine: llabelcols | {{#ifeq: {{#hashvalue: thedataline | llabel |M_NUL}} | M_NUL | 0 | 1 }} }}<!--
 
       -->{{#vardefine: llabelcols | {{#ifeq: {{#hashvalue: thedataline | llabel |M_NUL}} | M_NUL | 0 | 1 }} }}<!--
 
       -->{{#vardefine: labelcols  | {{#ifeq: {{#hashvalue: thedataline | label  |M_NUL}} | M_NUL | 0 | 1 }} }}<!--
 
       -->{{#vardefine: labelcols  | {{#ifeq: {{#hashvalue: thedataline | label  |M_NUL}} | M_NUL | 0 | 1 }} }}<!--
 +
      -->{{#vardefine: clabelcols | {{#ifeq: {{#hashvalue: thedataline | clabel |M_NUL}} | M_NUL | 0 | 1 }} }}<!--
 
       -->{{#vardefine: rlabelcols | {{#ifeq: {{#hashvalue: thedataline | rlabel |M_NUL}} | M_NUL | 0 | 1 }} }}<!--
 
       -->{{#vardefine: rlabelcols | {{#ifeq: {{#hashvalue: thedataline | rlabel |M_NUL}} | M_NUL | 0 | 1 }} }}<!--
  
Line 94: Line 111:
 
         -->}}<!--
 
         -->}}<!--
 
       -->}}<!--
 
       -->}}<!--
       -->{{#vardefine: datacols | {{#expr:{{#var:columns}}-{{#var:labelcols}}-{{#var:llabelcols}}-{{#var:ldatacols}}-{{#var:rlabelcols}}-{{#var:rdatacols}} }} }}<!--
+
       -->{{#vardefine: cdatacols | {{#expr:{{#var:columns}}-{{#var:labelcols}}-{{#var:clabelcols}}-{{#var:llabelcols}}-{{#var:ldatacols}}-{{#var:rlabelcols}}-{{#var:rdatacols}} }} }}<!--
 +
      -->{{#vardefine: datacols  | {{#var:cdatacols}} }}<!--
  
 
       --><nowiki />
 
       --><nowiki />
Line 100: Line 118:
  
 
       -->{{#ifeq: {{#var: llabelcols}} | 0 | |<nowiki />
 
       -->{{#ifeq: {{#var: llabelcols}} | 0 | |<nowiki />
{{!}} class="{{#hashvalue: thedataline | labelclass | shaded}} {{#hashvalue: thedataline | llabelclass }}" {{!}} {{#hashvalue: thedataline | llabel }} <!--
+
{{!}} class="{{#hashvalue: thedataline | labelclass | shaded}} {{#hashvalue: thedataline | llabelclass }} llabel" <!--
 +
  --> {{!}} {{#hashvalue: thedataline | llabel }} <!--
 
       -->}}<!--
 
       -->}}<!--
  
 
       -->{{#ifeq: {{#var: ldatacols}} | 0 | |<nowiki />
 
       -->{{#ifeq: {{#var: ldatacols}} | 0 | |<nowiki />
{{!}} class="{{#hashvalue: thedataline|dataclass|}} {{#hashvalue: thedataline | ldataclass }}" {{!}} {{#hashvalue: thedataline | ldata }} <!--
+
{{!}} class="{{#hashvalue: thedataline|dataclass|}} {{#hashvalue: thedataline | ldataclass }} ldata" <!--
 +
  --> colspan="{{#var:ldatacols}}" <!--
 +
  --> {{!}} {{#hashvalue: thedataline | ldata }} <!--
 
       -->}}<!--
 
       -->}}<!--
  
       -->{{#ifeq: {{#var: labelcols}} | 0 | |<nowiki />
+
       -->{{#ifeq: {{#var: clabelcols}}{{#var: labelcols}} | 00 | |<nowiki />
{{!}} class="{{#hashvalue: thedataline | labelclass | shaded}} {{#hashvalue: thedataline | clabelclass }}" {{!}} {{#hashvalue: thedataline | label }} <!--
+
{{!}} class="{{#hashvalue: thedataline | labelclass | shaded}} {{#hashvalue: thedataline | clabelclass }} clabel" <!--
 +
  --> {{!}} {{#hashvalue: thedataline | label }}{{#hashvalue: thedataline | clabel }} <!--
 
       -->}}<!--
 
       -->}}<!--
  
       --><nowiki />
+
       -->{{#ifeq: {{#var: cdatacols}} | 0 |<!--
{{!}} class="{{#hashvalue: thedataline|dataclass|}} {{#hashvalue: thedataline | cdataclass }}" colspan="{{#var:datacols}}" {{!}} {{#hashvalue: thedataline | data }} <!--
+
        -->{{#ifeq: {{#var: datacols}} | 0 | |<nowiki />
 +
{{!}} class="{{#hashvalue: thedataline|dataclass|}} {{#hashvalue: thedataline | cdataclass }} cdata" <!--
 +
  --> colspan="{{#var:datacols}}" <!--
 +
  --> {{!}} {{#hashvalue: thedataline | data }}{{#hashvalue: thedataline | cdata }} <!--
 +
        -->}}<!--
 +
      --> |<nowiki />
 +
{{!}} class="{{#hashvalue: thedataline|dataclass|}} {{#hashvalue: thedataline | cdataclass }} cdata" <!--
 +
  --> colspan="{{#var:cdatacols}}" <!--
 +
  --> {{!}} {{#hashvalue: thedataline | data }}{{#hashvalue: thedataline | cdata }} <!--
 +
      -->}}<!--
  
 
       -->{{#ifeq: {{#var: rlabelcols}} | 0 | |<nowiki />
 
       -->{{#ifeq: {{#var: rlabelcols}} | 0 | |<nowiki />
{{!}} class="{{#hashvalue: thedataline | labelclass | shaded}} {{#hashvalue: thedataline | rlabelclass }}" {{!}} {{#hashvalue: thedataline | rlabel }} <!--
+
{{!}} class="{{#hashvalue: thedataline | labelclass | shaded}} {{#hashvalue: thedataline | rlabelclass }} rlabel" <!--
 +
  --> {{!}} {{#hashvalue: thedataline | rlabel }} <!--
 
       -->}}<!--
 
       -->}}<!--
  
 
       -->{{#ifeq: {{#var: rdatacols}} | 0 | |<nowiki />
 
       -->{{#ifeq: {{#var: rdatacols}} | 0 | |<nowiki />
{{!}} class="{{#hashvalue: thedataline|dataclass|}} {{#hashvalue: thedataline | rdataclass }}" {{!}} {{#hashvalue: thedataline | rdata }} <!--
+
{{!}} class="{{#hashvalue: thedataline|dataclass|}} {{#hashvalue: thedataline | rdataclass }} rdata" <!--
 +
  --> colspan="{{#var:rdatacols}}" <!--
 +
  --> {{!}} {{#hashvalue: thedataline | rdata }} <!--
 
       -->}}<!--
 
       -->}}<!--
  

Latest revision as of 01:49, 22 August 2014

{{{header}}}
{{{subhead}}}