Page MenuHomePhabricator

noinclude tag that ends in the middle of a transclusion prevents the transclusion from being recognized
Closed, DeclinedPublic

Description

https://es.wikipedia.org/api/rest_v1/page/html/Primera_Divisi%C3%B3n_de_Espa%C3%B1a_2017-18#Clasificaci.C3.B3n shows

{{#invoke:Football table|main|estilo=WDL |fuente=La Liga, Marca |nombre_ALA=Deportivo Alavés |nombre_ATH=Athletic Club |nombre_ATM=Atlético de Madrid |nombre_BAR=F. C. Barcelona |nombre_CEL=R. C. Celta de Vigo |nombre_DEP=R. C. D. La Coruña |nombre_EIB=S. D. Eibar |nombre_ESP=R. C. D. Español |nombre_GET=Getafe C. F. |nombre_GIR=Girona F. C. |nombre_LPA=U. D. Las Palmas |nombre_LEG=C. D. Leganés |nombre_LEV=Levante U. D. |nombre_MLG=Malaga C. F. |nombre_BET=Real Betis Balompié |nombre_RMA=Real Madrid C. F. |nombre_RSO=Real Sociedad |nombre_SEV=Sevilla F. C. |nombre_VAL=Valencia C. F. |nombre_VIL=Villarreal C. F. |actualizado=11 de octubre de 2017 |ganados_ALA=1 |empates_ALA=0 |perdidos_ALA=6 |gf_ALA=3 |gc_ALA=10 |ganados_ATH=2 |empates_ATH=2 |perdidos_ATH=3 |gf_ATH=9 |gc_ATH=9 |ganados_ATM=4 |empates_ATM=3 |perdidos_ATM=0 |gf_ATM=12|gc_ATM=4 |ganados_BAR=7 |empates_BAR=0 |perdidos_BAR=0 |gf_BAR=23|gc_BAR=2 |ganados_CEL=2 |empates_CEL=2 |perdidos_CEL=3 |gf_CEL=13|gc_CEL=11 |ganados_DEP=2 |empates_DEP=1 |perdidos_DEP=4 |gf_DEP=9 |gc_DEP=16 |ganados_EIB=2 |empates_EIB=0 |perdidos_EIB=5 |gf_EIB=3 |gc_EIB=17 |ganados_ESP=2 |empates_ESP=3 |perdidos_ESP=3 |gf_ESP=7 |gc_ESP=11 |ganados_GET=2 |empates_GET=2 |perdidos_GET=3 |gf_GET=9 | gc_GET=7 |ganados_GIR=1 |empates_GIR=3 |perdidos_GIR=3 |gf_GIR=6 |gc_GIR=11 |ganados_LPA=2 |empates_LPA=0 |perdidos_LPA=5 |gf_LPA=5 |gc_LPA=13 |ganados_LEG=3 |empates_LEG=2 |perdidos_LEG=2 |gf_LEG=5 |gc_LEG=3 |ganados_LEV=2 |empates_LEV=4 |perdidos_LEV=2 |gf_LEV=8 |gc_LEV=10 |ganados_MLG=0 |empates_MLG=1 |perdidos_MLG=6 |gf_MLG=4 |gc_MLG=16 |ganados_BET=4 |empates_BET=1 |perdidos_BET=2 |gf_BET=14|gc_BET=11 |ganados_RMA=4 |empates_RMA=2 |perdidos_RMA=1 |gf_RMA=13|gc_RMA=6 |ganados_RSO=3 |empates_RSO=1 |perdidos_RSO=3 |gf_RSO=17|gc_RSO=17 |ganados_SEV=5 |empates_SEV=1 |perdidos_SEV=1 |gf_SEV=9 |gc_SEV=3 |ganados_VAL=4 |empates_VAL=3 |perdidos_VAL=0 |gf_VAL=15 |gc_VAL=7 |ganados_VIL=3 |empates_VIL=1 |perdidos_VIL=3 |gf_VIL=9 |gc_VIL=9 |equipo1=BAR |equipo2=SEV |equipo3=VAL |equipo4=ATM |equipo5=RMA |equipo6=BET |equipo7=LEG |equipo8=RSO |equipo9=VIL |equipo10=LEV |equipo11=CEL |equipo12=GET |equipo13=ATH |equipo14=ESP |equipo15=DEP |equipo16=GIR |equipo17=LPA |equipo18=EIB |equipo19=ALA |equipo20=MLG |encabezado_notas=Clasificacion_descenso |color_CLGS=azul6 |texto_CLGS=Fase de grupos de la Liga de Campeones 2018-19 |color_ELGS=amarillo5 |texto_ELGS=Fase de grupos de la Liga Europa 2018-19 |color_EL2Q=amarillo6 |texto_EL2Q=Tercera ronda previa de la Liga Europa 2018-19 |color_REL=rojo2 |texto_REL=Descenso de categoría |resultado1=CLGS |resultado2=CLGS |resultado3=CLGS |resultado4=CLGS |resultado5=ELGS |resultado6=EL2Q |resultado18=REL |resultado19=REL |resultado20=REL |mostrar_limite=5

|reglas_clasificacion =

Puntos · Enfrentamientos directos (/Diferencia de goles) · Diferencia de goles · Goles a favor · Puntos fair-play · Play-off.

}}

Expected to see a table instead. See https://es.wikipedia.org/wiki/Primera_Divisi%C3%B3n_de_Espa%C3%B1a_2017-18#Clasificaci.C3.B3n.

This issue was reported by jem in the Android app on IRC in the #wikimedia-mobile channel today.

Event Timeline

ssastry renamed this task from {{#invoke}} not executed to Tokenizer bug is preventing {{#invoke}} from being recognized as a transclusions when the whole page is parsed.Oct 13 2017, 11:02 PM
ssastry added a project: Parsoid-Tokenizer.
ssastry subscribed.

That wikitext parses just fine by itself. When I copy the wikitext for the containing section, it also parses just fine. But, when I parse the whole page, the peg tokenizer is not recognizing that invoke as a transclusion which indicates there is some bug in the tokenizer that is not clearing some stack (stops) state based on wikitext seen earlier on the page.

ssastry triaged this task as Medium priority.Oct 13 2017, 11:04 PM

The wikitext has unbalanced <noinclude> tags with a <noinclude> that opens at the top of the page and ends in the middle of the invoke transclusion. Parsoid will not support this use case unless there are a lot of affected pages that use this form of misnesting.

The fix would be to edit the wikitext so that the noinclude tag does not split the transclusion in the middle of the page.

There has to be a really convincing argument for us to even consider supporting this since this introduces unnecessary complexity into our codebase which we aren't interested in introducing.

ssastry renamed this task from Tokenizer bug is preventing {{#invoke}} from being recognized as a transclusions when the whole page is parsed to noinclude tag that ends in the middle of a transclusion prevents the transclusion from being recognized.Oct 13 2017, 11:21 PM
ssastry removed a project: Parsoid-Tokenizer.

After removing the <noinclude> tags, this is fixed, as stated here. Thanks everyone. And I give due credit to @Bikendi1991, who originally reported this in the #wikimedia-ayuda IRC channel.