Skip to content

Commit 9102bad

Browse files
dreis2211philwebb
authored andcommitted
Simplify pipe escaping for reference doc tables
Replace `{vbar}` with an escaped pipe character. Unfortunately `{vbar}` does not render correctly with PDF generation. See gh-18374
1 parent 4a32b7c commit 9102bad

File tree

6 files changed

+29
-28
lines changed

6 files changed

+29
-28
lines changed

spring-boot-project/spring-boot-tools/spring-boot-configuration-docs/src/main/java/org/springframework/boot/configurationdocs/CompoundConfigurationTableEntry.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ void addConfigurationKeys(ConfigurationMetadataProperty... properties) {
4545

4646
@Override
4747
void write(AsciidocBuilder builder) {
48-
builder.append("¦");
48+
builder.append("|");
4949
this.configurationKeys.forEach(builder::appendKey);
50-
builder.newLine().appendln("¦").appendln("¦+++", this.description, "+++");
50+
builder.newLine().appendln("|").appendln("|+++", this.description, "+++");
5151
}
5252

5353
}

spring-boot-project/spring-boot-tools/spring-boot-configuration-docs/src/main/java/org/springframework/boot/configurationdocs/ConfigurationTable.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ void addEntry(ConfigurationTableEntry... entries) {
4646

4747
String toAsciidocTable() {
4848
AsciidocBuilder builder = new AsciidocBuilder();
49-
builder.appendln("[cols=\"1,1,2\", separator=¦, options=\"header\"]");
49+
builder.appendln("[cols=\"1,1,2\", options=\"header\"]");
5050
builder.appendln("|===");
51-
builder.appendln("¦Key¦Default Value¦Description");
51+
builder.appendln("|Key|Default Value|Description");
5252
builder.appendln();
5353
this.entries.forEach((entry) -> {
5454
entry.write(builder);

spring-boot-project/spring-boot-tools/spring-boot-configuration-docs/src/main/java/org/springframework/boot/configurationdocs/SingleConfigurationTableEntry.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,29 +54,30 @@ private String getDefaultValue(Object defaultValue) {
5454

5555
@Override
5656
void write(AsciidocBuilder builder) {
57-
builder.appendln("¦`+", this.key, "+`");
57+
builder.appendln("|`+", this.key, "+`");
5858
writeDefaultValue(builder);
5959
writeDescription(builder);
6060
builder.appendln();
6161
}
6262

6363
private void writeDefaultValue(AsciidocBuilder builder) {
6464
String defaultValue = (this.defaultValue != null) ? this.defaultValue : "";
65-
defaultValue = defaultValue.replace("\\", "\\\\");
65+
defaultValue = defaultValue.replace("\\", "\\\\").replace("|", "\\|");
6666
if (defaultValue.isEmpty()) {
67-
builder.appendln("¦");
67+
builder.appendln("|");
6868
}
6969
else {
70-
builder.appendln("¦`+", defaultValue, "+`");
70+
builder.appendln("|`+", defaultValue, "+`");
7171
}
7272
}
7373

7474
private void writeDescription(AsciidocBuilder builder) {
7575
if (this.description == null || this.description.isEmpty()) {
76-
builder.append("¦");
76+
builder.append("|");
7777
}
7878
else {
79-
builder.append("¦+++", this.description, "+++");
79+
String cleanedDescription = this.description.replace("|", "\\|");
80+
builder.append("|+++", cleanedDescription, "+++");
8081
}
8182
}
8283

spring-boot-project/spring-boot-tools/spring-boot-configuration-docs/src/test/java/org/springframework/boot/configurationdocs/CompoundConfigurationTableEntryTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ void simpleProperty() {
4848
AsciidocBuilder builder = new AsciidocBuilder();
4949
entry.write(builder);
5050
assertThat(builder.toString()).isEqualTo(
51-
"¦`+spring.test.first+` +" + NEWLINE + "`+spring.test.second+` +" + NEWLINE + "`+spring.test.third+` +"
52-
+ NEWLINE + NEWLINE + "¦" + NEWLINE + "¦+++This is a description.+++" + NEWLINE);
51+
"|`+spring.test.first+` +" + NEWLINE + "`+spring.test.second+` +" + NEWLINE + "`+spring.test.third+` +"
52+
+ NEWLINE + NEWLINE + "|" + NEWLINE + "|+++This is a description.+++" + NEWLINE);
5353
}
5454

5555
}

spring-boot-project/spring-boot-tools/spring-boot-configuration-docs/src/test/java/org/springframework/boot/configurationdocs/ConfigurationTableTests.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ void simpleTable() {
4646
second.setType("java.lang.String");
4747
table.addEntry(new SingleConfigurationTableEntry(first));
4848
table.addEntry(new SingleConfigurationTableEntry(second));
49-
assertThat(table.toAsciidocTable()).isEqualTo("[cols=\"1,1,2\", separator=¦, options=\"header\"]" + NEWLINE
50-
+ "|===" + NEWLINE + "¦Key¦Default Value¦Description" + NEWLINE + NEWLINE + "¦`+spring.test.other+`"
51-
+ NEWLINE + `+other value+`" + NEWLINE + "¦+++This is another description.+++" + NEWLINE + NEWLINE
52-
+ "¦`+spring.test.prop+`" + NEWLINE + "¦`+something+`" + NEWLINE + "¦+++This is a description.+++"
49+
assertThat(table.toAsciidocTable()).isEqualTo("[cols=\"1,1,2\", options=\"header\"]" + NEWLINE + "|==="
50+
+ NEWLINE + "|Key|Default Value|Description" + NEWLINE + NEWLINE + "|`+spring.test.other+`" + NEWLINE
51+
+ "|`+other value+`" + NEWLINE + "|+++This is another description.+++" + NEWLINE + NEWLINE
52+
+ "|`+spring.test.prop+`" + NEWLINE + "|`+something+`" + NEWLINE + "|+++This is a description.+++"
5353
+ NEWLINE + NEWLINE + "|===" + NEWLINE);
5454
}
5555

spring-boot-project/spring-boot-tools/spring-boot-configuration-docs/src/test/java/org/springframework/boot/configurationdocs/SingleConfigurationTableEntryTests.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ void simpleProperty() {
4141
SingleConfigurationTableEntry entry = new SingleConfigurationTableEntry(property);
4242
AsciidocBuilder builder = new AsciidocBuilder();
4343
entry.write(builder);
44-
assertThat(builder.toString()).isEqualTo("¦`+spring.test.prop+`" + NEWLINE + "¦`+something+`" + NEWLINE
45-
+ "¦+++This is a description.+++" + NEWLINE);
44+
assertThat(builder.toString()).isEqualTo("|`+spring.test.prop+`" + NEWLINE + "|`+something+`" + NEWLINE
45+
+ "|+++This is a description.+++" + NEWLINE);
4646
}
4747

4848
@Test
@@ -55,7 +55,7 @@ void noDefaultValue() {
5555
AsciidocBuilder builder = new AsciidocBuilder();
5656
entry.write(builder);
5757
assertThat(builder.toString()).isEqualTo(
58-
"¦`+spring.test.prop+`" + NEWLINE + "¦" + NEWLINE + "¦+++This is a description.+++" + NEWLINE);
58+
"|`+spring.test.prop+`" + NEWLINE + "|" + NEWLINE + "|+++This is a description.+++" + NEWLINE);
5959
}
6060

6161
@Test
@@ -68,8 +68,8 @@ void defaultValueWithPipes() {
6868
SingleConfigurationTableEntry entry = new SingleConfigurationTableEntry(property);
6969
AsciidocBuilder builder = new AsciidocBuilder();
7070
entry.write(builder);
71-
assertThat(builder.toString()).isEqualTo("¦`+spring.test.prop+`" + NEWLINE + "¦`+first|second+`" + NEWLINE
72-
+ "¦+++This is a description.+++" + NEWLINE);
71+
assertThat(builder.toString()).isEqualTo("|`+spring.test.prop+`" + NEWLINE + "|`+first\\|second+`" + NEWLINE
72+
+ "|+++This is a description.+++" + NEWLINE);
7373
}
7474

7575
@Test
@@ -82,8 +82,8 @@ void defaultValueWithBackslash() {
8282
SingleConfigurationTableEntry entry = new SingleConfigurationTableEntry(property);
8383
AsciidocBuilder builder = new AsciidocBuilder();
8484
entry.write(builder);
85-
assertThat(builder.toString()).isEqualTo("¦`+spring.test.prop+`" + NEWLINE + "¦`+first\\\\second+`" + NEWLINE
86-
+ "¦+++This is a description.+++" + NEWLINE);
85+
assertThat(builder.toString()).isEqualTo("|`+spring.test.prop+`" + NEWLINE + "|`+first\\\\second+`" + NEWLINE
86+
+ "|+++This is a description.+++" + NEWLINE);
8787
}
8888

8989
@Test
@@ -95,8 +95,8 @@ void descriptionWithPipe() {
9595
SingleConfigurationTableEntry entry = new SingleConfigurationTableEntry(property);
9696
AsciidocBuilder builder = new AsciidocBuilder();
9797
entry.write(builder);
98-
assertThat(builder.toString()).isEqualTo("¦`+spring.test.prop+`" + NEWLINE + "¦" + NEWLINE
99-
+ "¦+++This is a description with a | pipe.+++" + NEWLINE);
98+
assertThat(builder.toString()).isEqualTo("|`+spring.test.prop+`" + NEWLINE + "|" + NEWLINE
99+
+ "|+++This is a description with a \\| pipe.+++" + NEWLINE);
100100
}
101101

102102
@Test
@@ -109,7 +109,7 @@ void mapProperty() {
109109
AsciidocBuilder builder = new AsciidocBuilder();
110110
entry.write(builder);
111111
assertThat(builder.toString()).isEqualTo(
112-
"¦`+spring.test.prop.*+`" + NEWLINE + "¦" + NEWLINE + "¦+++This is a description.+++" + NEWLINE);
112+
"|`+spring.test.prop.*+`" + NEWLINE + "|" + NEWLINE + "|+++This is a description.+++" + NEWLINE);
113113
}
114114

115115
@Test
@@ -123,8 +123,8 @@ void listProperty() {
123123
SingleConfigurationTableEntry entry = new SingleConfigurationTableEntry(property);
124124
AsciidocBuilder builder = new AsciidocBuilder();
125125
entry.write(builder);
126-
assertThat(builder.toString()).isEqualTo("¦`+spring.test.prop+`" + NEWLINE + "¦`+first," + NEWLINE + "second,"
127-
+ NEWLINE + "third+`" + NEWLINE + "¦+++This is a description.+++" + NEWLINE);
126+
assertThat(builder.toString()).isEqualTo("|`+spring.test.prop+`" + NEWLINE + "|`+first," + NEWLINE + "second,"
127+
+ NEWLINE + "third+`" + NEWLINE + "|+++This is a description.+++" + NEWLINE);
128128
}
129129

130130
}

0 commit comments

Comments
 (0)