Difference between revisions of "Template:Lead/Inner"
From Species-ID
m (1 revision) |
m (from https://offene-naturfuehrer.de/w/index.php?title=Vorlage:Lead/Inner&oldid=66991) |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | <noinclude> | + | <noinclude>'''See [[Template:Key Start/doc| Key Start-Doc]] for the main documentation, [[Template:Lead/doc| Lead-Doc]] for recent technical changes of the Lead-templates.''' |
− | + | ||
− | '''See [[Template:Key Start/doc| Key Start]] for the main documentation.''' | + | |
[[Category:Single-access key templates]] | [[Category:Single-access key templates]] | ||
+ | </noinclude><includeonly><!-- | ||
+ | // PART 0. Semantic properties and hidden category for SMW forms | ||
+ | -->{{#switch: {{CONTENTLANGUAGE}}<!-- | ||
+ | |||
+ | // German: Deutschsprachige Attribute | ||
+ | -->|de|de-formal=[[Category:Schlüssel mit Lead-Vorlage]]<!-- Hidden cat for SMW form! | ||
+ | -->{{ | ||
+ | #if: {{{commonnames}}}|{{#arraymap: {{{commonnames}}}<!-- values | ||
+ | -->|,<!-- split on , | ||
+ | -->|§<!-- assign temporary variable | ||
+ | -->|[[dwc:vernacularName::§| ]]<!-- output | ||
+ | -->|<!-- new output separator | ||
+ | -->}} }}{{ | ||
+ | #if: {{{synonyms}}}|[[Synonymliste::{{StripFormatting |{{{synonyms}}}}}| ]]}}{{ | ||
+ | #if: {{{scientificname}}}|[[dwc:scientificName::{{StripFormatting | {{{scientificname}}}}}| ]]}}<!-- | ||
+ | |||
+ | // English properties | ||
+ | -->| #default =[[Category:Keys based on lead template]]<!-- Hidden cat for SWM form! | ||
+ | |||
+ | // ! ENGLISH SEMANTIC PROPERTIES NOT YET DEFINED | ||
− | + | -->}}<!-- | |
− | // | + | // PART 1. Spacer rows and subheadings above a lead row |
− | #ifeq:{{{ | + | -->{{#ifeq: {{{coupletID}}}|{{#var: decisiontreePreviousCouplet}}<!-- |
− | + | // THEN 2nd/3rd/etc lead in a couplet, normal start | |
− | + | -->|{{#vardefine: decisiontreeAlternative|{{#expr: {{#var: decisiontreeAlternative}}+1}}}}<!-- | |
− | + | --><tr id="{{{IDprefix}}}{{{coupletID}}}_{{#var:decisiontreeAlternative}}_row" class="dt-row">{{ | |
− | #if:{{{parentlead}}} | + | #if:{{{parentlead}}}<!-- THEN: indent 2 columns -->|<td></td><td></td>}} |
− | }}<td | + | <td <!-- (td is filled and closed at end!) |
− | + | // ELSE first lead; suppress spacer row for first couplet of key or nested subkeys | |
− | # | + | -->|{{#if: {{#ifeq: 0|{{#var: decisiontreePreviousCouplet}}|FIRSTCOUPLET|{{{parentlead}}}}}<!-- |
− | <tr class="dt-hspacer"><td colspan="6"></td></tr>}}{{ | + | -->|<!-- THEN nothing |
− | #if: {{{subheading}}} | + | // ELSE: insert spacer row |
− | <tr class="dt-subheading"><td colspan="6" style="font-weight:bold;padding:0.5em 0.75em 0.3em 0.75em; {{ | + | -->|<tr class="dt-hspacer"><td colspan="6"></td></tr><!-- |
− | #switch: {{lc:{{{subheadingstyle}}}}} | + | -->}}{{ |
− | |<!-- empty style parameter | + | #vardefine: decisiontreePreviousCouplet|{{{coupletID}}}}}{{ |
− | | orange = background-color:#FCFFEC; border:1px solid #ffc51a; | + | #vardefine: decisiontreeAlternative|1}}{{ |
− | | green = background-color:#e5febe; border:1px solid #c5de9e; | + | #if: {{{subheading}}}<!-- |
− | + | -->|<tr class="dt-subheading"><!-- | |
− | | bigorange = background-color:#FCFFEC; border:2px solid #ffc51a; font-size:120%; | + | -->{{#if:{{{parentlead}}}<!-- |
− | | biggreen = background-color:#e5febe; border:2px solid #c5de9e; font-size:120%; | + | then: indent 2 columns -->|<td></td><td></td><td colspan="4" <!-- |
− | | simple = | + | else: full six columns -->|<td colspan="6" }} style="font-weight:bold;padding:0.5em 0.75em 0.3em 0.75em; {{ |
− | | #default = {{{subheadingstyle}}} | + | #switch: {{lc:{{{subheadingstyle}}}}} |
− | }}">{{{subheading}}}</td></tr> | + | |<!-- empty style parameter → next option=orange:--> |
− | <tr class="dt-hspacer"><td></td></tr><!-- | + | | orange = background-color:#FCFFEC; border:1px solid #ffc51a; |
− | // END | + | | green = background-color:#e5febe; border:1px solid #c5de9e; |
− | // Next column is lead id. | + | | bigorange = background-color:#FCFFEC; border:2px solid #ffc51a; font-size:120%; |
− | --> | + | | biggreen = background-color:#e5febe; border:2px solid #c5de9e; font-size:120%; |
− | #if:{{{parentlead}}} | + | | simple = |
− | }}<td id=" | + | | #default = {{{subheadingstyle}}} |
− | + | }}">{{{subheading}}}</td><!-- | |
+ | --></tr><!-- | ||
+ | --><tr class="dt-hspacer"><td colspan="6"></td></tr><!-- | ||
+ | // END subheading: | ||
+ | -->}}<!-- | ||
+ | // Next column is lead id for first alternative. | ||
+ | --><tr id="{{{IDprefix}}}{{{coupletID}}}_row" class="dt-row">{{ | ||
+ | #if:{{{parentlead}}}<!-- THEN: indent 2 columns -->|<td></td><td></td>}} | ||
+ | <td id="{{{IDprefix}}}{{{coupletID}}}" <!-- (td is filled and closed at end!) | ||
+ | // END PART 1, Spacer rows and subheadings above a lead row | ||
+ | -->}} class="dt-nodeid">{{#ifeq:{{{withinCoupletID}}}|–|–|{{{coupletID}}}}}</td><!-- | ||
− | // | + | // PART 2. Prepare lead core. |
− | --><td class="leadalt">{{{ | + | // 2nd column contains either withinCoupletID = lead-differentiators (*, ', -, etc.) or backlink previous couplet. Both may be empty! |
+ | --><td class="leadalt">{{ | ||
+ | #ifeq:{{{withinCoupletID}}}|–||{{{withinCoupletID}}}}}{{ | ||
+ | #if:{{{leadIDbacklink}}}| [[#{{{IDprefix}}}{{{leadIDbacklink}}}|({{{leadIDbacklink}}})]]}}</td><!-- | ||
− | // | + | // 3rd column is main statement text. Uses a nested table to allow for row-by-row variable col. width |
− | --><td class="lead-row1" {{#if:{{{parentlead}}}| | + | --><td class="lead-row1" {{#if: {{{parentlead}}}|style="width:95%;"<!-- needed on table-layout: fixed -->|colspan="3"}}><!-- |
− | < | + | --><table class="nested" style="width:100%;" cellspacing="0" cellpadding="0"><tr><!-- |
+ | --><td class="leadtxt {{#if:{{{next}}}|leadon}}" style="width:95%;" ><!-- | ||
+ | --><span class="leadspan">{{Trim|1={{{statement}}}}} </span><!-- | ||
+ | // Add mw-collapsible span (the "more…") | ||
+ | -->{{#if: {{{detailspresent|}}}|<span class="leadspan noprint {{#replace:{{ANCHORENCODE:mw-customtoggle-{{{IDprefix}}}{{{coupletID}}}_{{#var:decisiontreeAlternative}}}}|.|dot}}row"></span>}}<!-- | ||
+ | --></td><!-- | ||
+ | // Second column in nested table = number of further leads. NEW: both with and without result in same row (it used to be below result)! | ||
+ | // Single triangle for normal next, double triangle if also result occurs (result and continue), e.g. where a genus is result, but species in same key. | ||
+ | -->{{#if:{{{next|}}}<!-- fixed width 5% | ||
+ | then -->|<td class="leadresult leadon" style="width:5%;"><span class="leadon"> [[#{{{IDprefix}}}{{{next}}}| ►<!-- | ||
+ | -->{{#if:{{{resulttext}}}|►}} {{{next}}}]]</span><!-- | ||
+ | --></td><!-- | ||
+ | else -->|<td style="width:5%;"></td>}}{{ | ||
+ | #if:{{{resulttext}}}{{{nested}}}<!-- | ||
+ | // THEN New-Row-For-Results. Leaderdots for next, but not if also result is present! | ||
+ | -->|</tr><tr><td class="leadresult {{#if: {{{next}}} |{{#if: {{{resulttext}}}{{{commonnames}}} | |leadon}}}}" style="width:100%;" colspan="2"><!-- | ||
+ | // FIRST NESTED (= pointer to indented subkey with parentlead) in addition to result, all result-layout variants | ||
+ | -->{{#if:{{{nested}}}<!-- | ||
+ | -->|<span class="leadon"> [[#{{{IDprefix}}}{{{coupletID}}}{{{withinCoupletID}}}{{{nested}}}| ▼▼ {{{nested}}}]] – </span><!-- | ||
+ | // END if nested: | ||
+ | -->}}<!-- | ||
− | // | + | // BACKGROUND OLD/NEW RESULTSTYLE: |
− | // | + | // The original ("old") style interprets result as either free of scientific name |
− | + | // (and it does not know which is which), and adds the common name in front. | |
− | + | // The new format should be able to either show free-form result text (common/scientific | |
− | + | // name may be present, but are not shown) or directly common and scientific name. | |
− | + | // See also schema at bottom of Template:Lead/doc | |
− | END | + | // TODO: introduce resultformat parameter later (= list of format options, allowing common name or scientific name to be first) |
− | + | // Now using {{#var: OtherNames}} = the gray name, presently the common name, optionally later a different one. | |
− | // | + | -->{{#if: {{{resulttextoverride}}}<!-- |
− | + | // If scientificname exists then NEW STYLE → ignore commonnames+scientificname if resulttextoverride, ELSE OLD STYLE:-> output common names even for resulttextoverride | |
− | + | -->|{{#if: {{{scientificname}}}|{{#vardefine: OtherNames|}}|{{#vardefine: OtherNames|{{{commonnames}}}<!---->}}<!---->}}<!-- // END if scientificname | |
− | + | // ELSE: no resulttextoverride, output commonnames for both OLD and NEW LAYOUT | |
− | + | -->|{{#vardefine: OtherNames|{{{commonnames}}}<!---->}}<!-- | |
− | + | // END resulttextoverride: | |
− | + | -->}}<!-- // END NEW/OLD: rest is identical | |
− | + | // Output the OtherNames variable if filled. No additional space after ndash! | |
− | <!-- | + | // ##DEBUG## ABOVE WAS: {{#if: {{{resulttext}}} | –| }}</span> // OK WITHOUT? |
+ | -->{{#if: {{#var: OtherNames}}<!-- | ||
+ | -->|<span class="commonnames"> {{Lead/MakeCommaBreakingList | listtext={{#var:OtherNames}} }} –</span><!-- | ||
+ | -->}}<!-- | ||
+ | // Now resulttext = one of resulttextoverride, scientificname, or resultlink itself. | ||
+ | // resulttext and qualifier need white background and (if together <40 char) a common nowrap: | ||
+ | --><span class="leadresults {{#ifexpr:{{#len:{{{resulttext}}}{{{resultqualifier}}} }} < 40|nowrap}}"><!-- | ||
+ | --><span class="leadout {{#ifexpr:{{#len:{{{resulttext}}} }} < 40|nowrap}}"> {{ | ||
+ | #ifeq: {{#sub: {{{resultlink}}}|0|5}}|http:<!-- | ||
+ | // THEN http-link: | ||
+ | -->|[{{{resultlink}}} {{{resulttext}}}]<!-- | ||
+ | // ELSE wiki link or result-text-only (non-link). | ||
+ | -->|{{#if: {{{resultlink}}}<!-- | ||
+ | // THEN | ||
+ | -->|[[{{{resultlink}}}|{{{resulttext}}}]]<!-- | ||
+ | // ELSE unlinked | ||
+ | -->|{{{resulttext}}}<!-- | ||
+ | // END resultlink | ||
+ | -->}}<!-- | ||
+ | // END (if http-link) | ||
+ | -->}}</span><!-- close span.leadout. Span.leadresults will be closed after result qualifier! | ||
− | // | + | // resultqualifier in all result-layout variants |
− | + | -->{{#if: {{{resultqualifier}}}<!-- | |
− | #if: {{{ | + | // THEN (start with wrappable blank, NOT a br-if-image-sidebar present: res.qual. may just be "L.") |
− | + | -->|<nowiki></nowiki> <span class="resultqualifier {{#ifexpr:{{#len:{{{resultqualifier}}} }} < 40|nowrap}}"> {{{resultqualifier}}}</span><!-- | |
+ | // END (res.qual.), + closing span.leadresults (= nowrap-span around result+qualif.) | ||
+ | -->}}</span><!-- | ||
+ | --></td><!-- | ||
+ | |||
+ | // END New-Row-For-Results | ||
+ | -->}}</tr><!-- | ||
− | // START EXTRA INFO and IMAGES: | + | // PART 4. ADDITIONAL = error, detailtext, image gallery m-r |
− | // Extra text and images from the optional parameters: | + | // 4 a) ERROR REPORTING: Any content in 4th and later unnamed parameters is an error. |
− | #if: {{{ | + | -->{{#if: {{{errors}}}<!-- |
− | THEN-->|<tr><td class="leadextras" colspan="2"><div class="leadextras">{{{detailtext}}}{{ | + | -->|<tr><td class="leaderror" colspan="2">{{{errors}}}</td></tr><!-- |
− | + | -->}}<!-- | |
− | + | // 4 b) START EXTRA INFO and IMAGES: | |
− | // The wrapping table around | + | // Extra text and images from the optional parameters: detailtext = synonyms + description + |
− | + | // occurrence + remarks; already combined in outer Lead template! | |
− | + | // Wrappable gallery image m/caption m" to "image r/caption r" output below detailtext | |
− | + | -->{{#if: {{{detailspresent|}}}<!-- | |
− | + | // THEN | |
− | + | -->|<tr><td class="leadextras" colspan="2"><!-- | |
− | + | --><div class="mw-collapsible mw-collapsed mw-collapsible-content leadextras" id="{{#replace:{{ANCHORENCODE:mw-customcollapsible-{{{IDprefix}}}{{{coupletID}}}_{{#var:decisiontreeAlternative}}}}|.|dot}}row"><!-- | |
− | + | -->{{{detailtext}}}<!-- | |
− | --></td></tr>{{#if:{{{imagesfooter}}}|<tr><td colspan="10" style="text-align:right; font-size:80%; line-height:1em;">{{{imagesfooter}}}</td></tr>}}</table><!-- | + | -->{{#if: {{{image m}}}<!-- |
− | + | // THEN at least 1 extra image present, after detailtext or alone: | |
− | // END | + | // 4 c: START Secondary-IMAGE-Gallery |
− | // END of "nested" inner table--> | + | // The nested wrapping table around left-floating tables is necessary, without or with a div |
− | </table> | + | // the images will not be contained in the outer div and the lines not displayed |
− | + | -->|<table><tr><td>{{ | |
+ | #if: {{{image m}}}|{{Lead/GalleryItem|image={{{image m}}}|caption={{{caption m}}}|label={{{label m}}}|width={{Pixel2Number|{{{image m width}}}}}|height={{Pixel2Number|{{{image m height}}}}}|lines={{{captionlines}}}}}}}{{ | ||
+ | #if: {{{image n}}}|{{Lead/GalleryItem|image={{{image n}}}|caption={{{caption n}}}|label={{{label n}}}|width={{Pixel2Number|{{{image n width}}}}}|height={{Pixel2Number|{{{image n height}}}}}|lines={{{captionlines}}}}}}}{{ | ||
+ | #if: {{{image o}}}|{{Lead/GalleryItem|image={{{image o}}}|caption={{{caption o}}}|label={{{label o}}}|width={{Pixel2Number|{{{image o width}}}}}|height={{Pixel2Number|{{{image o height}}}}}|lines={{{captionlines}}}}}}}{{ | ||
+ | #if: {{{image p}}}|{{Lead/GalleryItem|image={{{image p}}}|caption={{{caption p}}}|label={{{label p}}}|width={{Pixel2Number|{{{image p width}}}}}|height={{Pixel2Number|{{{image p height}}}}}|lines={{{captionlines}}}}}}}{{ | ||
+ | #if: {{{image q}}}|{{Lead/GalleryItem|image={{{image q}}}|caption={{{caption q}}}|label={{{label q}}}|width={{Pixel2Number|{{{image q width}}}}}|height={{Pixel2Number|{{{image q height}}}}}|lines={{{captionlines}}}}}}}{{ | ||
+ | #if: {{{image r}}}|{{Lead/GalleryItem|image={{{image r}}}|caption={{{caption r}}}|label={{{label r}}}|width={{Pixel2Number|{{{image r width}}}}}|height={{Pixel2Number|{{{image r height}}}}}|lines={{{captionlines}}}}}}}<!-- | ||
+ | --></td></tr><!-- | ||
+ | -->{{#if:{{{imagesfooter}}}<!-- | ||
+ | -->|<tr><td colspan="10" style="text-align:right; font-size:80%; line-height:1em;">{{{imagesfooter}}}</td></tr><!-- | ||
+ | -->}}<!-- | ||
+ | --></table><!-- | ||
+ | // END 4 c: END Secondary-IMAGE-Gallery | ||
+ | -->}}</div></td></tr><!-- div = end mw-collapsible | ||
+ | // END 4. ADDITIONAL error, detailtext or image gallery (m-r) | ||
+ | -->}}<!-- | ||
+ | // END of "nested" inner table | ||
+ | --></table><!-- | ||
− | // | + | // PART 5: Large, always-visibly image j/k (not collapsed) below lead statement and result: |
− | + | -->{{#if:{{{image j}}}{{{image k}}}<!-- | |
− | #if:{{{image j}}}|< | + | -->|<table class="nested"><tr style="vertical-align:top;"><td><!-- |
− | #if:{{{image k}}}|< | + | -->{{#if: {{{image j}}}<!-- |
− | </tr></table><!-- | + | -->|<div style="padding:0em 0.5em 1em 0;float:left;width:{{#expr: {{Pixel2Number|{{{image j width}}}}}+15}}px;">[[{{Trim| {{{image j}}} }} |none|{{Pixel2Number|{{{image j width}}}}}x{{Pixel2Number|{{{image j height}}}}}px]]<!-- |
− | -->}}</td><td> | + | -->{{#if: {{{label j}}}|'''{{{label j}}}: '''}}{{{caption j}}}<!-- |
− | + | --></div><!-- | |
+ | -->}}<!-- | ||
+ | -->{{#if: {{{image k}}}<!-- | ||
+ | -->|<div style="padding:0em 0.5em 1em 0;float:left;width:{{#expr: {{Pixel2Number|{{{image j width}}}}}+15}}px;">[[{{Trim| {{{image k}}} }} |none|{{Pixel2Number|{{{image k width}}}}}x{{Pixel2Number|{{{image k height}}}}}px]]<!-- | ||
+ | -->{{#if: {{{label k}}}|'''{{{label k}}}: '''}}{{{caption k}}}<!-- | ||
+ | --></div><!-- | ||
+ | -->}}<!-- | ||
+ | --></td></tr><!-- | ||
+ | --></table><!-- | ||
+ | // END PART 5: Always-on images (image j/k) | ||
+ | -->}}<!-- | ||
+ | --></td><td><!-- | ||
− | // | + | // PART 6: Right Sidebar Images |
− | // | + | -->{{#if: {{{image a}}}<!-- at least 1st present (else empty td created): |
− | // image a - e, caption a - e | + | // Up to 5 images, non-wrapping, always visible but smaller than image m-r |
− | + | // → image a-e, caption a-e, image a-e width, primary images width and image | |
− | // | + | // a-e height, primary images height (both for all images) |
− | THEN-->|<table style="border:none; margin-top:0.1em;margin-left:1em;"><tr | + | // Lead/GalleryItemNoCaption creates td! |
− | + | THEN-->|<table style="border:none; margin-top:0.1em;margin-left:1em;"><tr>{{ | |
− | + | #if: {{{image a}}}|{{Lead/GalleryItemNoCaption|image={{{image a}}}|caption={{{caption a}}}|label={{{label a}}}|width={{Pixel2Number|{{{image a width}}}}}|height={{Pixel2Number|{{{image a height}}}}}}}}}{{ | |
− | + | #if: {{{image b}}}|{{Lead/GalleryItemNoCaption|image={{{image b}}}|caption={{{caption b}}}|label={{{label b}}}|width={{Pixel2Number|{{{image b width}}}}}|height={{Pixel2Number|{{{image b height}}}}}}}}}{{ | |
− | + | #if: {{{image c}}}|{{Lead/GalleryItemNoCaption|image={{{image c}}}|caption={{{caption c}}}|label={{{label c}}}|width={{Pixel2Number|{{{image c width}}}}}|height={{Pixel2Number|{{{image c height}}}}}}}}}{{ | |
− | + | #if: {{{image d}}}|{{Lead/GalleryItemNoCaption|image={{{image d}}}|caption={{{caption d}}}|label={{{label d}}}|width={{Pixel2Number|{{{image d width}}}}}|height={{Pixel2Number|{{{image d height}}}}}}}}}{{ | |
− | --></tr></table> | + | #if: {{{image e}}}|{{Lead/GalleryItemNoCaption|image={{{image e}}}|caption={{{caption e}}}|label={{{label e}}}|width={{Pixel2Number|{{{image e width}}}}}|height={{Pixel2Number|{{{image e height}}}}}}}}}<!-- |
− | }}</td></tr></includeonly> | + | --></tr></table><!-- |
+ | // END PART 6: Right Sidebar Images | ||
+ | -->}}</td></tr></includeonly> |
Latest revision as of 10:17, 14 August 2017
See Key Start-Doc for the main documentation, Lead-Doc for recent technical changes of the Lead-templates.