- ../code/normalise
|code-in =
|type =dm, na, hl [dm=dflt]
|test-unchecked-code =[Y/N]
- /code/id-list
- {{Isotopes}}
{{../code/normalise}} [list T:Isotopes/decay-mode/code]
- As of 20 Feb 2023: dm codes: 48× ID + 44× synonymID (incl. 4× na, hl)
- live: Radioactive decay § List of decay modes
- data: {{id-list}} · {{property-list}} (overview for article editors)()
codes defined, synonyms
- 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)
| ||||
---|---|---|---|---|
This is only a _derived_ list. For the actual *defining* list see in-code list in /id-list
|
{{Isotopes/decay-mode/code/id-list
|normal-code =
|type =
|definition =
}}
- /overview
{{Isotopes/decay-mode/overview}}
-- content list - /testcases: {{Isotopes/decay-mode/testcases}} -- data checks
create-link
|do-link=yes
|property=dm-symbol
→[[en-link|dm-symbol]]
|property=en-name
→[[en-link|en-name]]
|property=qid
→{{Q|qid}}
|property=en-link
→{{#invoke:redirect and target|report|en-link}}
|is-first-link=yes
not tested
Isotopes/decay-mode/code
- {{Isotopes/decay-mode/code/id-list}} -- actual definitons, synonyms, type
- {{Isotopes/decay-mode/code/normalise}}
- {{Isotopes/decay-mode/code/has-linkrequest}}
- {{Isotopes/decay-mode/code/cleanup}}
self-test
- dflt: when same, returns blank
{{Isotopes/decay-mode/code/symbol-self-check
|code-1 =
|code-2 =
|same-text =
|diff-text =
|blank2-text=
"report =y/n
}}
- to consider: add non-verified option
verify and test-unverified
|code-in, type, test-unchecked-code=
- from datatestcases
- {{Isotopes/decay-mode/code/normalise |code-in={{{input-fmt|}}} |type={{{type|}}} |test-unchecked-code=true }}
- code testing
|property={{yesno|{{{test-unchecked-code|no}}}|yes=test-unchecked-code|no=verify-code}}
- Normalise without post-check (=return bad/unk codes too):
|test-unchecked-code=yes
. Skips|property=verify-code
|definition=verify-code, test-unchecked-code
-- internal self-check- to return code as normalised but unchecked (=return bad codes too):
- not: Does not work in mainspace (then: always verfy-code).
- not: by using {{Isotopes/decay-mode/property}} (instead: feed
|normal-code=
with normalised/unchecked code)
- more
|property={{yesno|{{{test-unchecked-code|no}}}|yes=test-unchecked-code|no=verify-code}}
|definition=verify-code, test-unchecked-code
-- internal self-check
Normalising decay mode
|code-in, type=
- returns:
- (1) normalised code (alphanumeric only),
- (2) merge-synonym (b+b+ → 2b+),
- (3) <blank> when code is not recognised.
- test unk code
- synonym replacement: always
|document-status=yes
:- {{Isotopes/decay-mode/code/normalise}}
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 (&beta; → β)
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|α]]
,α (? not sure)
,<span style="background: yellow;">α</span>
- 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+00AD SOFT 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×107 y), 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
- write formatted, formal symbol (Greek,