From 4908956f0c4c515c2f06cf6b895d20447abb0ae6 Mon Sep 17 00:00:00 2001
From: Domenic Denicola
Date: Sat, 19 Dec 2020 13:40:07 -0500
Subject: [PATCH] Consistently capitalize "Titan"
---
lib/convert-worker.js | 19 ++++++++-----
lib/substitutions.json | 60 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 72 insertions(+), 7 deletions(-)
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/": [