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;
 }