@antora/asciidoc-loader
Version:
Loads AsciiDoc content into an Asciidoctor Document object (AST) for use in an Antora documentation pipeline.
30 lines (26 loc) • 1.33 kB
JavaScript
const convertImageRef = require('./../image/convert-image-ref')
const convertResourceRef = require('./../xref/convert-resource-ref')
const defineHtml5Converter = require('./html5')
/**
* Creates an HTML5 converter instance with Antora enhancements.
*
* @memberof asciidoc-loader
*
* @param {File} file - The virtual file whose contents is an AsciiDoc source document.
* @param {ContentCatalog} contentCatalog - The catalog of all virtual content files in the site.
* @param {Object} config - AsciiDoc processor configuration options.
* @param {Boolean} [config.relativizeResourceRefs=true] - Configures the converter to generate relative resource
* references (relative to the current page) instead of root relative (relative to the site root).
*
* @returns {Converter} An enhanced instance of Asciidoctor's built-in HTML 5 converter.
*/
function createConverter (file, contentCatalog, config) {
const relativizeResourceRefs = config.relativizeResourceRefs !== false
return defineHtml5Converter().$new('html5', undefined, {
onImageRef: (imageSpec, read) => convertImageRef(imageSpec, file, contentCatalog, read),
onResourceRef: (resourceSpec, content) =>
convertResourceRef(resourceSpec, content, file, contentCatalog, relativizeResourceRefs),
})
}
module.exports = createConverter