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; }
private Options getAsciiDocOptionsAndAttributes(ParserContext context) { Configuration config = context.getConfig(); final AttributesBuilder attributes = attributes(config.getStringArray(Keys.ASCIIDOCTOR_ATTRIBUTES)); if (config.getBoolean(Keys.ASCIIDOCTOR_ATTRIBUTES_EXPORT, false)) { final String prefix = config.getString(Keys.ASCIIDOCTOR_ATTRIBUTES_EXPORT_PREFIX, ""); for (final Iterator<String> it = config.getKeys(); it.hasNext(); ) { final String key = it.next(); if (!key.startsWith("asciidoctor")) { attributes.attribute(prefix + key.replace(".", "_"), config.getProperty(key)); } } } final Configuration optionsSubset = config.subset(Keys.ASCIIDOCTOR_OPTION); final Options options = options().attributes(attributes.get()).get(); for (final Iterator<String> iterator = optionsSubset.getKeys(); iterator.hasNext(); ) { final String name = iterator.next(); options.setOption(name, guessTypeByContent(optionsSubset.getString(name))); } options.setBaseDir(context.getFile().getParentFile().getAbsolutePath()); options.setSafe(UNSAFE); return options; }