Jump to content

Template:DOI: Difference between revisions

From TOE-E Archive
Created page with "<noinclude> = DOI Template = Displays internal and/or external DOIs for a paper/branch, and (optionally) stores them as Semantic MediaWiki properties. == 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..."
 
No edit summary
 
(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>

Latest revision as of 19:32, 23 August 2025

Test with:

DOI
🔖 Internal: 10.toe-e/0.0.2
🌍 External:(pending)