private AttributesBuilder getAttributes(ConfigSection cfg, String revision) {
   AttributesBuilder ab =
       AttributesBuilder.attributes()
           .tableOfContents(cfg.getBoolean(KEY_INCLUDE_TOC, true))
           .sourceHighlighter("prettify");
   for (String name : attributes.stringPropertyNames()) {
     ab.attribute(name, attributes.getProperty(name));
   }
   ab.attribute("last-update-label!");
   ab.attribute("revnumber", revision);
   return ab;
 }
 private AttributesBuilder buildAttributes() {
   AttributesBuilder attributesBuilder = AttributesBuilder.attributes();
   attributesBuilder.imagesDir(imagesDir);
   if (sourceHighlighter != null) {
     attributesBuilder.sourceHighlighter(sourceHighlighter);
   }
   if (embedAssets) {
     attributesBuilder.linkCss(false);
     attributesBuilder.dataUri(true);
   }
   attributesBuilder.copyCss(false);
   // TODO Figure out how to reliably set other values (like boolean values, dates, times, etc)
   for (Attribute attribute : attributes) {
     if ("true".equals(attribute.getValue()) || "false".equals(attribute.getValue())) {
       attributesBuilder.attribute(
           attribute.getKey(),
           Attributes.toAsciidoctorFlag(Boolean.valueOf(attribute.getValue())));
       continue;
     }
     // Can't do anything about dates and times because all that logic is private in Attributes
     attributesBuilder.attribute(attribute.getKey(), attribute.getValue());
   }
   return attributesBuilder;
 }