aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/docgen
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2016-10-28 13:23:41 +0000
committerGravatar John Cater <jcater@google.com>2016-10-28 16:03:43 +0000
commitf04cbe39a07f7c34a742378b16dd47d9a2b6e476 (patch)
treeadb2301ec2a9af1e5893b4ac1547f25ed72bf7c1 /src/main/java/com/google/devtools/build/docgen
parent6a2dc2b38b650014cd0b980fb18b171c6cc8e0ac (diff)
Small docs updates for the extra action rule.
Add the product name to the ConfiguredRuleClassProvider so that the doc generator can generate the proper links to the user manual. -- MOS_MIGRATED_REVID=137505460
Diffstat (limited to 'src/main/java/com/google/devtools/build/docgen')
-rw-r--r--src/main/java/com/google/devtools/build/docgen/BuildDocCollector.java3
-rw-r--r--src/main/java/com/google/devtools/build/docgen/MultiPageBuildEncyclopediaProcessor.java2
-rw-r--r--src/main/java/com/google/devtools/build/docgen/RuleLinkExpander.java15
-rw-r--r--src/main/java/com/google/devtools/build/docgen/SinglePageBuildEncyclopediaProcessor.java2
4 files changed, 17 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/docgen/BuildDocCollector.java b/src/main/java/com/google/devtools/build/docgen/BuildDocCollector.java
index 69bad6c867..31133cc605 100644
--- a/src/main/java/com/google/devtools/build/docgen/BuildDocCollector.java
+++ b/src/main/java/com/google/devtools/build/docgen/BuildDocCollector.java
@@ -160,7 +160,8 @@ public class BuildDocCollector {
*/
public Map<String, RuleDocumentation> collect(List<String> inputDirs, String blackList)
throws BuildEncyclopediaDocException, IOException {
- RuleLinkExpander expander = new RuleLinkExpander(/* singlePage */ false);
+ RuleLinkExpander expander = new RuleLinkExpander(
+ ruleClassProvider.getProductName(), /* singlePage */ false);
return collect(inputDirs, blackList, expander);
}
diff --git a/src/main/java/com/google/devtools/build/docgen/MultiPageBuildEncyclopediaProcessor.java b/src/main/java/com/google/devtools/build/docgen/MultiPageBuildEncyclopediaProcessor.java
index 9c3a95153f..8ba87211a0 100644
--- a/src/main/java/com/google/devtools/build/docgen/MultiPageBuildEncyclopediaProcessor.java
+++ b/src/main/java/com/google/devtools/build/docgen/MultiPageBuildEncyclopediaProcessor.java
@@ -40,7 +40,7 @@ public class MultiPageBuildEncyclopediaProcessor extends BuildEncyclopediaProces
public void generateDocumentation(List<String> inputDirs, String outputDir, String blackList)
throws BuildEncyclopediaDocException, IOException {
BuildDocCollector collector = new BuildDocCollector(ruleClassProvider, false);
- RuleLinkExpander expander = new RuleLinkExpander(false);
+ RuleLinkExpander expander = new RuleLinkExpander(ruleClassProvider.getProductName(), false);
Map<String, RuleDocumentation> ruleDocEntries = collector.collect(
inputDirs, blackList, expander);
warnAboutUndocumentedRules(
diff --git a/src/main/java/com/google/devtools/build/docgen/RuleLinkExpander.java b/src/main/java/com/google/devtools/build/docgen/RuleLinkExpander.java
index 4f74054fe1..e521c504ac 100644
--- a/src/main/java/com/google/devtools/build/docgen/RuleLinkExpander.java
+++ b/src/main/java/com/google/devtools/build/docgen/RuleLinkExpander.java
@@ -16,6 +16,7 @@ package com.google.devtools.build.docgen;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import java.util.HashMap;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
@@ -51,16 +52,19 @@ public class RuleLinkExpander {
.put("workspace", FUNCTIONS_PAGE)
.build();
+ private final String productName;
private final Map<String, String> ruleIndex = new HashMap<>();
private final boolean singlePage;
- RuleLinkExpander(Map<String, String> ruleIndex, boolean singlePage) {
+ RuleLinkExpander(String productName, Map<String, String> ruleIndex, boolean singlePage) {
+ this.productName = productName;
this.ruleIndex.putAll(ruleIndex);
this.ruleIndex.putAll(FUNCTIONS);
this.singlePage = singlePage;
}
- RuleLinkExpander(boolean singlePage) {
+ RuleLinkExpander(String productName, boolean singlePage) {
+ this.productName = productName;
this.ruleIndex.putAll(FUNCTIONS);
this.singlePage = singlePage;
}
@@ -182,6 +186,13 @@ public class RuleLinkExpander {
continue;
}
+ // Links to the user manual are handled specially. Meh.
+ if ("user-manual".equals(name)) {
+ String link = productName.toLowerCase(Locale.US) + "-" + name + ".html#" + heading;
+ matcher.appendReplacement(sb, Matcher.quoteReplacement(link));
+ continue;
+ }
+
// If the reference does not match any rule or static page, throw an exception.
throw new IllegalArgumentException(
"Rule family " + name + " in link tag does not match any rule or BE page: "
diff --git a/src/main/java/com/google/devtools/build/docgen/SinglePageBuildEncyclopediaProcessor.java b/src/main/java/com/google/devtools/build/docgen/SinglePageBuildEncyclopediaProcessor.java
index ccacd2fbc0..56f7d29386 100644
--- a/src/main/java/com/google/devtools/build/docgen/SinglePageBuildEncyclopediaProcessor.java
+++ b/src/main/java/com/google/devtools/build/docgen/SinglePageBuildEncyclopediaProcessor.java
@@ -40,7 +40,7 @@ public class SinglePageBuildEncyclopediaProcessor extends BuildEncyclopediaProce
public void generateDocumentation(List<String> inputDirs, String outputDir, String blackList)
throws BuildEncyclopediaDocException, IOException {
BuildDocCollector collector = new BuildDocCollector(ruleClassProvider, false);
- RuleLinkExpander expander = new RuleLinkExpander(true);
+ RuleLinkExpander expander = new RuleLinkExpander(ruleClassProvider.getProductName(), true);
Map<String, RuleDocumentation> ruleDocEntries = collector.collect(
inputDirs, blackList, expander);
warnAboutUndocumentedRules(