2929public class TocNameAndOpts {
3030 private final String TITLE_KEY = "title" ;
3131 private final String PATH_KEY = "path" ;
32+ private final String TOC_BEHAVIOR_KEY = "toc" ;
3233
3334 private final String givenName ;
3435 private final Map <String , ?> opts ;
3536 private final boolean hasTitleOverride ;
3637 private final boolean hasPath ;
38+ private final TocBehavior tocBehavior ;
3739
3840 private String humanReadableName ;
3941
@@ -45,6 +47,7 @@ public TocNameAndOpts(String trimmed) {
4547 this .opts = hasOpenBracket ? extractOpts (trimmed , openBracketIdx ) : Collections .emptyMap ();
4648 this .hasTitleOverride = opts .containsKey (TITLE_KEY );
4749 this .hasPath = opts .containsKey (PATH_KEY );
50+ this .tocBehavior = buildTocBehavior ();
4851
4952 this .humanReadableName = buildHumanReadableName ();
5053 }
@@ -77,6 +80,10 @@ public String getPath() {
7780 return opts .get (PATH_KEY ).toString ();
7881 }
7982
83+ public TocBehavior getTocBehavior () {
84+ return tocBehavior ;
85+ }
86+
8087 private Map <String , ?> extractOpts (String trimmed , int openBracketIdx ) {
8188 int closeBracketIdx = trimmed .indexOf ('}' );
8289 if (closeBracketIdx == -1 ) {
@@ -86,6 +93,15 @@ public String getPath() {
8693 return JsonUtils .deserializeAsMap (trimmed .substring (openBracketIdx , closeBracketIdx + 1 ));
8794 }
8895
96+ private TocBehavior buildTocBehavior () {
97+ Object behavior = opts .get (TOC_BEHAVIOR_KEY );
98+ if (behavior == null ) {
99+ return TocBehavior .DEFAULT ;
100+ }
101+
102+ return TocBehavior .fromString (behavior .toString ());
103+ }
104+
89105 private String buildHumanReadableName () {
90106 Object title = opts .get (TITLE_KEY );
91107 if (title != null ) {
0 commit comments