|
|
| (8 intermediate revisions by the same user not shown) |
| Line 1: |
Line 1: |
| <noinclude> | | <noinclude> |
| = DOI Template =
| | Test with: <code>{{DOI|internal=10.toe-e/0.0.2|external=pending}}</code> |
| Displays internal and/or external DOIs for a paper/branch, and (optionally) stores them as Semantic MediaWiki properties.
| | </noinclude><includeonly><div style="border:1px solid #ddd; background:#f9f9f9; padding:10px; margin:8px 0; border-radius:6px;"><b>DOI</b><br/>{{#if:{{{internal|}}}|🔖 <span style="color:#555;">Internal:</span> <code>{{{internal}}}</code><br/>}}🌍 <span style="color:#555;">External:</span>{{#if:{{{external|}}}|{{#ifeq:{{lc:{{{external}}}}}|pending|<span style="color:#999;">(pending)</span>|<span class="plainlinks">[https://doi.org/{{{external}}} {{{external}}}]</span>}}|<span style="color:#999;">(none)</span>}}</div></includeonly> |
| | |
| == Parameters ==
| |
| ; internal : Your TOE‑E internal DOI (e.g., 10.toe-e/0.0.3)
| |
| ; external : External DOI from Zenodo / Crossref / DataCite (e.g., 10.5281/zenodo.1234567)
| |
| ; store : yes/no (default yes). When "yes", sets [[Has internal DOI]] and [[Has external DOI]].
| |
| ; short : yes/no (default no). When "yes", renders a compact one‑liner.
| |
| ; label : Optional custom label text (defaults to “DOI”).
| |
| | |
| == Examples ==
| |
| ; Internal only
| |
| <nowiki>{{DOI|internal=10.toe-e/0.0.3}}</nowiki> | |
| | |
| ; Internal + external (Zenodo)
| |
| <nowiki>{{DOI|internal=10.toe-e/0.0.3|external=10.5281/zenodo.1234567}}</nowiki>
| |
| | |
| ; External pending
| |
| <nowiki>{{DOI|internal=10.toe-e/0.0.3|external=pending}}</nowiki>
| |
| | |
| ; Compact line
| |
| <nowiki>{{DOI|internal=10.toe-e/0.0.3|external=10.5281/zenodo.1234567|short=yes}}</nowiki>
| |
| | |
| == Properties required ==
| |
| Create once:
| |
| * [[Property:Has internal DOI]] → <nowiki>[[Has type::Text]]</nowiki>
| |
| * [[Property:Has external DOI]] → <nowiki>[[Has type::Text]]</nowiki>
| |
| | |
| </noinclude><includeonly> | |
| <!-- Normalize booleans -->
| |
| {{#vardefine:_short|{{#switch:{{lc:{{{short|}}}}}|yes=1|true=1|1=1|#default=0}}}}
| |
| {{#vardefine:_store|{{#switch:{{lc:{{{store|yes}}}}}|yes=1|true=1|1=1|#default=0}}}}
| |
| | |
| <!-- Trim inputs -->
| |
| {{#vardefine:i|{{{internal|}}}}}
| |
| {{#vardefine:e|{{{external|}}}}}
| |
| {{#vardefine:label|{{{label|DOI}}}}}
| |
| | |
| <!-- Optional semantic storage -->
| |
| {{#if:{{#var:i}}|{{#ifeq:{{#var:_store}}|1|[[Has internal DOI::{{#var:i}}]]}}}}
| |
| {{#if:{{#var:e}}|{{#ifeq:{{#var:_store}}|1|[[Has external DOI::{{#var:e}}]]}}}}
| |
| | |
| <!-- Derived display bits -->
| |
| {{#vardefine:e_link|
| |
| {{#if:{{#var:e}}|
| |
| {{#switch:{{lc:{{#var:e}}}}
| |
| | pending =
| |
| <!-- leave blank; render "pending" note -->
| |
| | =
| |
| <!-- empty -->
| |
| | #default = https://doi.org/{{#var:e}}
| |
| }}
| |
| }}
| |
| }}
| |
| | |
| <!-- Compact (short) rendering -->
| |
| {{#ifeq:{{#var:_short}}|1
| |
| | <!-- short=yes -->
| |
| {{#if:{{#var:i}}{{#var:e}}|
| |
| <!-- If at least one present -->
| |
| <span class="plainlinks">
| |
| <b>{{#var:label}}:</b>
| |
| {{#if:{{#var:i}}|<code>{{#var:i}}</code>{{#if:{{#var:e}}{{#var:i}}| • |}}}}
| |
| {{#if:{{#var:e}}|
| |
| {{#ifeq:{{lc:{{#var:e}}}}|pending|<i>(external DOI pending)</i>|[{{#var:e_link}} {{#var:e}}]}}
| |
| }}
| |
| </span>
| |
| |
| |
| <span style="color:#999;"><i>No DOI assigned.</i></span>
| |
| }}
| |
| | <!-- short=no (box) -->
| |
| <div style="border:1px solid #ddd; background:#f9f9f9; padding:10px; margin:8px 0;">
| |
| <span style="font-weight:600;">{{#var:label}}</span><br/>
| |
| {{#if:{{#var:i}}|
| |
| <div>🔖 <span style="color:#555;">Internal:</span> <code>{{#var:i}}</code></div>
| |
| }}
| |
| {{#if:{{#var:e}}|
| |
| <div>🌍 <span style="color:#555;">External:</span>
| |
| {{#ifeq:{{lc:{{#var:e}}}}|pending|<i>(pending)</i>|<span class="plainlinks">[{{#var:e_link}} {{#var:e}}]</span>}}
| |
| </div>
| |
| }}
| |
| {{#if:{{#var:i}}{{#var:e}}||<div style="color:#999;"><i>No DOI assigned.</i></div>}}
| |
| </div>
| |
| }}
| |
| </includeonly> | |
Test with:
DOI
🔖 Internal: 10.toe-e/0.0.2
🌍 External:(pending)