aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/docgen
diff options
context:
space:
mode:
authorGravatar David Chen <dzc@google.com>2016-02-17 08:44:33 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-02-17 09:55:41 +0000
commit2fc8f97bf66a3b12dd751d265640b6b5494b2a7b (patch)
tree8066e6c3b055d3dacae96f5840527ff9c0b7234e /src/main/java/com/google/devtools/build/docgen
parent4afcdf7e5c3251d6e56ec4fd419c6592562d8de3 (diff)
Do not generate documentation for rule family if it does not contain any
documented rules. Currently, we are generating an empty page for the Protocol Buffer rules on bazel.io because the rule definition exists but all the rules are set as undocumented. In cases like these, the docgen should neither generate a page nor any links for the rule family. Fixes #882 -- MOS_MIGRATED_REVID=114834947
Diffstat (limited to 'src/main/java/com/google/devtools/build/docgen')
-rw-r--r--src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaProcessor.java4
-rw-r--r--src/main/java/com/google/devtools/build/docgen/RuleFamily.java4
-rw-r--r--src/main/java/com/google/devtools/build/docgen/templates/be/be-nav.vm2
-rw-r--r--src/main/java/com/google/devtools/build/docgen/templates/be/overview.vm86
4 files changed, 53 insertions, 43 deletions
diff --git a/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaProcessor.java b/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaProcessor.java
index 7c2f8f7e3f..b29e7610ef 100644
--- a/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaProcessor.java
+++ b/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaProcessor.java
@@ -135,7 +135,9 @@ public class BuildEncyclopediaProcessor {
writeOverviewPage(outputDir, langSpecificRuleFamilies, genericRuleFamilies);
writeBeNav(outputDir, allRuleFamilies);
for (RuleFamily ruleFamily : allRuleFamilies) {
- writeRuleDoc(outputDir, ruleFamily);
+ if (ruleFamily.size() > 0) {
+ writeRuleDoc(outputDir, ruleFamily);
+ }
}
}
diff --git a/src/main/java/com/google/devtools/build/docgen/RuleFamily.java b/src/main/java/com/google/devtools/build/docgen/RuleFamily.java
index 4c2f346d47..fa501fb80a 100644
--- a/src/main/java/com/google/devtools/build/docgen/RuleFamily.java
+++ b/src/main/java/com/google/devtools/build/docgen/RuleFamily.java
@@ -84,6 +84,10 @@ public class RuleFamily {
return FAMILY_NAME_ESCAPER.escape(s.toLowerCase()).replaceAll("[-]+", "-");
}
+ public int size() {
+ return rules.size();
+ }
+
public String getName() {
return name;
}
diff --git a/src/main/java/com/google/devtools/build/docgen/templates/be/be-nav.vm b/src/main/java/com/google/devtools/build/docgen/templates/be/be-nav.vm
index 44b05953c5..e67487d695 100644
--- a/src/main/java/com/google/devtools/build/docgen/templates/be/be-nav.vm
+++ b/src/main/java/com/google/devtools/build/docgen/templates/be/be-nav.vm
@@ -17,7 +17,9 @@
<li class="sidebar-nav-heading">Built-in Rules</li>
<li><a href="${path}/functions.html">Functions</a></li>
#foreach ($ruleFamily in $ruleFamilies)
+ #if ($ruleFamily.size() > 0)
<li><a href="${path}/${ruleFamily.id}.html">${ruleFamily.name}</a></li>
+ #end
#end
<li class="sidebar-nav-heading">Skylark Rules</li>
diff --git a/src/main/java/com/google/devtools/build/docgen/templates/be/overview.vm b/src/main/java/com/google/devtools/build/docgen/templates/be/overview.vm
index 33b24fb33f..a6c0e50af2 100644
--- a/src/main/java/com/google/devtools/build/docgen/templates/be/overview.vm
+++ b/src/main/java/com/google/devtools/build/docgen/templates/be/overview.vm
@@ -55,49 +55,51 @@ title: Build Encyclopedia
#macro(summaryTable $ruleFamilies)
<tbody>
#foreach($ruleFamily in $ruleFamilies)
- <tr>
- <td class="lang">${ruleFamily.name}</td>
- <td>
- #foreach($ruleDoc in $ruleFamily.binaryRules)
- <a href="${ruleFamily.id}.html#${ruleDoc.ruleName}"#if($ruleDoc.isDeprecated()) class="deprecated"#end>
- ${ruleDoc.ruleName}
- </a>
- <br />
- #end
- </td>
- <td>
- #foreach($ruleDoc in $ruleFamily.libraryRules)
- <a href="${ruleFamily.id}.html#${ruleDoc.ruleName}"#if($ruleDoc.isDeprecated()) class="deprecated"#end>
- ${ruleDoc.ruleName}
- </a>
- <br />
- #end
- </td>
- <td>
- #foreach($ruleDoc in $ruleFamily.testRules)
- <a href="${ruleFamily.id}.html#${ruleDoc.ruleName}"#if($ruleDoc.isDeprecated()) class="deprecated"#end>
- ${ruleDoc.ruleName}
- </a>
- <br />
+ #if($ruleFamily.size() > 0)
+ <tr>
+ <td class="lang">${ruleFamily.name}</td>
+ <td>
+ #foreach($ruleDoc in $ruleFamily.binaryRules)
+ <a href="${ruleFamily.id}.html#${ruleDoc.ruleName}"#if($ruleDoc.isDeprecated()) class="deprecated"#end>
+ ${ruleDoc.ruleName}
+ </a>
+ <br />
+ #end
+ </td>
+ <td>
+ #foreach($ruleDoc in $ruleFamily.libraryRules)
+ <a href="${ruleFamily.id}.html#${ruleDoc.ruleName}"#if($ruleDoc.isDeprecated()) class="deprecated"#end>
+ ${ruleDoc.ruleName}
+ </a>
+ <br />
+ #end
+ </td>
+ <td>
+ #foreach($ruleDoc in $ruleFamily.testRules)
+ <a href="${ruleFamily.id}.html#${ruleDoc.ruleName}"#if($ruleDoc.isDeprecated()) class="deprecated"#end>
+ ${ruleDoc.ruleName}
+ </a>
+ <br />
+ #end
+ </td>
+ <td>
+ #foreach($ruleDoc in $ruleFamily.otherRules1)
+ <a href="${ruleFamily.id}.html#${ruleDoc.ruleName}"#if($ruleDoc.isDeprecated()) class="deprecated"#end>
+ ${ruleDoc.ruleName}
+ </a>
+ <br />
+ #end
+ </td>
+ <td>
+ #foreach($ruleDoc in $ruleFamily.otherRules2)
+ <a href="${ruleFamily.id}.html#${ruleDoc.ruleName}"#if($ruleDoc.isDeprecated()) class="deprecated"#end>
+ ${ruleDoc.ruleName}
+ </a>
+ <br />
+ #end
+ </td>
+ </tr>
#end
- </td>
- <td>
- #foreach($ruleDoc in $ruleFamily.otherRules1)
- <a href="${ruleFamily.id}.html#${ruleDoc.ruleName}"#if($ruleDoc.isDeprecated()) class="deprecated"#end>
- ${ruleDoc.ruleName}
- </a>
- <br />
- #end
- </td>
- <td>
- #foreach($ruleDoc in $ruleFamily.otherRules2)
- <a href="${ruleFamily.id}.html#${ruleDoc.ruleName}"#if($ruleDoc.isDeprecated()) class="deprecated"#end>
- ${ruleDoc.ruleName}
- </a>
- <br />
- #end
- </td>
- </tr>
#end
</tbody>
#end