User:Puxlit/Experiments/ImprovedInfoboxes

The goal is to minimise the amount of cruft we feed into infobox parameters, and leverage the data that we're already supplying to infoboxes to remove redundancies elsewhere on a page. This makes our infoboxes easier to use, and gives us the ability to make broad formatting changes in one go.

Helper Module
New pages:

Parameter configuration options:
 * is numeric? (e.g.  and  )
 * is list? (e.g. for es, there can be multiple  s, but there should only be one  )
 * is enum? (e.g. for es,   should be ∈ {Emitter, Mutant, Transformation}; for  es, the annotation for   should be ∈ {partially; recap})
 * is link? (e.g. for es,   should be an internal link, and   should be an IWL to  )

Functions:
 * add categories
 * format string?
 * annotation filter?
 * render infobox value

Transition Plan

 * Build helper module
 * Deprecate Ordinal Category (used by Episode Infobox and Chapter Infobox)
 * Scope out changes to Music Infobox
 * Scope out changes to Episode Infobox
 * season (scalar, numeric validation): e.g.
 * season episodes category transformation (flag on error): e.g.
 * episode (scalar, numeric validation): e.g.
 * episodes category transformation (flag on error): e.g.
 * arcs (map, enum K/V validations): e.g.
 * infobox value transformation (pass-through on error): e.g.
 * arc episodes category transformation (flag on error): e.g.
 * arc navbox episode fragment transformation (skip on error): for use via surrogate template by Arc Navibox Helper; e.g. and
 * Scope out changes to Chapter Infobox
 * volume (optional scalar, numeric validation): e.g.
 * infobox value transformation (pass-through on error): e.g. nothing
 * volume chapters category transformation (flag on error): e.g. (so we can later DPLify this)
 * chapter (scalar, numeric validation): e.g.
 * chapters category transformation (flag on error): e.g.
 * arcs (map, enum K/V validations): e.g.
 * infobox value transformation (pass-through on error): e.g.
 * arc chapters category transformation (flag on error): e.g.
 * arc navbox chapter fragment transformation (skip on error): for use via surrogate template by Arc Navibox Helper; e.g.
 * Scope out changes to Event Infobox and Fight Infobox
 * Scope out changes to Quirk Infobox
 * quirk type (scalar, enum validation): e.g.
 * infobox value transformation (pass-through on error): e.g.
 * quirk types category transformation (flag on error): e.g.
 * Scope out changes to Character Infobox
 * Examine options for providing documentation (and maybe autocompletion) to VisualEditor users
 * KockaAdmiralac has mentioned w:c:deltarune:MediaWiki:VEParamNames.js
 * Implement
 * on music pages (least disruption)
 * on episode pages (first major test of complex features, with no contention until October 2019)
 * on chapter pages (can start making regular use of new features)
 * on event and fight pages (as they follow the same story arc-based schema as episode and chapter pages)
 * on quirk + character pages (given there may be some interdependency, this should happen last)