Fix a documentation link PiperOrigin-RevId: 179416493
diff --git a/src/main/java/com/google/devtools/build/docgen/DocgenConsts.java b/src/main/java/com/google/devtools/build/docgen/DocgenConsts.java index d5e0037..ebdf3f3 100644 --- a/src/main/java/com/google/devtools/build/docgen/DocgenConsts.java +++ b/src/main/java/com/google/devtools/build/docgen/DocgenConsts.java
@@ -45,10 +45,6 @@ public static final String SKYLARK_OVERVIEW_TEMPLATE = "com/google/devtools/build/docgen/templates/skylark-overview.vm"; - // Build Encyclopedia documentation root - // Can be overridden from SkylarkDocumentationProcessor#parseOptions - public static String BEDocsRoot = "/versions/master/be"; - public static final String VAR_LEFT_PANEL = "LEFT_PANEL"; public static final String VAR_SECTION_BINARY = "SECTION_BINARY"; @@ -173,6 +169,15 @@ .put("hdrs", -90) .build(); + // The following variables are not constants as they can be overridden from + // SkylarkDocumentationProcessor#parseOptions + + // Build Encyclopedia documentation root + public static String BeDocsRoot = "/versions/master/be"; + + // Documentation files extension + public static String documentationExtension = "html"; + static String toCommandLineFormat(String cmdDoc) { // Replace html <br> tags with line breaks cmdDoc = cmdDoc.replaceAll("(<br>|<br[\\s]*/>)", "\n") + "\n";
diff --git a/src/main/java/com/google/devtools/build/docgen/SkylarkDocumentationProcessor.java b/src/main/java/com/google/devtools/build/docgen/SkylarkDocumentationProcessor.java index f6525f6..34a1b23 100644 --- a/src/main/java/com/google/devtools/build/docgen/SkylarkDocumentationProcessor.java +++ b/src/main/java/com/google/devtools/build/docgen/SkylarkDocumentationProcessor.java
@@ -243,7 +243,10 @@ private static void parseOptions(String... args) { for (String arg : args) { if (arg.startsWith("--be_root=")) { - DocgenConsts.BEDocsRoot = arg.split("--be_root=", 2)[1]; + DocgenConsts.BeDocsRoot = arg.split("--be_root=", 2)[1]; + } + if (arg.startsWith("--doc_extension=")) { + DocgenConsts.documentationExtension = arg.split("--doc_extension=", 2)[1]; } } }
diff --git a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkBuiltinMethodDoc.java b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkBuiltinMethodDoc.java index e352fb3..bcb5292 100644 --- a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkBuiltinMethodDoc.java +++ b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkBuiltinMethodDoc.java
@@ -53,7 +53,7 @@ @Override public String getDocumentation() { - return annotation.doc(); + return SkylarkDocUtils.substituteVariables(annotation.doc()); } /**
diff --git a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkDocUtils.java b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkDocUtils.java new file mode 100644 index 0000000..ac73f65 --- /dev/null +++ b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkDocUtils.java
@@ -0,0 +1,33 @@ +// Copyright 2014 The Bazel Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.google.devtools.build.docgen.skylark; + +import com.google.devtools.build.docgen.DocgenConsts; + +/** A utility class for the documentation generator. */ +public final class SkylarkDocUtils { + private SkylarkDocUtils() {} + + /** + * Substitute special variables in the documentation with their actual values + * + * @return a string with substituted variables + */ + static String substituteVariables(String documentation) { + return documentation + .replace("$BE_ROOT", DocgenConsts.BeDocsRoot) + .replace("$DOC_EXT", DocgenConsts.documentationExtension); + } +}
diff --git a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkParamDoc.java b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkParamDoc.java index d61aef6..74d26a9 100644 --- a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkParamDoc.java +++ b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkParamDoc.java
@@ -13,7 +13,6 @@ // limitations under the License. package com.google.devtools.build.docgen.skylark; -import com.google.devtools.build.docgen.DocgenConsts; import com.google.devtools.build.lib.skylarkinterface.Param; import com.google.devtools.build.lib.skylarkinterface.ParamType; @@ -74,6 +73,6 @@ @Override public String getDocumentation() { - return param.doc().replace("$BE_ROOT", DocgenConsts.BEDocsRoot); + return SkylarkDocUtils.substituteVariables(param.doc()); } }
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java index 82561c3..d6c795f 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkAttr.java
@@ -639,7 +639,7 @@ + "referred to by the label. " + "It is the only way to specify a dependency to another target. " + "If you need a dependency that the user cannot overwrite, " - + "<a href=\"../rules.html#private-attributes\">make the attribute private</a>.", + + "<a href=\"../rules.$DOC_EXT#private-attributes\">make the attribute private</a>.", objectType = SkylarkAttr.class, returnType = Descriptor.class, parameters = {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java index 28c0313..82370f1 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
@@ -247,7 +247,8 @@ + "Instantiate this provider with <br>" + "<pre class=language-python>" + "OutputGroupInfo(group1 = <files>, group2 = <files>...)</pre>" - + "See <a href=\"../rules.html#output-groups\">Output Groups</a> for more information" + + "See <a href=\"../rules.$DOC_EXT#output-groups\">Output Groups</a> " + + "for more information." ) private static final Provider outputGroupInfo = OutputGroupInfo.SKYLARK_CONSTRUCTOR;