@@ -688,6 +688,28 @@ export abstract class Renderer {
688688 }
689689 }
690690
691+ private removeCitations ( parsoidDoc : DominoElement ) {
692+ // Remove all citation-related material
693+
694+ const sups : DominoElement [ ] = Array . from ( parsoidDoc . getElementsByTagName ( 'sup' ) )
695+ for ( const sup of sups ) {
696+ if ( ! ( sup . getAttribute ( 'class' ) || '' ) . includes ( 'reference' ) ) {
697+ continue
698+ }
699+ DU . deleteNode ( sup )
700+ }
701+
702+ const citeErrors : DominoElement [ ] = Array . from ( parsoidDoc . getElementsByClassName ( 'mw-ext-cite-error' ) )
703+ for ( const citeError of citeErrors ) {
704+ DU . deleteNode ( citeError )
705+ }
706+
707+ const references : DominoElement [ ] = Array . from ( parsoidDoc . getElementsByClassName ( 'mw-references-wrap' ) )
708+ for ( const reference of references ) {
709+ DU . deleteNode ( reference )
710+ }
711+ }
712+
691713 private clearLinkAndInputTags ( parsoidDoc : DominoElement , filtersConfig : any , dump : Dump ) {
692714 /* Don't need <link> and <input> tags */
693715 const nodesToDelete : Array < { class ?: string ; tag ?: string ; filter ?: ( n : any ) => boolean } > = [ { tag : 'link' } , { tag : 'input' } ]
@@ -792,6 +814,10 @@ export abstract class Renderer {
792814 private applyOtherTreatments ( parsoidDoc : DominoElement , dump : Dump , articleId : string ) {
793815 this . removeIframeTags ( parsoidDoc )
794816
817+ if ( dump . nodet ) {
818+ this . removeCitations ( parsoidDoc )
819+ }
820+
795821 const filtersConfig = config . filters
796822 this . clearLinkAndInputTags ( parsoidDoc , filtersConfig , dump )
797823
0 commit comments