diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e60959187bf183df92b1d1df36c32ee4c578f63b..258faeb4733b19503492b55c4e90dd28999c3cee 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -15,5 +15,7 @@ build:
     paths:
     - bjcp-2015-styleguide-orig.xml
     - bjcp-2015-styleguide-de.xml
+    - bjcp-2015-styleguide-orig.html
+    - bjcp-2015-styleguide-de.html
     expire_in: 1 week
 
diff --git a/xsl/bjcp-2015-styleguide-doc-to-xml.xsl b/xsl/bjcp-2015-styleguide-doc-to-xml.xsl
index 36706975e856500d8599fb347445ec02a2efef46..a5e17eebbec00512ab970d0f660f7b12f447eee6 100644
--- a/xsl/bjcp-2015-styleguide-doc-to-xml.xsl
+++ b/xsl/bjcp-2015-styleguide-doc-to-xml.xsl
@@ -423,23 +423,26 @@
         </xsl:otherwise>
       </xsl:choose>
     </xsl:variable>
-    <xsl:choose>
-      <xsl:when test="w:rPr/w:b[not(@w:val='0')]">
-        <xsl:element name="span">
-          <xsl:attribute name="class">bold</xsl:attribute>
-          <xsl:value-of select="$t"/>
-        </xsl:element>
-      </xsl:when>
-      <xsl:when test="w:rPr/w:i">
-        <xsl:element name="span">
-          <xsl:attribute name="class">italic</xsl:attribute>
+    <xsl:if test="string-length($t) > 0">
+      <xsl:choose>
+        <xsl:when test="w:rPr/w:b[not(@w:val='0')]">
+          <xsl:element name="span">
+            <xsl:attribute name="class">bold</xsl:attribute>
+            <xsl:value-of select="$t"/>
+          </xsl:element>
+        </xsl:when>
+	<!-- WTF, some ° chars are italic in the original document -->
+        <xsl:when test="(w:rPr/w:i) and ($t != '°')">
+          <xsl:element name="span">
+            <xsl:attribute name="class">italic</xsl:attribute>
+            <xsl:value-of select="$t"/>
+          </xsl:element>
+        </xsl:when>
+        <xsl:otherwise>
           <xsl:value-of select="$t"/>
-        </xsl:element>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:value-of select="$t"/>
-      </xsl:otherwise>
-    </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
   </xsl:template>
 
 
diff --git a/xsl/bjcp-2015-styleguide-html.xsl b/xsl/bjcp-2015-styleguide-html.xsl
index 352cc9e6a44b81eb23da8f434d0153ca8f2c49a0..274d3c63434698058bec045aa11c28cebe1928b2 100644
--- a/xsl/bjcp-2015-styleguide-html.xsl
+++ b/xsl/bjcp-2015-styleguide-html.xsl
@@ -17,26 +17,144 @@
 	  <xsl:text>BJCP 2015 Styleguide</xsl:text>
 	</xsl:element>
 	<xsl:element name="style">
-styleguide chapter {
-  display: list-item;
-  list-style-position: inside;
+
+styleguide { 
+  font-family: Helvetica, Arial, Geneva, sans-serif;
 }
-styleguide category {
+
+styleguide chapter, styleguide category, styleguide subcategory {
+  font-size: 9pt;
+  margin-top:1em;
+  margin-bottom:1em;
+  margin-left:0em;
   display: list-item;
   list-style-position: inside;
 }
-styleguide category:before {
-  display: inline;
+
+styleguide p {
+  margin-top:1em;
+}
+
+styleguide span.bold {
+  font-weight: bold;
+}
+
+styleguide span.italic {
+  font-style: italic;
+}
+
+styleguide category:before, styleguide subcategory:before {
   content: attr(id);
 }
-styleguide category name {
-  display: inline;
+styleguide name {
+  display: inline-block;
+  margin-bottom:1em;
+}
+styleguide description {
+  font-size: 8pt;
+  margin-left:1em;
+  display: block;
+}
+styleguide description p {
+  margin-top: 0;
+}
+
+styleguide overall-impression:before {
+  content: "Overall Impression: ";
+}
+styleguide aroma:before {
+  content: "Aroma: ";
+}
+styleguide appearance:before {
+  content: "Appearance: ";
+}
+styleguide flavor:before {
+  content: "Flavor: ";
+}
+styleguide mouthfeel:before {
+  content: "Mouthfeel: ";
+}
+styleguide comments:before {
+  content: "Comments: ";
+}
+styleguide history:before {
+  content: "History: ";
 }
-styleguide category * {
-  display: none;
+styleguide characteristic-ingredients:before {
+  content: "Characteristic Ingredients: ";
 }
-styleguide category subcategory {
-  display: none;
+styleguide style-comparison:before {
+  content: "Style Comparison: ";
+}
+styleguide entry-instructions:before {
+  content: "Entry Instructions: ";
+}
+styleguide specs:before {
+  content: "Vital Statistics: ";
+}
+styleguide commercial-examples:before {
+  content: "Commercial Examples: ";
+}
+styleguide tags:before {
+  content: "Tags: ";
+}
+
+styleguide overall-impression,
+styleguide aroma,
+styleguide appearance,
+styleguide flavor,
+styleguide mouthfeel,
+styleguide comments,
+styleguide history,
+styleguide characteristic-ingredients,
+styleguide style-comparison,
+styleguide specs,
+styleguide entry-instructions,
+styleguide commercial-examples,
+styleguide tags {
+  position: relative;
+  margin-left: 1em;
+  display: block;
+  font-size: 8pt;
+}
+styleguide overall-impression:before,
+styleguide aroma:before,
+styleguide appearance:before,
+styleguide flavor:before,
+styleguide mouthfeel:before,
+styleguide comments:before,
+styleguide history:before,
+styleguide characteristic-ingredients:before,
+styleguide style-comparison:before,
+styleguide specs:before,
+styleguide entry-instructions:before,
+styleguide commercial-examples:before,
+styleguide tags:before {
+  font-weight: bold;
+}
+
+styleguide specs div.ibu:before {
+  content: "IBU: ";
+}
+styleguide specs div.srm:before {
+  content: "SRM: ";
+}
+styleguide specs div.og:before {
+  content: "OG: ";
+}
+styleguide specs div.fg:before {
+  content: "FG: ";
+}
+styleguide specs div.abv:before {
+  content: "ABV: ";
+}
+styleguide specs div {
+  display: inline-block;
+}
+styleguide specs div * {
+  border: 1px solid;
+  display: inline-block;
+  width: 9em;
 }
 
 	</xsl:element>
@@ -50,6 +168,45 @@ styleguide category subcategory {
 
 
 
+  <xsl:template match="specs" mode="copy">
+    <xsl:element name="specs">
+      <xsl:element name="div">
+        <xsl:element name="div">
+  	<xsl:attribute name="class">ibu</xsl:attribute>
+  	<xsl:value-of select="ibu/@min"/>
+  	<xsl:text> - </xsl:text>
+  	<xsl:value-of select="ibu/@max"/>
+        </xsl:element>
+        <xsl:element name="div">
+  	<xsl:attribute name="class">srm</xsl:attribute>
+  	<xsl:value-of select="srm/@min"/>
+  	<xsl:text> - </xsl:text>
+  	<xsl:value-of select="srm/@max"/>
+        </xsl:element>
+        <xsl:element name="div">
+  	<xsl:attribute name="class">og</xsl:attribute>
+  	<xsl:value-of select="og/@min"/>
+  	<xsl:text> - </xsl:text>
+  	<xsl:value-of select="og/@max"/>
+        </xsl:element>
+        <xsl:element name="div">
+  	<xsl:attribute name="class">fg</xsl:attribute>
+  	<xsl:value-of select="fg/@min"/>
+  	<xsl:text> - </xsl:text>
+  	<xsl:value-of select="fg/@max"/>
+        </xsl:element>
+        <xsl:element name="div">
+  	<xsl:attribute name="class">abv</xsl:attribute>
+  	<xsl:value-of select="abv/@min"/>
+  	<xsl:text> - </xsl:text>
+  	<xsl:value-of select="abv/@max"/>
+        </xsl:element>
+      </xsl:element>
+    </xsl:element>
+  </xsl:template>
+
+
+
   <xsl:template match="*" mode="copy">
     <xsl:element name="{local-name(.)}">
       <xsl:apply-templates select="@*" mode="copy"/>