Skip to content

Commit ec2a263

Browse files
committed
fix: Categories in paths should be case insensitive
Fixes #38
1 parent ec51899 commit ec2a263

File tree

1 file changed

+22
-20
lines changed

1 file changed

+22
-20
lines changed

.github/scripts/generate_navigation.java

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import static java.lang.System.lineSeparator;
2424
import static java.nio.charset.StandardCharsets.UTF_8;
2525
import static java.nio.file.FileVisitResult.CONTINUE;
26+
import static java.util.Locale.ENGLISH;
2627
import static java.util.stream.Collectors.groupingBy;
2728

2829
public class generate_navigation {
@@ -77,7 +78,7 @@ public static void main(String... args) throws Exception {
7778
features.add(feature);
7879

7980
for (String category : categories) {
80-
categoriesMap.computeIfAbsent(category, c -> new TreeSet<>()).add(feature);
81+
categoriesMap.computeIfAbsent(category.toLowerCase(ENGLISH), c -> new TreeSet<>()).add(feature);
8182
}
8283

8384
versionsMap.computeIfAbsent(version, v -> new TreeSet<>()).add(feature);
@@ -95,13 +96,13 @@ private static void generateIncludes(Path path, Map<String, ? extends Item> oute
9596
Files.createDirectories(pages);
9697

9798
for (Item o : outer.values()) {
98-
var index = pages.resolve(o.getId()).resolve("index.adoc");
99+
var index = pages.resolve(o.getId().toLowerCase(ENGLISH)).resolve("index.adoc");
99100
Files.createDirectories(index.getParent());
100-
Files.write(index, ("include::" + outerLabel + ":partial$" + o.getId() + ".adoc[]" + lineSeparator()).getBytes(UTF_8));
101+
Files.write(index, ("include::" + outerLabel + ":partial$" + o.getId().toLowerCase(ENGLISH) + ".adoc[]" + lineSeparator()).getBytes(UTF_8));
101102
for (Item i : inner.values()) {
102-
index = pages.resolve(o.getId()).resolve(i.getId()).resolve("index.adoc");
103+
index = pages.resolve(o.getId().toLowerCase(ENGLISH)).resolve(i.getId().toLowerCase(ENGLISH)).resolve("index.adoc");
103104
Files.createDirectories(index.getParent());
104-
Files.write(index, ("include::" + innerLabel + ":partial$" + i.getId() + ".adoc[]" + lineSeparator()).getBytes(UTF_8));
105+
Files.write(index, ("include::" + innerLabel + ":partial$" + i.getId().toLowerCase(ENGLISH) + ".adoc[]" + lineSeparator()).getBytes(UTF_8));
105106
}
106107
}
107108
}
@@ -112,22 +113,23 @@ private static void generateNavigation(Path path, Map<String, Set<Feature>> data
112113

113114
for (Map.Entry<String, Set<Feature>> e : data.entrySet()) {
114115
var classifier = e.getKey();
116+
var normalizedClassifier = classifier.toLowerCase(ENGLISH);
115117
var features = e.getValue();
116118

117-
System.out.printf("🔖 Generating %s%n", classifier);
118-
var index = path.resolve("pages/" + classifier + "/index.adoc");
119+
System.out.printf("🔖 Generating %s%n", normalizedClassifier);
120+
var index = path.resolve("pages/" + normalizedClassifier + "/index.adoc");
119121
// create page if it does not exist
120122
if (!Files.exists(index)) {
121123
Files.createDirectories(index.getParent());
122124
Files.write(index, ("= " + classifier + lineSeparator()).getBytes(UTF_8));
123125
}
124126

125127
indexNav.append("** xref:")
126-
.append(classifier)
128+
.append(normalizedClassifier)
127129
.append("/index.adoc[]")
128130
.append(lineSeparator());
129131

130-
System.out.printf("🔖 Generating %s/features%n", classifier);
132+
System.out.printf("🔖 Generating %s/features%n", normalizedClassifier);
131133

132134
indexNav.append("*** All")
133135
.append(lineSeparator());
@@ -136,15 +138,15 @@ private static void generateNavigation(Path path, Map<String, Set<Feature>> data
136138
var featureFilename = feature.path.getFileName().toString();
137139

138140
indexNav.append("**** xref:")
139-
.append(classifier)
141+
.append(normalizedClassifier)
140142
.append("/features/")
141143
.append(featureFilename)
142144
.append("[]")
143145
.append(lineSeparator());
144146

145147
// create partial
146-
System.out.printf("📝 Generating %s/features/%s%n", classifier, featureFilename);
147-
var partial = path.resolve("pages/" + classifier + "/features/" + featureFilename);
148+
System.out.printf("📝 Generating %s/features/%s%n", normalizedClassifier, featureFilename);
149+
var partial = path.resolve("pages/" + normalizedClassifier + "/features/" + featureFilename);
148150
Files.createDirectories(partial.getParent());
149151
Files.write(partial, ("include::features:partial$" + featureFilename + "[]" + lineSeparator()).getBytes(UTF_8));
150152
}
@@ -157,10 +159,10 @@ private static void generateNavigation(Path path, Map<String, Set<Feature>> data
157159
for (Map.Entry<String, List<Feature>> ve : versionedFeatures.entrySet()) {
158160
String version = ve.getKey();
159161

160-
System.out.printf("🔖 Generating %s/%s%n", classifier, version);
162+
System.out.printf("🔖 Generating %s/%s%n", normalizedClassifier, version);
161163

162164
indexNav.append("*** xref:")
163-
.append(classifier)
165+
.append(normalizedClassifier)
164166
.append("/")
165167
.append(version)
166168
.append("/index.adoc[]")
@@ -179,8 +181,8 @@ private static void generateNavigation(Path path, Map<String, Set<Feature>> data
179181
.append(lineSeparator());
180182

181183
// create partial
182-
System.out.printf("📝 Generating %s/%s/%s%n", classifier, version, featureFilename);
183-
var partial = path.resolve("pages/" + classifier + "/" + version + "/" + featureFilename);
184+
System.out.printf("📝 Generating %s/%s/%s%n", normalizedClassifier, version, featureFilename);
185+
var partial = path.resolve("pages/" + normalizedClassifier + "/" + version + "/" + featureFilename);
184186
Files.createDirectories(partial.getParent());
185187
Files.write(partial, ("include::features:partial$" + featureFilename + "[]" + lineSeparator()).getBytes(UTF_8));
186188
}
@@ -189,13 +191,13 @@ private static void generateNavigation(Path path, Map<String, Set<Feature>> data
189191
var categorized = new TreeMap<String, Set<Feature>>();
190192
for (Feature feature : features) {
191193
for (String category : feature.categories) {
192-
categorized.computeIfAbsent(category, k -> new TreeSet<>())
194+
categorized.computeIfAbsent(category.toLowerCase(ENGLISH), k -> new TreeSet<>())
193195
.add(feature);
194196
}
195197
}
196198

197199
for (Map.Entry<String, Set<Feature>> k : categorized.entrySet()) {
198-
var category = k.getKey();
200+
var category = k.getKey().toLowerCase(ENGLISH);
199201

200202
System.out.printf("🔖 Generating %s/%s%n", classifier, category);
201203

@@ -261,7 +263,7 @@ private static <I extends Item> void copyPartials(Collection<I> items, String ti
261263
.append(lineSeparator());
262264
for (Item item : items) {
263265
content.append("* xref:")
264-
.append(item.getId())
266+
.append(item.getId().toLowerCase(ENGLISH))
265267
.append("/index.adoc[]")
266268
.append(lineSeparator());
267269
}
@@ -412,7 +414,7 @@ private String asSummary() {
412414
var category = categories[i];
413415
if (i > 0) b.append(", ");
414416
b.append("xref:categories:")
415-
.append(category)
417+
.append(category.toLowerCase(ENGLISH))
416418
.append("/index.adoc[]");
417419
}
418420
b.append(lineSeparator());

0 commit comments

Comments
 (0)