From 365f1295744749fa075c08f61baadf58c28d5d7c Mon Sep 17 00:00:00 2001 From: NovemLinguae Date: Mon, 30 Oct 2023 12:16:13 -0700 Subject: [PATCH] swapRefCommaWithCommaRef() --- DraftCleaner/modules/DraftCleaner.js | 11 +++++++++-- DraftCleaner/tests/DraftCleaner.test.js | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/DraftCleaner/modules/DraftCleaner.js b/DraftCleaner/modules/DraftCleaner.js index d3c043a..64dbc9d 100644 --- a/DraftCleaner/modules/DraftCleaner.js +++ b/DraftCleaner/modules/DraftCleaner.js @@ -70,7 +70,8 @@ export class DraftCleaner { wikicode = this.deleteSpacesInFrontOfRefs(wikicode); wikicode = this.deleteNewLinesBetweenRefs(wikicode); wikicode = this.swapRefPeriodWithPeriodRef(wikicode); - + wikicode = this.swapRefCommaWithCommaRef(wikicode); + // stuff we want to run at the end wikicode = this.fixDoublePeriod(wikicode); // need test cases. I've seen this one not work. wikicode = this.boldArticleTitle(wikicode, titleWithNamespaceAndSpaces); @@ -214,12 +215,18 @@ export class DraftCleaner { return wikicode.replace(/^== ?Reference ?==$/gmi, '== References =='); } - // TOOL - swap ref period with period ref + // TOOL - swap ref period with period ref swapRefPeriodWithPeriodRef(wikicode) { wikicode = wikicode.replace(/((?:]*?>[^>]*?<\/ref>){1,})\. /gm, '.$1 '); wikicode = wikicode.replace(/((?:]*?>[^>]*?<\/ref>){1,})\.\n/gm, ".$1\n"); return wikicode; } + + swapRefCommaWithCommaRef(wikicode) { + wikicode = wikicode.replace(/((?:]*?>[^>]*?<\/ref>){1,})\, /gm, ',$1 '); + wikicode = wikicode.replace(/((?:]*?>[^>]*?<\/ref>){1,})\,\n/gm, ",$1\n"); + return wikicode; + } // fix errant spaces at beginning of lines, which makes a blockquote looking thing (AFCH does it) trimEveryLine(wikicode) { diff --git a/DraftCleaner/tests/DraftCleaner.test.js b/DraftCleaner/tests/DraftCleaner.test.js index 4f840c7..960729c 100644 --- a/DraftCleaner/tests/DraftCleaner.test.js +++ b/DraftCleaner/tests/DraftCleaner.test.js @@ -1380,6 +1380,27 @@ describe(`swapRefPeriodWithPeriodRef(wikicode2)`, () => { }); }); + +describe(`swapRefCommaWithCommaRef(wikicode2)`, () => { + test(`Single`, () => { + let wikicode2 = `[[WMO]]{{Cite web |date=2018-06-06 |title=Public-Private Engagement (PPE) |url=https://public.wmo.int/en/our-mandate/how-we-do-it/public-private-engagement-ppe |access-date=2022-03-29 |website=public.wmo.int |language=en}},\n`; + let output = '[[WMO]],{{Cite web |date=2018-06-06 |title=Public-Private Engagement (PPE) |url=https://public.wmo.int/en/our-mandate/how-we-do-it/public-private-engagement-ppe |access-date=2022-03-29 |website=public.wmo.int |language=en}}\n'; + expect(dc.swapRefCommaWithCommaRef(wikicode2)).toBe(output); + }); + + test(`Double`, () => { + let wikicode2 = `[[WMO]]TestTest2,\n`; + let output = '[[WMO]],TestTest2\n'; + expect(dc.swapRefCommaWithCommaRef(wikicode2)).toBe(output); + }); + + test.skip(` style refs`, () => { + let wikicode2 = `[[WMO]]{{Cite web |date=2018-06-06 |title=Public-Private Engagement (PPE) |url=https://public.wmo.int/en/our-mandate/how-we-do-it/public-private-engagement-ppe |access-date=2022-03-29 |website=public.wmo.int |language=en}},\n`; + let output = '[[WMO]],{{Cite web |date=2018-06-06 |title=Public-Private Engagement (PPE) |url=https://public.wmo.int/en/our-mandate/how-we-do-it/public-private-engagement-ppe |access-date=2022-03-29 |website=public.wmo.int |language=en}}\n'; + expect(dc.swapRefCommaWithCommaRef(wikicode2)).toBe(output); + }); +}); + describe(`removeBorderFromImagesInInfoboxes(wikicode2)`, () => { test(`Don't change`, () => { let wikicode2 =