User talk:YBG/LivingPOTUS

User subpages for planned modification to Living Presidents of the United States, with the parenthesized parameters:

v.0
where the parameters (all but hours being numbered) are:
 * User:YBG/LivingPOTUS (no parameters) → Row
 * User:YBG/LivingVPOTUS (no parameters) → Row
 * User:YBG/Row ( Office, Number(start) , Change(start) , Number(end) , Change(end) , Number(1st), ... Number(9th), hours ) → EventDate/EventLink/Box
 * User:YBG/EventDate ( Number, Change , Office ) → Lookup
 * User:YBG/EventLink ( Number, Change , Office ) → Lookup
 * User:YBG/Box ( Number, Change , Office ) → Lookup
 * User:YBG/Lookup ( Number, Data , Office ) → (none)
 * Office is P(President) or V(Vice President)
 * Number is the ordinal number of service in the office
 * Change is M(inus) or P(lus) or successor's number (for deaths in office), or empty (to suppress ± in Box)
 * Data is the type of data to be returned
 * p/m inaug/death date, yyyy-mm-dd format
 * P/M inaug/death EventType: D(eath), A(ssination) , P1/PI(1st/only inauguration) , V1/VI(1st/only VP inauguration) , VC(VP Conformation)
 * C color, e.g. "fbb4ae", to fill boxes
 * n formatted number, e.g., " 9" or "10"
 * N name of officeholder
 * hours is a named parameter which takes on a single value $5 1/2$, the time between the deaths on July 4, 1826

v.0→v.1
Here's my plan to convert the structure of these templates. Except for the one group of changes marked "MUST BE DONE SIMULTANEOUSLY", stopping at any bullet or sub-bullet will leave the output of the top-level templates unchanged. They should be done in the order listed.
 * ✅ Preliminary work
 * ✅ Create all VP inauguration pages as redirects to running mate's inauguration
 * ✅ Build 2nd list of templates with to-be list of parameters
 * ✅ Convert templates to optionally consume named parameters
 * EventDate✅ / EventLink✅ / Box✅ / Lookup✅ :
 * EventDate✅ / EventLink✅ / Box✅ :
 * Lookup✅ :
 * Row✅ :
 * ✅ Convert template calls to use named parameters:
 * EventDate✅ / EventLink✅ / Box✅ calls to Lookup :
 * Row calls to EventDate✅ / EventLink✅ / Box✅ :
 * {{code|    {{{Box|aaa|bbb|ccc}} }} →
 * LivingPOTUS✅ / LivingVPOTUS✅ calls to Row:
 * ✅ Convert templates to consume only specific numbered parameter
 * Lookup✅ / EventDate✅ / EventLink✅ / Box✅ :
 * Row✅ :
 * ❌ Convert template calls to eliminate inherited params and use specified numbered params: This doesn't seem to work as I expected, so I'm not going to do it.
 * EventDate / EventLink / Box calls to Lookup :
 * → XXX
 * Row calls to EventDate / EventLink / Box :
 * ✅ Renumber numbered parameters in Row
 * Multiple changes that MUST BE DONE SIMULTANEOUSLY:
 * LivingPOTUS:  →
 * LivingVPOTUS: →
 * Row: →; →; ... →
 * ❌Merge LivingVPOTUS into LivingPOTUS and convert former to call the latter This won't work, I think because it excedes the transclusion limit
 * Documentation
 * Decide on template-space names
 * Build 3rd list of templates with to-be template names
 * Build /doc subpage
 * Move to template space
 * Move Lookup
 * Change Lookup calls in EventDate / EventLink / Box
 * Move EventDate / EventLink / Box
 * Change EventDate / EventLink / Box calls in Row
 * Move Row
 * Change Row calls in LivingPOTUS / LivingVPOTUS
 * Move LivingPOTUS / LivingVPOTUS
 * EventDate / EventLink / Box calls to Lookup :
 * → XXX
 * Row calls to EventDate / EventLink / Box :
 * ✅ Renumber numbered parameters in Row
 * Multiple changes that MUST BE DONE SIMULTANEOUSLY:
 * LivingPOTUS:  →
 * LivingVPOTUS: →
 * Row: →; →; ... →
 * ❌Merge LivingVPOTUS into LivingPOTUS and convert former to call the latter This won't work, I think because it excedes the transclusion limit
 * Documentation
 * Decide on template-space names
 * Build 3rd list of templates with to-be template names
 * Build /doc subpage
 * Move to template space
 * Move Lookup
 * Change Lookup calls in EventDate / EventLink / Box
 * Move EventDate / EventLink / Box
 * Change EventDate / EventLink / Box calls in Row
 * Move Row
 * Change Row calls in LivingPOTUS / LivingVPOTUS
 * Move LivingPOTUS / LivingVPOTUS
 * Move Row
 * Change Row calls in LivingPOTUS / LivingVPOTUS
 * Move LivingPOTUS / LivingVPOTUS

v.1
where the parameters are:
 * User:YBG/LivingPOTUS (no parameters) → Row
 * User:YBG/LivingVPOTUS (no parameters) → Row
 * User:YBG/Row ( Office, BgnNbr , BgnChg , EndNbr , EndChg , 1 , 2, 3, ... 9, hours ) → EventDate/EventLink/Box
 * User:YBG/EventDate ( Number, Change , Office ) → Lookup
 * User:YBG/EventLink ( Number, Change , Office ) → Lookup
 * User:YBG/Box      ( Number, Change , Office ) → Lookup
 * User:YBG/Lookup   ( Number, Data   , Office ) → (none)
 * Office is P(President) or V(Vice President)
 * Number is the ordinal number of service in the office
 * Change is M(inus) or P(lus) or successor's number (for deaths in office), or empty (to suppress ± in Box)
 * BgnNbr/BgnChg are the Number and Change associated with the start of the period
 * EndNbr/EndChg are the Number and Change associated with the end of the period
 * Data is the type of data to be returned
 * p/m inaug/death date, yyyy-mm-dd format
 * P/M inaug/death EventType: D(eath), A(ssination) , P1/PI(1st/only inauguration) , V1/VI(1st/only VP inauguration) , VC(VP Conformation)
 * C color, e.g. "fbb4ae", to fill boxes
 * n formatted number, e.g., " 9" or "10"
 * N name of officeholder
 * hours takes on a single value $5 1/2$, the time between the deaths on July 4, 1826

v.1→v.2

 * ✅ Add ymd1/ymd2 to LivingPOTUS, LivingVPOTUS
 * ✅ Convert Row to use ymd1/ymd2 instead of EventDate
 * ✅ Remove P/M from Lookup
 * ✅ Change EventDate to "ERROR" - later request it be deleted.


 * ✅ Record sizes:
 * VOTUS post expand include size 1332916/ - 1333984/ - 1219653/ - 1219653/ - 1210927/ - 1219205/2097152 bytes
 * POTUS post expand include size 1332912/ - 1333980/ - 1219649/ - 1219649/ - 1210475/ - 1219201/2097152 bytes
 * VOTUS template argument size 70052/ - 70052/ - 67708/ - 67708/ - 66825/ - 67596/2097152 bytes
 * POTUS template argument size 70052/ - 70052/ - 67708/ - 67708/ - 66713/ - 67596/2097152 bytes
 * ✅ BgnNbr→nbr1, EndNbr→nbr2, BgnChg→evt1, EndChg→evt2 in Row/LivingPOTUS/LivingVPOTUS
 * Note: noticed in last column of last row
 * Now this is just on the VP page
 * Fixed by eliminating ^s from empty params on last row of VP page
 * ✅ Record size
 * ✅ Change→evt in Row/EventLink/Box
 * ✅ Record size
 * ✅ Number→nbr in Row/EventLink/Box/Lookup
 * ✅ Record size
 * ✅ Office→pvp in LivingPOTUS/LivingVPOTUS/Row/EventLink/Box/Lookup
 * (probably by eliminating hard space from just before M= in Lookup)
 * ✅ Record size
 * ✅ Eliminate hard spaces
 * ✅ Record size: VOTUS+POTUS post expand include size: 1219205+1219201
 * ✅ Record size: VOTUS+POTUS post expand include size: 1219205+1219201


 * ✅ Convert all parameters and values to lower case
 * ✅ Convert evt1/evt2 from p/m to specific event
 * ✅ In row, use evt1/evt2 directly instead of using lookup
 * ✅ Eliminate now unneeded lookups so that it is only n(name) and c(color)
 * ✅ Record size: VOTUS+POTUS post expand include size: 1357359+1157598


 * ✅ Move ai/a1/di/d1 logic from Box to Row & refactor
 * ✅ Move ai/a1/di/d1 logic from EventLink to Row & refactor
 * ✅ Record size: VOTUS+POTUS post expand include size: 1164619+993058
 * Current template-space VOTUS+POTUS post expand include size: 396221+332649

v.2
where the parameters are:
 * User:YBG/LivingPOTUS (no parameters) → Row
 * User:YBG/LivingVPOTUS (no parameters) → Row
 * User:YBG/Row ( pvp, ymd1 , nbr1 , evt1 , ymd2 , nbr2 , evt2 , 1 , 2, 3, ... 9, hours ) → EventLink/Box
 * User:YBG/EventLink ( nbr, evt , pvp ) → Lookup
 * User:YBG/Box      ( nbr, evt , pvp ) → Lookup
 * User:YBG/Lookup   ( nbr, data , pvp ) → (none)
 * pvp: office: p(President) or vp(Vice President)
 * ymd: date of the event in yyyy-mm-dd format
 * nbr: ordinal number of service in the office
 * evt: event: p1/pi/v1/vi/vc (p/vp 1st/only inaug/confirmation); d(eath); d1/a1/di/ai (death/assass. + p1/pi); blank (suppresses ± in Box)
 * ymd1/nbr1/evt1 and ymd2/nbr2/evt2: the ymd/nbr/evt associated with the period start and end
 * 1/2/3/4/5/6/7/8/9: ordinal number of the living officeholders during the period
 * data type of data to be returned by Lookup: c color, e.g. "fbb4ae" (to fill boxes); n name of officeholder
 * hours takes on only one value $5 1/2$, the time between the deaths on July 4, 1826

v.2→v.3
More refactoring
 * ✅ Move +/- logic from Box to new (no change) PM
 * ✅ Remove "" from the last "To: (present)" row
 * ✅ Create Name + Color intended to replace Lookup
 * ✅ Convert EventLink to use Name instead of Lookup
 * 1165704+994083 after ✅ Convert Box to use Name and Color instead of Lookup
 * 1162580+991673 after ✅ eliminate pvp in calls of color in box
 * 1162580+991673 after ✅ change pvp to hard-wired p or vp in EventLink in all except death
 * 1157240+987233 after ✅ remove rowspan=1 from Row
 * 1153140+983733 after ✅ Consume dp or dv in EventLink
 * 1153140+983733 after ✅ Change d to dp/dv in POTUS/VOTUS
 * 1160934+987007 after ✅ Eliminate d in EventLink, change pvp to hardwired p/; separate pd from vd
 * 1160934+987007 after ✅ Eliminate pvp from calls of EventLink from Row
 * 1160151+986202 after ✅ Change PM from file to ' or '
 * VOTUS + POTUS post-expand include size
 * Convert test cases
 * Blank Lookup

v.3
where the parameters are:
 * User:YBG/LivingPOTUS (no parameters) → Row
 * User:YBG/LivingVPOTUS (no parameters) → Row
 * User:YBG/Row ( pvp, ymd1 , nbr1 , evt1 , ymd2 , nbr2 , evt2 , 1 , 2, 3, ... 9, hours ) → EventLink/Box/PM
 * User:YBG/EventLink ( nbr, evt , pvp ) → Name -- returns a wikilink to a particular inauguration or death
 * User:YBG/Box      ( nbr, pvp ) → Name/Color -- returns a colored box wikilinked to the POTUS/VOTUS
 * User:YBG/PM       ( evt ) → (none) -- returns a pretty version of ' or '
 * User:YBG/Name     ( nbr, pvp ) → (none) -- returns the canonical version of the POTUS/VOTUS name
 * User:YBG/Color     ( nbr ) → (none) -- returns a color, e.g., "fbb4ae", for filling the boxes
 * pvp: office: p(President) or vp(Vice President)
 * ymd: date of the event in yyyy-mm-dd format
 * nbr: ordinal number of service in the office
 * evt: event: p1/pi/v1/vi/vc (p/vp 1st/only inaug/confirmation); d(eath); d1/a1/di/ai (death/assass. + p1/pi); blank (suppresses ± in Box)
 * ymd1/nbr1/evt1 and ymd2/nbr2/evt2: the ymd/nbr/evt associated with the period start and end
 * 1/2/3/4/5/6/7/8/9: ordinal number of the living officeholders during the period
 * hours takes on only one value $5 1/2$, the time between the deaths on July 4, 1826

v.3→v.4

 * 1763303+1493026 after ✅ User:YBG/Row → User:YBG/PRow + User:YBG/VRow
 * 1775073+1502144 after ✅ User:YBG/Name → User:YBG/PName + User:YBG/VName
 * 1641718+1405921 after ✅ User:YBG/EventLink → User:YBG/PEventLink + UseYBG/VEventLink (messed up somehow)
 * 2009330+1716079 after ✅ User:YBG/Box → User:YBG/PBox + User:YBG/VBox
 * ???????+1709257 after ✅ Change PBox/VBox to call PName/VName directly wo pvp
 * 1997502+1997502 after ✅ Change PEventLink/VEventLink to call PName/VName directly w/o pvp
 * 1757523+1489094 after ✅ fixing some typos
 * 1757523+1489094 after ✅ Change PRow/VRow to cal P/E versions of Name/Row/EventLink directly w/o pvp
 * 1135799+977084 after ✅ Change LivingPOTUS/LivingVOTUS to call PRow/VRow directly wo pvp
 * 1135799+977084 after ✅ Eliminate unnecessary evt in XEventLink
 * 1135799+977084 after ✅ Change non-specific templates to ERROR and verify that not used
 * 1135799+977084 after ✅ Verify that no use of parameter pvp
 * 1135799+977084 after ✅ Compare V and P versions of template, make any needed fixes
 * 1135799+977084 after ✅ Complete all changes contemplated to date
 * 1136024+990973 after ✅ Use PM template in header instead of files
 * 1134968+975165 after ✅ Tweak successor logic: left-justify (and) in PRow; Remove successor checks from VRow
 * 1148588+976131 after ✅ Remove stray apostrophe on final row by moving bold face into switch
 * VOTUS + POTUS post-expand include size
 * Convert test cases
 * Blank Lookup
 * Convert test cases
 * Blank Lookup

v.4
where the parameters are:
 * P/V Living(V)POTUS(no parameters) → XRow
 * P/V XRow( ymd1, nbr1 , evt1 , ymd2 , nbr2 , evt2 , 1 , 2, 3, ... 9, hours ) → XEventLink/XBox/PM
 * P/V XEventLink ( nbr, evt ) → XName -- returns wikilink to particular event
 * P/V XBox( nbr ) → VName/Color -- returns a colored box wikilinked to the POTUS/VOTUS
 * P/V XName( nbr ) → (none) -- returns canonical version of POTUS/VOTUS name
 * Color( nbr ) → (none) -- returns a color, e.g., "fbb4ae", for filling the boxes
 * PM ( evt ) → (none) -- returns ' or '
 * ymd: date of the event in yyyy-mm-dd format
 * nbr: ordinal number of service in the office
 * evt: event: p1/pi/v1/vi/vc (p/vp 1st/only inaug/confirmation); d(eath); d1/a1/di/ai (death/assass. + p1/pi); blank (suppresses ± in Box)
 * ymd1/nbr1/evt1 and ymd2/nbr2/evt2: the ymd/nbr/evt associated with the period start and end
 * 1/2/3/4/5/6/7/8/9: ordinal number of the living officeholders during the period
 * hours takes on only one value $5 1/2$, the time between the deaths on July 4, 1826

v.4→v.5

 * 1148588+975243 after ✅ Use succession-specific params for communicating between xLiving & xRow
 * In xLiving, add e1a, e2a params xRow calls
 * In xRow, consume e1a, e2a params
 * Convert single-param templates to use unnamed params
 * Substeps for all of the tasks below
 * In callees, convert to consume either named or unnamed params
 * In callers, convert to call with unnamed parameters
 * In callees, convert to consume only unnamed params
 * 1148588+975243 after ✅ initial - before changes
 * 1148588+975243 after ✅ Convert PM calls from xLiving, xRow
 * 1119380+975243 after ✅ Convert Color calls from xBox
 * 1148588+975243 after ✅ Convert xName calls from xBox, xEventLink
 * 1148840+977151 after ✅ Convert xBox calls from xRow
 * 1148840+977615 after ✅ Strip spaces from PBox calls; Remove (and)
 * 1148840+977615 after ✅ Purge all templates
 * Finish up succession-specific stuff
 * 1148840+977615 after ✅ In pLiving, replace di/d1/ai/a1 param values with pd, pa
 * 1148840+977665 after ✅ In pBox, delete di/d1/ai/a1 and add pa
 * Tweak whitespace
 * 1148840+958873 after ✅ In xEventLink, remove extra white space
 * 1133610+958873 after ✅ Remove more white space in xEventLink
 * 1114572+941318 after ✅ Remove all extra whitespace in xEventLink using 2 switches
 * 1114572+941318 after ✅ Remove spaces from xBox
 * 1114572+941318 after ✅ Remove newlines from xBox
 * 1113522+940352 after ✅ Remove spaces from Color/PM; refactor bold in PM
 * 1113522+940204 after ✅ Remove spaces after | in +/- section of xRow, also around nowrap
 * 1113344+940204 after ✅ Remove spaces around nowrap in VRow
 * Labels
 * VOTUS + POTUS post-expand include size
 * Delayed tasks
 * Convert test cases
 * Blank Lookup

v.5
where the parameters are:
 * P/V Living(V)POTUS(no parameters) → XRow
 * P/V XRow( ymd1, nbr1 , evt1 , ymd2 , nbr2 , evt2 , 1 , 2, 3, ... 9, hours, e1a, e2a ) → XEventLink/XBox/PM
 * P/V XEventLink ( nbr, evt ) → XName -- returns wikilink to particular event
 * P/V XBox( 1 ) → VName/Color -- returns a colored box wikilinked to the POTUS/VOTUS
 * P/V XName( 1 ) → (none) -- returns canonical version of POTUS/VOTUS name
 * Color( 1 ) → (none) -- returns a color, e.g., "fbb4ae", for filling the boxes
 * PM ( 1.evt ) → (none) -- returns ' or '
 * ymd: date of the event in yyyy-mm-dd format
 * nbr: ordinal number of service in the office
 * evt: event: v1/p1/vi/pi/vc/pa/vd/pd (p/vp 1st/only inaug/confirmation/assassination/death)
 * ymd1/nbr1/evt1 and ymd2/nbr2/evt2: the ymd/nbr/evt associated with the period start and end
 * e1a/e2a: event pi/p1 for the succession after a death (pa/pd) in office
 * 1/2/3/4/5/6/7/8/9: ordinal numbers of living officeholders during period as unnamed params
 * 1 The ordinal number for the single officeholder as an unnamed parameter
 * 1.evt An event code passed as an unnamed parameter
 * hours takes on only one value $5 1/2$, the time between the deaths on July 4, 1826

v.5→v.6

 * Implement suffixed number
 * ✅ Reformat XBox to put newline before pipes
 * ✅ Create Name by combining PName, VName, accepting suffixed ordinals
 * 1113344+940204 after ✅ Verify that size has not changed
 * 1075342+911204 after ✅ Transform XName calls in XBox to Name calls with suffixed ordinals
 * 1075342+911204 after ✅ Transform XName calls in XEventLink to Name calls with suffixed ordinals
 * 1075342+920031 after ✅ Fix 1st inaug pipelink in PEventLink
 * 1075342+920031 after ✅ Change XName into Error returns
 * 1081680+925475 after ✅ Add pv to xRow calls in xLiving; pv+nbr to xBox & its calls in xRow
 * 1081680+925475 after ✅ Modify xRow to call xEventLink with nbrX and xEventLink to accept it
 * 1081680+925475 after ✅ Create Box(pv,nbr)=PBox+VBox; Modify XRow to call Box not xBox
 * _______+______ after ✅ Create EventLink(nbrX)=P+V, Modify XRow to call EventLink not xEventLink
 * _______+______ after ✅ Create Row=P+V; Modify LivingVPOTUS+LivingPOTUS to call Row not xRow
 * 1081324+925179 after ✅ Change XRow, XBox, XEventLink into error calls
 * 1072776+916698 after ✅ Check Row for final (present) row in Event/± columns
 * 1077276+916698 after ✅ Combine vd/pd in EventLink & rename EventLink to Event
 * 1077276+916698 after ❌ Unsuccessful efforts to refactor Event that either didn't work or increased size
 * 1072687+916624 after ✅ Remove noinclude sections from Row
 * 1072064+916124 after ✅ Make POTUS header partially conditional
 * 1073472+918103 after ✅ Copy footers from mainspace
 * ❌ Combine LivingVPOTUS into LivingPOTUS with optional paramter pv
 * ❌ Change LivingVPOTUS into a single call of LivingPOTUS with pv=v


 * Labels
 * VOTUS + POTUS post-expand include size
 * Delayed tasks
 * Convert test cases

v.6
where the parameters are:
 * User:YBG/LivingVPOTUS → Row
 * User:YBG/LivingPOTUS → Row
 * User:YBG/Row( pv, ymd1, nbr1 , evt1 , ymd2 , nbr2 , evt2 , 1 , 2, 3, ... 9, e1a, e2a, hours ) → Event/Box/PM
 * User:YBG/Event( nbrX, evt ) → Name -- returns wikilink to particular event
 * User:YBG/Box( pv, nbr ) → Name/Color -- returns a colored box wikilinked to the POTUS/VOTUS
 * User:YBG/Name( 1.nbrX ) → (none) -- returns canonical version of POTUS/VOTUS name
 * User:YBG/Color( 1.nbr ) → (none) -- returns a color, e.g., "fbb4ae", for filling the boxes
 * User:YBG/PM( 1.evt ) → (none) -- returns ' or '
 * pv: office, 'p', 'v', or 'vp', defaults to 'p'
 * ymd: date of the event in yyyy-mm-dd format
 * nbr/nbrX: ordinal number of service in the office unsuffixed/suffixed by p or v
 * evt: event: v1/p1/vi/pi/vc/pa/vd/pd (p/vp 1st/only inaug/confirmation/assassination/death)
 * ymd1/nbr1/evt1 and ymd2/nbr2/evt2: the ymd/nbr/evt associated with the period start and end
 * e1a/e2a: event pi/p1 for the succession after a death (pa/pd) in office
 * hours takes on only one value $5 1/2$, the time between the deaths on July 4, 1826
 * 1/2/3/4/5/6/7/8/9: Unsuffixed ordinal numbers of living officeholders during period as unnamed params
 * 1.  Unnamed parameter which takes on the domain of

v.6→v.7

 * ✅ Copy Row/Event/PM/Box/Color/Name to subpages
 * ✅ Modify LivingPOTUS/LivingVPOTUS/Row/Event/PM/Box/Color/Name to call templates relatively
 * Change Row/Event/PM/Box/Color/Name to errors & verify that still working OK
 * Copy Row/Event/PM/Box/Color/Name to template space as subpages of main P page
 * Create Row/Event/PM/Box/Color/Name as redirects from subpages of main V page to subpages of main P page
 * Copy LivingPOTUS/LivingVPOTUS to template space
 * Write /doc subpage
 * Add test cases
 * Add sandbox

v.7
where "→" indicates "calls"; "(...)" indicates "having parameters ..."; "≡" indicates "redirects to"; and parameters are:
 * User:YBG/LivingVPOTUS → /Row, /Box, /PM
 * User:YBG/LivingPOTUS → /Row, /Box, /PM
 * User:YBG/LivingVPOTUS/Row≡User:YBG/LivingPOTUS/Row(pv,ymd1,nbr1,evt1,ymd2,nbr2,evt2,1,2,...9,e1a,e2a,hours) → Event/Box/PM
 * User:YBG/LivingVPOTUS/Event≡User:YBG/LivingPOTUS/Event(nbrX,evt) → Name -- returns wikilink to particular event
 * User:YBG/LivingVPOTUS/Box≡User:YBG/LivingPOTUS/Box(pv,nbr) → Name/Color -- returns a colored box wikilinked to the POTUS/VOTUS
 * User:YBG/LivingVPOTUS/Name≡User:YBG/LivingPOTUS/Name(1.nbrX) → (none) -- returns canonical version of POTUS/VOTUS name
 * User:YBG/LivingVPOTUS/Color≡User:YBG/LivingPOTUS/Color(1.nbr) → (none) -- returns a color, e.g., "fbb4ae", for filling the boxes
 * User:YBG/LivingVPOTUS/PM≡User:YBG/LivingPOTUS/PM(1.evt) → (none) -- returns ' or '
 * pv: office, 'p', 'v', or 'vp', defaults to 'p'
 * ymd: date of the event in yyyy-mm-dd format
 * nbr/nbrX: ordinal number of service in the office unsuffixed/suffixed by p or v
 * evt: event: v1/p1/vi/pi/vc/pa/vd/pd (p/vp 1st/only inaug/confirmation/assassination/death)
 * ymd1/nbr1/evt1 and ymd2/nbr2/evt2: the ymd/nbr/evt associated with the period start and end
 * e1a/e2a: event pi/p1 for the succession after a death (pa/pd) in office
 * hours takes on only one value $5 1/2$, the time between the deaths on July 4, 1826
 * 1/2/3/4/5/6/7/8/9: Unsuffixed ordinal numbers of living officeholders during period as unnamed params
 * 1.  Unnamed parameter which takes on the domain of

v.8 - gradually implement in template space
General principles
 * Always call subtemplates with fully qualified template names
 * Parallel P/VP subtemplates completely separate except (maybe) Color, PlusMinus where VP can be a redirect to P


 * ✅ V: Row, Event, Box, Name, Color, PlusMinus
 * ✅ P: Row, Event, Box, Name, Color, PlusMinus


 * V✅/P✅ all possible evt for PlusMinus, Event (actual cases)
 * V✅/P✅ multiple nbr (1,2,9,10,45,46,48,49) for Name, Box (includes Color)


 * V✅/P✅ PlusMinus - exact copy, parameter unnamed, slightly modified to work with null param
 * V✅/P✅ Color - exact copy
 * V✅/P✅ Name - modified subsets
 * V✅/P✅ Box - copy with namespace mods, parameter unnamed
 * V✅/P✅ Event - copy with namespace mods


 * V❌/P❌ Add side-by-side comparison and list of all boxes (later had to delete)
 * V✅/P✅ test cases for Row (from+to; 2*from+to; from+2*to; from+∅; hours)
 * V✅/P✅ implement Row - copy with namespace mods
 * V✅/P✅ implement sandbox - copy with namespace mods


 * ✅ Write doc page
 * ✅ Compare size to current versions
 * 338451/402333 Current POTUS/VOTUS post-expand include size
 * 961493/1126936 Sandbox POTUS/VOTUS post-expand include size
 * ✅ Research relative referencing and possibly implement. See
 * ✅ Convert to relative links
 * ✅ Compare corresponding P- & V-pages:
 * ✅ Add sandbox subpages as copies: /Row, /Event, /PlusMinus, /Box, /Name, /Color
 * ✅ Change sandbox to call templates relatively
 * Relative sandbox failed to work when trying to promote it to template space
 * ✅ Remove relative calls in top level sandbox
 * ✅ Try promoting it again
 * Got the same result as before, so I don't think the problem is the relative paths in the main template.
 * ✅ Change back to using absolute paths in main sandbox and in all non-sandbox subtemplates
 * ✅ Verify that this will display correctly if it is promoted to template
 * ✅ Promote both sandboxes and view main-space page
 * The VP template won't display, probably because template expansions are too large
 * ✅ Revert to previous versions
 * ✅ Compare sizes
 * 379604+54598 Current post-expand include size Living POTUS+VOTUS post
 * 1003151+1168587 Sandbox post-expand include size Living POTUS+VOTUS post


 * See if there is a way to significantly reduce the size of the templates
 * Look at element stuff to see how DePiep has set up sandboxes with subtemplates
 * Figure out how to work sandbox - maybe separate sandbox for every subtemplate?
 * Seek input about implementation

v.8
where (...) indicates parameters; → indicates calls; ≠/≈/≅/≡ indicate increasing levels of comparability; and parameters are indicated by:
 * P = Template:Living presidents of the United States → P/Row,P/Box,P/PlusMinus
 * V = Template:Living vice presidents of the United States → V/Row,V/Box,V/PlusMinus
 * P≠V/sandbox → X/Row,X/Box,X/PlusMinus
 * P≠V/testcases → ...
 * P≠V/Row(ymd1,nbr1,evt1; ymd2,nbr2,evt2; e1a,e2a,hours; 1,2,3,...9) → X/Event,X/PlusMinus,X/Box
 * P≅V/Event(nbr,evt) → X/Name
 * P≡V/PlusMinus(1.evt) → ∅
 * P≅V/Box(1.nbr) → X/Name,X/Color
 * P≈V/Name(1.nbr) → ∅
 * P≡V/Color(1.nbr) → ∅
 * ymd: date of the event in yyyy-mm-dd format
 * nbr: ordinal number of service in the office, 1 for Pres Washington and VP Adams, etc
 * evt: event: i(nauguration), 1(st inauguration), c(onfirmation), d(eath), a(ssassination)
 * ymd1/nbr1/evt1 and ymd2/nbr2/evt2: the ymd/nbr/evt associated with the period start and end
 * e1a/e2a: event i/1 for the succession after a death (a/d) in office
 * hours takes on only one value $5 1/2$, the time between the deaths on July 4, 1826
 * 1/2/3/4/5/6/7/8/9: Ordinal numbers (nbr) of living officeholders during period as unnamed params
 * 1.  Unnamed parameter which takes on the domain of

Reduce size without changing structure

 * 379604+54598 Current post-expand include size Living POTUS+VOTUS post
 * 1003151+1168587 Sandbox post-expand include size Living POTUS+VOTUS post
 * 957789+1114030 after ✅ Change row to accept 1 fewer item in list (max 8)
 * 912427+1059473 after ✅ Reduce max list to 7 each
 * 912427+1059473 after ✅ Remove succession list-items from VP/Row
 * 867065+1059473 after ✅ Reduce max POTUS list size to 6
 * 644685+771373 after ✅ Eliminate rbox call from /Box (note: did not purge, just called view-source: links)
 * 644685+771373 after ✅ Purge before calling view-source links a 2nd time
 * 560833+666219 after ✅ More trim in /Box: Remove border from inner span; combine spans
 * 528233+625319 after ✅ More trim in /Box: Remove nowrap
 * 590455+688483 after ✅ Trim /Row: Call /Box only if necessary (oops, it went up)
 * 542063+639202 after ✅ Undo /Row; Wrap /Box in conditional (recovered most but not all)
 * 570847+680865 after ✅ Modify /Box: restore double span; use inline-block
 * 520627+618710 after ✅ In /Box remove ";font-size:inherit;color:black;" (somehow it slipped back to combined spans)
 * 519875+618776 after ✅ Tweak header and especially footer
 * 519875+618638 after ✅ in main, tweak headers/footers
 * 592385+709060 after ✅ in /Box, add wikitext and black - it would be shorter with span
 * 601075+718988 after ✅ in /Box, changing to using an inner span - but unexpectedly it got bigger!
 * 566971+676841 after ✅ in /Box, change to single span inside wikilink (Yay!)
 * 566971+676841 after ✅ in /Box, fix test at beginning (not sure why extra blocks weren't showing before)
 * 566971+677351 after ✅ in V/Box, fix George Clinton dab reference (why +510 for adding 17 chars in 5 /Box calls???}
 * 567085+677489 after ✅ in main, fix nobold in footer
 * 567085+678368 after ✅ in V/Event, change "Confirmation of" to "VP confirmation of"
 * 567085+677731 after ✅ in V/Event, change to "Confirmation of X as VP"
 * 567085+677731 no change 04:35, 8 February 2018 (UTC)
 * 605441+716087 only change, I believe, is adding documentation footers 07:20, 10 February 2018 (UTC)
 * 567037+757246 No changes that I know of
 * 567037+757246 After manually purging everything from bottom up
 * 567037+757346 After font-size=80% and fixing Geo. Clinton 07:04, 3 April 2018 (UTC)
 * 565376+675997=1526999 template & main space after purging everything from bottom up
 * 567037+757346=_______ sandbox space after purging everything from bottom up 19:24, 6 April 2018 (UTC)