diff options
author | David Chen <dzc@google.com> | 2016-02-17 08:44:33 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2016-02-17 09:55:41 +0000 |
commit | 2fc8f97bf66a3b12dd751d265640b6b5494b2a7b (patch) | |
tree | 8066e6c3b055d3dacae96f5840527ff9c0b7234e /src/main/java/com/google/devtools/build/docgen | |
parent | 4afcdf7e5c3251d6e56ec4fd419c6592562d8de3 (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')
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 |