Improve readability of Build Encyclopedia summary table on bazel.io.
Add Bootstrap styles to all tables on Test Encyclopedia for bazel.io.
--
MOS_MIGRATED_REVID=96388455
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 009e78c..4100b1d 100644
--- a/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaProcessor.java
+++ b/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaProcessor.java
@@ -17,6 +17,7 @@
import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableMap.Builder;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.LinkedListMultimap;
@@ -231,13 +232,6 @@
private Map<String, String> generateBEHeaderMapping(Iterable<RuleDocumentation> docEntries)
throws BuildEncyclopediaDocException {
- StringBuilder sb = new StringBuilder();
-
- sb.append("<table id=\"rules\" summary=\"Table of rules sorted by language\">\n")
- .append("<colgroup span=\"5\" width=\"20%\"></colgroup>\n")
- .append("<tr><th>Language</th><th>Binary rules</th><th>Library rules</th>"
- + "<th>Test rules</th><th>Other rules</th><th></th></tr>\n");
-
// Separate rule families into language-specific and generic ones.
Set<String> languageSpecificRuleFamilies = new TreeSet<>();
Set<String> genericRuleFamilies = new TreeSet<>();
@@ -247,26 +241,43 @@
Map<String, ListMultimap<RuleType, RuleDocumentation>> ruleMapping = new HashMap<>();
createRuleMapping(docEntries, ruleMapping);
- // Generate the table.
- for (String ruleFamily : languageSpecificRuleFamilies) {
- generateHeaderTableRuleFamily(sb, ruleMapping.get(ruleFamily), ruleFamily);
+ String languageSpecificTable;
+ {
+ StringBuilder sb = new StringBuilder();
+
+ sb.append("<colgroup span=\"6\" width=\"20%\"></colgroup>\n")
+ .append("<tr><th>Language</th><th>Binary rules</th><th>Library rules</th>"
+ + "<th>Test rules</th><th>Other rules</th><th></th></tr>\n");
+
+ // Generate the table.
+ for (String ruleFamily : languageSpecificRuleFamilies) {
+ generateHeaderTableRuleFamily(sb, ruleMapping.get(ruleFamily), ruleFamily);
+ }
+ languageSpecificTable = sb.toString();
}
- sb.append("<tr><th> </th></tr>");
- sb.append("<tr><th colspan=\"5\">Rules that do not apply to a "
- + "specific programming language</th></tr>");
- for (String ruleFamily : genericRuleFamilies) {
- generateHeaderTableRuleFamily(sb, ruleMapping.get(ruleFamily), ruleFamily);
+ String otherRulesTable;
+ {
+ StringBuilder sb = new StringBuilder();
+
+ sb.append("<colgroup span=\"6\" width=\"20%\"></colgroup>\n");
+ for (String ruleFamily : genericRuleFamilies) {
+ generateHeaderTableRuleFamily(sb, ruleMapping.get(ruleFamily), ruleFamily);
+ }
+ otherRulesTable = sb.toString();
}
- sb.append("</table>\n");
- return ImmutableMap.<String, String>of(DocgenConsts.VAR_HEADER_TABLE, sb.toString(),
- DocgenConsts.VAR_COMMON_ATTRIBUTE_DEFINITION, generateCommonAttributeDocs(
- PredefinedAttributes.COMMON_ATTRIBUTES, DocgenConsts.COMMON_ATTRIBUTES),
- DocgenConsts.VAR_TEST_ATTRIBUTE_DEFINITION, generateCommonAttributeDocs(
- PredefinedAttributes.TEST_ATTRIBUTES, DocgenConsts.TEST_ATTRIBUTES),
- DocgenConsts.VAR_BINARY_ATTRIBUTE_DEFINITION, generateCommonAttributeDocs(
- PredefinedAttributes.BINARY_ATTRIBUTES, DocgenConsts.BINARY_ATTRIBUTES),
- DocgenConsts.VAR_LEFT_PANEL, generateLeftNavigationPanel(docEntries));
+
+ return new ImmutableMap.Builder<String, String>()
+ .put(DocgenConsts.VAR_LANG_SPECIFIC_HEADER_TABLE, languageSpecificTable)
+ .put(DocgenConsts.VAR_OTHER_RULES_HEADER_TABLE, otherRulesTable)
+ .put(DocgenConsts.VAR_COMMON_ATTRIBUTE_DEFINITION, generateCommonAttributeDocs(
+ PredefinedAttributes.COMMON_ATTRIBUTES, DocgenConsts.COMMON_ATTRIBUTES))
+ .put(DocgenConsts.VAR_TEST_ATTRIBUTE_DEFINITION, generateCommonAttributeDocs(
+ PredefinedAttributes.TEST_ATTRIBUTES, DocgenConsts.TEST_ATTRIBUTES))
+ .put(DocgenConsts.VAR_BINARY_ATTRIBUTE_DEFINITION, generateCommonAttributeDocs(
+ PredefinedAttributes.BINARY_ATTRIBUTES, DocgenConsts.BINARY_ATTRIBUTES))
+ .put(DocgenConsts.VAR_LEFT_PANEL, generateLeftNavigationPanel(docEntries))
+ .build();
}
/**
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 01bf7d6..31f3359 100644
--- a/src/main/java/com/google/devtools/build/docgen/DocgenConsts.java
+++ b/src/main/java/com/google/devtools/build/docgen/DocgenConsts.java
@@ -45,7 +45,8 @@
public static final String VAR_ATTRIBUTE_SIGNATURE = "ATTRIBUTE_SIGNATURE";
public static final String VAR_ATTRIBUTE_DEFINITION = "ATTRIBUTE_DEFINITION";
public static final String VAR_NAME = "NAME";
- public static final String VAR_HEADER_TABLE = "HEADER_TABLE";
+ public static final String VAR_LANG_SPECIFIC_HEADER_TABLE = "LANG_SPECIFIC_HEADER_TABLE";
+ public static final String VAR_OTHER_RULES_HEADER_TABLE = "OTHER_RULES_HEADER_TABLE";
public static final String VAR_COMMON_ATTRIBUTE_DEFINITION = "COMMON_ATTRIBUTE_DEFINITION";
public static final String VAR_TEST_ATTRIBUTE_DEFINITION = "TEST_ATTRIBUTE_DEFINITION";
public static final String VAR_BINARY_ATTRIBUTE_DEFINITION = "BINARY_ATTRIBUTE_DEFINITION";
diff --git a/src/main/java/com/google/devtools/build/docgen/templates/be-header.html b/src/main/java/com/google/devtools/build/docgen/templates/be-header.html
index 1a9593c..8e841a6 100644
--- a/src/main/java/com/google/devtools/build/docgen/templates/be-header.html
+++ b/src/main/java/com/google/devtools/build/docgen/templates/be-header.html
@@ -60,8 +60,20 @@
<h3>Rules</h3>
-${HEADER_TABLE}
+<h4>Language-specific Rules</h4>
+<table class="table table-condensed table-striped"
+ summary="Table of rules sorted by language">
+${LANG_SPECIFIC_HEADER_TABLE}
+
+</table>
+<h4>Rules that do not apply to a specific programming language</h4>
+
+<table class="table table-condensed table-striped"
+ summary="Table of rules not specific to a programming language">
+${OTHER_RULES_HEADER_TABLE}
+
+</table>
<h2 id="common-definitions">Common definitions</h2>
<p>This section defines various terms and concepts that are common to