Page MenuHomePhabricator

Some nested refs not handled properly in Parsoid?
Closed, ResolvedPublic

Description

See https://es.wikipedia.org/api/rest_v1/page/html/Espa%C3%B1a vs https://es.wikipedia.org/wiki/Espa%C3%B1a

The wikitext source has multiple {{Refn|... }} with several <ref> tags in there. It seems that the {{Refn|..}} is generating nested refs and I think Parsoid's cite port is missing some trick here.

From https://github.com/openzim/mwoffliner/issues/62

Event Timeline

ssastry triaged this task as Medium priority.Jul 9 2018, 3:53 AM
ssastry moved this task from Needs Triage to Read Views on the Parsoid board.

The wikitext in question is:

{{Refn|La Constitución no hace referencia explícita a la oficialidad de ningún nombre, empleando en su articulado el término ''España'' —«España se constituye en un Estado social y democrático de Derecho [...]» (artículo 1.1)— para hacer referencia al país.{{harvnp|Cortes Generales|1978|texto=Constitución española, 1978|loc=art. 1}} ''Reino de España'' es también una denominación legal, empleada oficialmente como nombre protocolario, 
<ref>{{Cita web |url=http://www.exteriores.gob.es/Portal/es/Ministerio/Historia/Protocolo/Documents/1_4_4_NORMAS_PROTOCOLO.pdf |página=110 |título=Normas básicas sobre protocolo y condecoraciones, del Ministerio de Exteriores de España |cita=La cita de un país deberá hacerse mediante su denominación usual (Alemania, Francia, Reino Unido, China, España) o mediante la denominación oficial, cuando proceda (República Federal de Alemania, República Francesa, Reino Unido de Gran Bretaña e Irlanda del Norte, República Popular de China, Reino de España)}}</ref>
<ref>{{Cita web |url=https://www.boe.es/boe/dias/2005/07/29/pdfs/A26878-26890.pdf |título=Resolución de 28 de julio de 2005, de la Subsecretaría, por la que se da publicidad al Acuerdo del Consejo de Ministros, de 22 de julio de 2005, por el que se aprueban las Directrices de técnica normativa |fecha=28 de julio de 2005 |obra=[[Boletín Oficial del Estado]] {{sin cursiva|núm. 180 de 29 de julio de 2005}} |editorial=[[Agencia Estatal Boletín Oficial del Estado]] |autor=Ministerio de la Presidencia}}</ref>
<ref name="Reino de España">{{Cita publicación |publicación= [[Unión Europea]] |url=http://publications.europa.eu/code/es/es-370100.htm |título=Libro de estilo interinstitucional. Denominaciones y siglas preceptivas}}</ref> en todos los [[tratado internacional|tratados y convenios internacionales]],
<ref>{{Cita web |url=http://www.boe.es/boe/dias/2014/11/28/pdfs/BOE-A-2014-12326.pdf |título=Ley 25/2014, de 27 de noviembre, de Tratados y otros Acuerdos Internacionales |obra=[[Boletín Oficial del Estado]] {{sin cursiva|núm. 288}}. |fecha=28 de noviembre de 2014 |editorial=[[Agencia Estatal Boletín Oficial del Estado]] |autor=[[Rey de España|Jefatura del Estado]] |cita=Artículo 8. Denominación del Estado español. La denominación oficial del Estado español en los tratados internacionales será «Reino de España». / Artículo 38. Requisitos. [...] 4. En los acuerdos internacionales administrativos regulados por la presente Ley se incluirá, en todo caso, la referencia a «Reino de España» junto con la mención del órgano, organismo o ente que los celebre. / Artículo 47. Mención expresa del Estado. En los acuerdos internacionales no normativos se incluirá en todo caso la referencia a «Reino de España» junto con la mención del signatario.}}</ref>
<ref>{{Cita publicación |publicación=[[El País]] |url=http://politica.elpais.com/politica/2013/10/17/actualidad/1382034532_501960.html |título=Zapatero cambia una ley de Rajoy |fecha=17 de octubre de 2013 |nombre=Fernando | apellidos=Garea |nombre2=Miguel | apellidos2=González |fechaacceso=18 de octubre de 2013}}</ref> ciertos [[documento público|documentos públicos]]
<ref name="ORDEN PRE/1355/2005, de 16 de mayo">{{Cita web |título=Orden PRE/1355/2005, de 16 de mayo, por la que se modifica el anexo XIII del Reglamento General de Vehículos, aprobado por Real Decreto 2822/1998, de 23 de diciembre, para implantar el nuevo modelo del permiso de circulación |url=https://www.boe.es/diario_boe/txt.php?id=BOE-A-2005-7984 |obra=[[Boletín Oficial del Estado]] {{sin cursiva|núm. 117, de 17 de mayo de 2005}} |fecha=16 de mayo de 2005 |editorial=[[Agencia Estatal Boletín Oficial del Estado]] |cita=2. El permiso de circulación tendrá los siguientes datos: La mención "REINO DE ESPAÑA" [...]}}</ref>
<ref>{{Cita web |url=http://www.dgt.es/Galerias/seguridad-vial/formacion-vial/cursos-para-profesores-y-directores-de-autoescuelas/doc/XIV_Curso_27_NormativaReguladoraPruebas.pdf |título=Normativa por la que se regulan los permisos de conducción, sus clases y las pruebas de aptitud a realizar para su obtención |fechaacceso=21 de agosto de 2015 |autor=Área de Formación y Comportamiento de Conductores |fecha=2011 |editorial=[[Dirección General de Tráfico]] |cita=El permiso constará de dos caras y el la {{sic}} cara o página 1 contendrá: [...] 2.- La mención «Reino de España» [...]}}</ref>y diversas publicaciones gubernamentales.<ref>{{Cita web |url=http://www.msssi.gob.es/ssi/familiasInfancia/inclusionSocial/docs/PlanNacionalAccionInclusionSocial_2013_2016.pdf |título=Plan Nacional de Acción para la Inclusión Social del Reino de España 2013-2016 |fecha=2013 |fechaacceso=30 de diciembre de 2015 |editorial=[[Ministerio de Sanidad, Servicios Sociales e Igualdad]]}}</ref>
<ref>{{Cita web |url=http://www.mineco.gob.es/stfls/mineco/prensa/ficheros/noticias/2013/131017_1_DBP_SPAIN_REV2_19_00VF.PDF |título=Plan Presupuestario 2014. Reino de España |fechaacceso=19 de enero de 2016 |fecha=2013 |editorial=[[Ministerio de Economía y Competitividad]]}}</ref>
<ref>{{Cita web |url=http://www.mineco.gob.es/stfls/mineco/comun/pdf/programa_estabilidad_2013_2016.pdf |título=Actualización del programa de estabilidad. Reino de España. 2013-2016 |año=2013 |editorial=[[Ministerio de Economía y Competitividad]]}}</ref>
<ref>{{Cita web |url=http://www.empleo.gob.es/es/mundo/ |título=El Ministerio en el mundo |editorial=[[Ministerio de Empleo y Seguridad Social]] |cita=Las Consejerías de Empleo y Seguridad Social son órganos técnicos de las Misiones Diplomáticas Permanentes del Reino de España.}}</ref>
 En las demás lenguas cooficiales es:
* [[aranés]]: ''Espanha'', ''Regne d'Espanha'';
* [[idioma catalán|catalán]] o [[valenciano]]: ''Espanya'', ''Regne d'Espanya'';
* [[euskera]]: ''Espainia'', ''Espainiako Erresuma'';
* [[idioma gallego|gallego]]: ''España'', ''Reino de España''.|group="nota"|name="aclaraciones"}}

The expanded wikitext for that transclusion (via --dump tplsrc) is:

<ref name="aclaraciones" group="nota">La Constitución no hace referencia explícita a la oficialidad de ningún nombre, empleando en su articulado el término ''España'' —«España se constituye en un Estado social y democrático de Derecho [...]» (artículo 1.1)— para hacer referencia al país.<ref name="FOOTNOTECortes Generales1978art. 1" group="">[[#CITAREFCortes Generales1978|Constitución española, 1978]], art. 1.</ref> ''Reino de España'' es también una denominación legal, empleada oficialmente como nombre protocolario,
<ref>{{Cita web |url=http://www.exteriores.gob.es/Portal/es/Ministerio/Historia/Protocolo/Documents/1_4_4_NORMAS_PROTOCOLO.pdf |página=110 |título=Normas básicas sobre protocolo y condecoraciones, del Ministerio de Exteriores de España |cita=La cita de un país deberá hacerse mediante su denominación usual (Alemania, Francia, Reino Unido, China, España) o mediante la denominación oficial, cuando proceda (República Federal de Alemania, República Francesa, Reino Unido de Gran Bretaña e Irlanda del Norte, República Popular de China, Reino de España)}}</ref> 
<ref>{{Cita web |url=https://www.boe.es/boe/dias/2005/07/29/pdfs/A26878-26890.pdf |título=Resolución de 28 de julio de 2005, de la Subsecretaría, por la que se da publicidad al Acuerdo del Consejo de Ministros, de 22 de julio de 2005, por el que se aprueban las Directrices de técnica normativa |fecha=28 de julio de 2005 |obra=[[Boletín Oficial del Estado]] {{sin cursiva|núm. 180 de 29 de julio de 2005}} |editorial=[[Agencia Estatal Boletín Oficial del Estado]] |autor=Ministerio de la Presidencia}}</ref>
<ref name="Reino de España">{{Cita publicación |publicación= [[Unión Europea]] |url=http://publications.europa.eu/code/es/es-370100.htm |título=Libro de estilo interinstitucional. Denominaciones y siglas preceptivas}}</ref> en todos los [[tratado internacional|tratados y convenios internacionales]],
<ref>{{Cita web |url=http://www.boe.es/boe/dias/2014/11/28/pdfs/BOE-A-2014-12326.pdf |título=Ley 25/2014, de 27 de noviembre, de Tratados y otros Acuerdos Internacionales |obra=[[Boletín Oficial del Estado]] {{sin cursiva|núm. 288}}. |fecha=28 de noviembre de 2014 |editorial=[[Agencia Estatal Boletín Oficial del Estado]] |autor=[[Rey de España|Jefatura del Estado]] |cita=Artículo 8. Denominación del Estado español. La denominación oficial del Estado español en los tratados internacionales será «Reino de España». / Artículo 38. Requisitos. [...] 4. En los acuerdos internacionales administrativos regulados por la presente Ley se incluirá, en todo caso, la referencia a «Reino de España» junto con la mención del órgano, organismo o ente que los celebre. / Artículo 47. Mención expresa del Estado. En los acuerdos internacionales no normativos se incluirá en todo caso la referencia a «Reino de España» junto con la mención del signatario.}}</ref>
<ref>{{Cita publicación |publicación=[[El País]] |url=http://politica.elpais.com/politica/2013/10/17/actualidad/1382034532_501960.html |título=Zapatero cambia una ley de Rajoy |fecha=17 de octubre de 2013 |nombre=Fernando | apellidos=Garea |nombre2=Miguel | apellidos2=González |fechaacceso=18 de octubre de 2013}}</ref> ciertos [[documento público|documentos públicos]]
<ref name="ORDEN PRE/1355/2005, de 16 de mayo">{{Cita web |título=Orden PRE/1355/2005, de 16 de mayo, por la que se modifica el anexo XIII del Reglamento General de Vehículos, aprobado por Real Decreto 2822/1998, de 23 de diciembre, para implantar el nuevo modelo del permiso de circulación |url=https://www.boe.es/diario_boe/txt.php?id=BOE-A-2005-7984 |obra=[[Boletín Oficial del Estado]] {{sin cursiva|núm. 117, de 17 de mayo de 2005}} |fecha=16 de mayo de 2005 |editorial=[[Agencia Estatal Boletín Oficial del Estado]] |cita=2. El permiso de circulación tendrá los siguientes datos: La mención "REINO DE ESPAÑA" [...]}}</ref>
<ref>{{Cita web |url=http://www.dgt.es/Galerias/seguridad-vial/formacion-vial/cursos-para-profesores-y-directores-de-autoescuelas/doc/XIV_Curso_27_NormativaReguladoraPruebas.pdf |título=Normativa por la que se regulan los permisos de conducción, sus clases y las pruebas de aptitud a realizar para su obtención |fechaacceso=21 de agosto de 2015 |autor=Área de Formación y Comportamiento de Conductores |fecha=2011 |editorial=[[Dirección General de Tráfico]] |cita=El permiso constará de dos caras y el la {{sic}} cara o página 1 contendrá: [...] 2.- La mención «Reino de España» [...]}}</ref>y diversas publicaciones gubernamentales.
<ref>{{Cita web |url=http://www.msssi.gob.es/ssi/familiasInfancia/inclusionSocial/docs/PlanNacionalAccionInclusionSocial_2013_2016.pdf |título=Plan Nacional de Acción para la Inclusión Social del Reino de España 2013-2016 |fecha=2013 |fechaacceso=30 de diciembre de 2015 |editorial=[[Ministerio de Sanidad, Servicios Sociales e Igualdad]]}}</ref>
<ref>{{Cita web |url=http://www.mineco.gob.es/stfls/mineco/prensa/ficheros/noticias/2013/131017_1_DBP_SPAIN_REV2_19_00VF.PDF |título=Plan Presupuestario 2014. Reino de España |fechaacceso=19 de enero de 2016 |fecha=2013 |editorial=[[Ministerio de Economía y Competitividad]]}}</ref>
<ref>{{Cita web |url=http://www.mineco.gob.es/stfls/mineco/comun/pdf/programa_estabilidad_2013_2016.pdf |título=Actualización del programa de estabilidad. Reino de España. 2013-2016 |año=2013 |editorial=[[Ministerio de Economía y Competitividad]]}}</ref>
<ref>{{Cita web |url=http://www.empleo.gob.es/es/mundo/ |título=El Ministerio en el mundo |editorial=[[Ministerio de Empleo y Seguridad Social]] |cita=Las Consejerías de Empleo y Seguridad Social son órganos técnicos de las Misiones Diplomáticas Permanentes del Reino de España.}}</ref>
 En las demás lenguas cooficiales es:
* [[aranés]]: ''Espanha'', ''Regne d'Espanha'';
* [[idioma catalán|catalán]] o [[valenciano]]: ''Espanya'', ''Regne d'Espanya'';
* [[euskera]]: ''Espainia'', ''Espainiako Erresuma'';
* [[idioma gallego|gallego]]: ''España'', ''Reino de España''.</ref>
--------------------------------------------------------------------------------
LGoto lowered the priority of this task from Medium to Low.Mar 6 2020, 5:26 PM
LGoto moved this task from Read Views to Needs Investigation on the Parsoid board.
Arlolra moved this task from Needs Investigation to Bugs & Crashers on the Parsoid board.
Arlolra added a subscriber: Arlolra.

The problem seems to be here <ref name="ORDEN PRE/1355/2005, de 16 de mayo">

That's not going to be match the opening tag from $startTagRE = '~<' . preg_quote( $tagName, '~' ) . '[^/<>]*>~i'; in the expansion code,
https://github.com/wikimedia/parsoid/blob/master/src/Wt2Html/Grammar.pegphp#L207-L245

Change 668850 had a related patch set uploaded (by Arlolra; owner: Arlolra):
[mediawiki/services/parsoid@master] [WIP] More permissive regexp for nested extension start tags

https://gerrit.wikimedia.org/r/668850

Change 668850 merged by jenkins-bot:
[mediawiki/services/parsoid@master] More permissive regexp for nested extension start tags

https://gerrit.wikimedia.org/r/668850

Change 672528 had a related patch set uploaded (by C. Scott Ananian; owner: C. Scott Ananian):
[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.13.0-a27

https://gerrit.wikimedia.org/r/672528

Change 672528 merged by jenkins-bot:
[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.13.0-a27

https://gerrit.wikimedia.org/r/672528

@Arlolra Thx for the patch. Hopefuly soon in prod!

@Arlolra Thx for the patch. Hopefuly soon in prod!

The train ran an hour ago.

I did an ?action=purge and everything looks good.

https://es.wikipedia.org/api/rest_v1/page/html/Espa%C3%B1a#Notas

vs

https://es.wikipedia.org/wiki/Espa%C3%B1a#Notas