diff --git a/lib/convert-worker.js b/lib/convert-worker.js index ea79761..5873150 100644 --- a/lib/convert-worker.js +++ b/lib/convert-worker.js @@ -465,10 +465,6 @@ function fixCapitalization(xml, book) { // The Speedrunners team name is missing its capitalization a couple times. xml = xml.replace(/speedrunners/g, "Speedrunners"); - // Dauntless is a cape name. The majority of the time "Dauntless Titan" is fully capitalized, but either word - // sometimes is missing its capitalization. - xml = xml.replace(/dauntless titan/ig, "Dauntless Titan"); - // Capitalization is inconsistent, but shard names seems to usually be capitalized. xml = xml.replace(/Grasping self/g, "Grasping Self"); xml = xml.replace(/Cloven stranger/g, "Cloven Stranger"); @@ -563,11 +559,20 @@ function fixCapitalization(xml, book) { // I was very torn on what to do with capitalization for "Titan" and "Titans". In general you don't capitalize species // names or other classifications, e.g. style guides are quite clear you don't capitalize "gods". The author - // capitalizes them more often than not (e.g., 179 raw "Titans" to 49 "titans"), but is quite inconsistent. In the - // end, I decided for capitalization, based on the precedent set by "Endbringers" (which are conceptually paired with - // Titans several times in the text). + // capitalizes them more often than not (e.g., 179 raw "Titans" to 49 "titans"), but is quite inconsistent. + // + // In the end, I decided against de-capitalization, based on the precedent set by "Endbringers" (which are + // conceptually paired with Titans several times in the text). However, we only capitalize the class after they are + // _introduced_ as a class in Sundown 17.y. (Before then we still capitalize individual names like "Dauntless Titan" + // or "Kronos Titan".) if (book === "ward") { + // All plural discussions of "Titans" are after Sundown 17.y. xml = xml.replace(/titans/g, "Titans"); + + // Since we can't safely change all instances of "titan", most are in substitutions.json. We can do a few here, + // though. + xml = xml.replace(/dauntless titan/ig, "Dauntless Titan"); // Sometimes "Dauntless" isn't even capitalized. + xml = xml.replace(/Kronos titan/g, "Kronos Titan"); } return xml; diff --git a/lib/substitutions.json b/lib/substitutions.json index 0c470f6..8249bd6 100644 --- a/lib/substitutions.json +++ b/lib/substitutions.json @@ -7622,18 +7622,30 @@ { "before": "Because it made mom come", "after": "Because it made Mom come" + }, + { + "before": "new titan", + "after": "new Titan" } ], "https://www.parahumans.net/2019/11/12/interlude-17-z-sundown/": [ { "before": "had his powers. the forcefield above", "after": "had his powers. The forcefield above" + }, + { + "regExp": "titan(?![a-z])", + "replacement": "Titan" } ], "https://www.parahumans.net/2019/11/16/radiation-18-1/": [ { "before": "worked for the P.R.T.", "after": "worked for the PRT." + }, + { + "regExp": "titan(?![a-z])", + "replacement": "Titan" } ], "https://www.parahumans.net/2019/11/19/radiation-18-2/": [ @@ -7648,12 +7660,20 @@ { "before": "tents last Winter or Spring", "after": "tents last winter or spring" + }, + { + "regExp": "titan(?![a-z])", + "replacement": "Titan" } ], "https://www.parahumans.net/2019/11/23/radiation-18-3/": [ { "before": "in the eyes. they were a", "after": "in the eyes. They were a" + }, + { + "before": "first look at a titan", + "after": "first look at a Titan" } ], "https://www.parahumans.net/2019/11/26/radiation-18-4/": [ @@ -7668,12 +7688,20 @@ { "before": "some business headquarters I was in
", "after": "some business headquarters I was in." + }, + { + "before": "hunched-over titan", + "after": "hunched-over Titan" } ], "https://www.parahumans.net/2019/12/03/radiation-18-6/": [ { "before": "Some Master minions", "after": "Some master minions" + }, + { + "before": "bomb to a titan", + "after": "bomb to a Titan" } ], "https://www.parahumans.net/2019/12/07/radiation-18-7/": [ @@ -7706,6 +7734,18 @@ "after": "end of the summer" } ], + "https://www.parahumans.net/2019/12/14/radiation-18-9/": [ + { + "before": "the next titan", + "after": "the next Titan" + } + ], + "https://www.parahumans.net/2019/12/17/radiation-18-10/": [ + { + "before": "one titan dogging me", + "after": "one Titan dogging me" + } + ], "https://www.parahumans.net/2019/12/21/interlude-18-z-radiation/": [ { "before": "face where her Uncle would see", @@ -7748,6 +7788,10 @@ "regExp": "([Tt]he) stranger", "replacement": "$1 Stranger", "_comment": "See convert-worker.js; this corrects an over-correction" + }, + { + "before": "because the titan was", + "after": "because the Titan was" } ], "https://www.parahumans.net/2020/01/01/interlude-19-a/": [ @@ -7764,6 +7808,14 @@ { "before": "I thought of dad, seeing him hug my mother", "after": "I thought of Dad, seeing him hug my mother" + }, + { + "before": "One titan mobilizing", + "after": "One Titan mobilizing" + }, + { + "before": "the horrifying titan", + "after": "the horrifying Titan" } ], "https://www.parahumans.net/2020/01/11/infrared-19-b/": [ @@ -7830,6 +7882,10 @@ { "before": "-through the emotion. Emote through the emotion. Emote—", "after": "—through the emotion. Emote through the emotion. Emote—" + }, + { + "before": "titan Ophion’s", + "after": "Titan Ophion’s" } ], "https://www.parahumans.net/2020/01/25/infrared-19-d/": [ @@ -7912,6 +7968,10 @@ { "before": "5’1 “", "after": "5′1″" + }, + { + "before": "pink and black titan", + "after": "pink and black Titan" } ], "https://www.parahumans.net/2020/02/25/last-20-1/": [