For properties of codes (as opposed to: definition aka id of a code) see {{
../property-list}}. For example symbol, en name, wikilink target, descriptions.
NORMAL-CODE ID lists (normalised ID, synonym ID)
|document-status=: As of 20 Feb 2023: dm codes: 48× ID + 44× synonymID (incl. 4× na, hl)
This is only a _derived_ list. For the actual *defining* list see in-code list in
/id-list
NOT IMPLEMENTED 20Feb2023
|e- = -- Latn e- not implemented (but used in articles?)
|e+b+ = -- is not a normal-code: would normalised follow for epsi+beta+ but too rare & confusin
|beta+ = -- 'beta' in a longer string _not_ defined as synonym
The template normalises a decay code like β+ into a basic, unambiguous code. That normal code is used to handle the decay mode formatting & properies.
For example, β+ → code b+
In the example:
b+ → b+
Data retrieved for b+:
symbol: β+
en-name: β+ decay
AZ-changes: (A, Z − 1)
Using basic keyboard characters
The code is in basic keyboard characters. This allows the editor to enter a decay name by plain text characters.
a b e g p n + - 2 3 A-Z a-z 0-9 (SF CD IT Ne Mg Si, 24Ne, stable, syn, ...)
dm code normalisation:
No case conversion uc/lc ("SF" nand "β" recognised, but "sf" and "Β" are not recognised)
Decode entitity names (β →β)
Remove '%slink$' ('_link' suffix)
Remove all whitespace
Remove <sup> tags (keep content, like '+', '-')
Replace – (ndash) − (minus) with - (keyboard hyphen)
Replace α with "a", β→ "b", ε→ "epsi", γ→ "g"
The whole string is considered
The whole string is considered. So, not recognised is input:
[[alpha|α]]N,
α (? not sure)N,
<span style="background: yellow;">α</span>N
Letter epsilon is coded "epsi". Also, bare letter "e" stands for "ε". Latin letter "e" only occurns in "e+".
Resulting code is in (US) keyboard characters.
The very same code can be enterd by its keyboard letters:
|code-in=β-
normalises to b-
|code-in=β<sup>-</sup>
normalises to b-
|code-in=β <sup > – </ sup>
normalises to b-
|code-in=b-
normalises to b-
Also recognised: bare alpha, beta, gamma, epsilon
Alternative codes are normalised, and recognised
Note:
Bare Latin letter "e" is not a code, so bare letter "e" code stands for "ε"
Inversely, "e−" only exists with Latin "e", so "e-" is unambiguous.
U+2013–EN DASH (–)
U+2212−MINUS SIGN (−)
U+002D-HYPHEN-MINUS
U+00ADSOFT HYPHEN (­) (not handled)
half-life (hl) and natural abundance (na)
Codes for hl and na are handled by code too:
"stable", "observationally stable", "synthetic" and "trace".
Other values, such as number values like "{{val|1.23|e=7|ul=y}}" (for 1.23×107y), are not recognised. In Infobox uses, such values can be passed through and shown unedited.
|type=hl, na
Decode entitity names (&beta; →β)
Conversion uc to lc ("Stable" → "stable" code)
Remove '%slink$' ('_link' suffix)
Search for code words: "obs", "stable", "syn", "trace"
The rest of the input string is discarded (so: any of these texts in the input will fire as recognised code)
By using these |type=hl, na options, it is prevented that some |dm= input would find "stable" as recognised code (it is not, for dm).
add a new code
write formatted, formal symbol (Greek, <sup>...</sup>, ..)
check how it normalised (into keyboard keys only, expected); this is the internal ID
define ID in /dm-id
check in testcases (add new /row)
add dm-format in property-list
more test inputs: plain, formatted forms
add synonyms (=other keyboard ids)
test synonym(s) by bare code, by formatted code input