diff options
author | 2016-10-28 13:23:41 +0000 | |
---|---|---|
committer | 2016-10-28 16:03:43 +0000 | |
commit | f04cbe39a07f7c34a742378b16dd47d9a2b6e476 (patch) | |
tree | adb2301ec2a9af1e5893b4ac1547f25ed72bf7c1 /src/main/java/com/google/devtools/build/docgen | |
parent | 6a2dc2b38b650014cd0b980fb18b171c6cc8e0ac (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')
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( |