Extract information from a document
Assumptions:
- 
You’ve successfully installed Asciidoctor.js.
 
To make it easier to understand, in the following examples, we will use this sample file:
= The Documentation Chronicles: Based on True Events
Kismet Chameleon <kismet@asciidoctor.org>
v1.0, October 2, 2018: First incarnation
== The Ravages of Writing
Document header
Get the document title
var doc = asciidoctor.loadFile('sample.adoc')
console.log(doc.getDocumentTitle()) // The Documentation Chronicles: Based on True Events
By default, the document title is separated into a main title and subtitle using the industry standard, a colon followed by a space.
You can partition the title from the API when calling the getDocumentTitle function:
var doc = asciidoctor.loadFile('sample.adoc')
var doctitle = doc.getDocumentTitle({ partition: true })
console.log(doctitle.getMain())     // The Documentation Chronicles
console.log(doctitle.getSubtitle()) // Based on True Events
console.log(doctitle.getCombined()) // The Documentation Chronicles: Based on True Events
console.log(doctitle.hasSubtitle()) // true
Get the author
var doc = asciidoctor.loadFile('sample.adoc')
console.log(doc.getAuthor()) // Kismet Chameleon
Asciidoctor uses the author’s name and email to assign values to a number of built-in attributes that can be used throughout the document’s body but also retrieve with the getAttribute function:
var doc = asciidoctor.loadFile('sample.adoc')
console.log(doc.getAttribute('author'))         // Kismet Chameleon
console.log(doc.getAttribute('firstname'))      // Kismet
console.log(doc.getAttribute('lastname'))       // Chameleon
console.log(doc.getAttribute('middlename'))     // undefined
console.log(doc.getAttribute('authorinitials')) // KC
console.log(doc.getAttribute('email'))          // kismet@asciidoctor.org
These attributes include:
- author
 - 
The author’s full name, which includes all of the characters or words prior to a semicolon (
;), angle bracket (<) or the end of the line. - firstname
 - 
The first word in the author attribute.
 - lastname
 - 
The last word in the author attribute.
 - middlename
 - 
If a firstname and lastname are present, any remaining words or characters found between these attributes are assigned to the middlename attribute.
 - authorinitials
 - 
The first character of the firstname, middlename, and lastname attributes.
 - 
An email address, delimited by angle brackets (<>).
 
Get the document revision information
var doc = asciidoctor.loadFile('sample.adoc')
console.log(doc.getRevisionDate())   // October 2, 2018
console.log(doc.getRevisionNumber()) // 1.0
console.log(doc.getRevisionRemark()) // First incarnation
Alternatively, you can also get all the revision information at once:
var doc = asciidoctor.loadFile('sample.adoc')
var revisionInfo = doc.getRevisionInfo()
console.log(revisionInfo.getDate())   // October 2, 2018
console.log(revisionInfo.getNumber()) // 1.0
console.log(revisionInfo.getRemark()) // First incarnation
You can also check if the document contains revision info with hasRevisionInfo function:
var doc = asciidoctor.loadFile('sample.adoc')
console.log(doc.hasRevisionInfo()) // true
As with the author, revision information are also available as built-in attributes:
var doc = asciidoctor.loadFile('sample.adoc')
console.log(doc.getAttribute('revdate'))   // October 2, 2018
console.log(doc.getAttribute('revnumber')) // 1.0
console.log(doc.getAttribute('revremark')) // First incarnation
- revdate
 - 
Date of document version
 - revnumber
 - 
Version number of the document
 - revremark
 - 
Version comments
 
What’s next?
You can read the API docs to learn more about the API.