For identifiers, MyST frontmatter already includes MyST id, doi, and arxiv. We just added PubMed identifiers in #1570. There are many other identifiers (we are already looking to add zenodo), and we should not disallow them with our frontmatter validation.
Rather than needing a PR for every new identifier type any user needs, we should introduce identifiers: Record<string, string> to hold arbitrary external identifiers.
A few details:
id is the unique MyST ID - this is not part of external identifiers
doi is also still a top-level field
ideally everything has a DOI, there is no platform dependence, like many other identifiers
also, doi shows up elsewhere in the frontmatter, e.g. on issue/volume
"known" identifiers (e.g. arxiv, pmid, pmcid, zenodo) may all be defined at the top level, and will coerce under the identifiers key
doi, if defined under identifiers, will be lifted to the top level (and raise a warning)
I'd love to use the solution to this as inspiration for how we can similarly extend other parts of the myst engine (e.g. for launch buttons, edit buttons, etc as described in #1584 )
For identifiers, MyST frontmatter already includes MyST
id
,doi
, andarxiv
. We just added PubMed identifiers in #1570. There are many other identifiers (we are already looking to addzenodo
), and we should not disallow them with our frontmatter validation.Rather than needing a PR for every new identifier type any user needs, we should introduce
identifiers: Record<string, string>
to hold arbitrary external identifiers.A few details:
id
is the unique MyST ID - this is not part of externalidentifiers
doi
is also still a top-level fielddoi
shows up elsewhere in the frontmatter, e.g. on issue/volumeidentifiers
keydoi
, if defined underidentifiers
, will be lifted to the top level (and raise a warning)