提取文档信息

假设:

  • 您已成功安装 Asciidoctor.js。

为了更易于理解,以下示例中我们将使用这个示例文件:

sample.adoc
= The Documentation Chronicles: Based on True Events
Kismet Chameleon <kismet@asciidoctor.org>
v1.0, October 2, 2018: First incarnation

== The Ravages of Writing

文档头

获取文档标题

var doc = asciidoctor.loadFile('sample.adoc')
console.log(doc.getDocumentTitle()) // The Documentation Chronicles: Based on True Events

默认情况下,文档标题会使用行业标准(冒号后跟一个空格)将主标题和副标题分开。您可以通过调用 getDocumentTitle 函数从 API 中分离标题:

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

获取作者

var doc = asciidoctor.loadFile('sample.adoc')
console.log(doc.getAuthor()) // Kismet Chameleon

Asciidoctor 使用作者的姓名和电子邮件为多个内置属性赋值,这些属性不仅可以在文档正文中使用,还可以通过 getAttribute 函数获取:

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

这些属性包括:

  • author:作者的全名,包括分号(;)、尖括号(<)或行尾之前的所有字符或单词。

  • firstname:作者属性中的第一个单词。

  • lastname:作者属性中的最后一个单词。

  • middlename:如果存在 firstname 和 lastname,则将这些属性之间的任何其他单词或字符分配给 middlename 属性。

  • authorinitials:firstname、middlename 和 lastname 属性的首字母。

  • email:电子邮件地址,以尖括号(<>)括起来。

获取文档修订信息

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

或者,您也可以一次性获取所有修订信息:

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

您还可以使用 hasRevisionInfo 函数检查文档是否包含修订信息:

var doc = asciidoctor.loadFile('sample.adoc')
console.log(doc.hasRevisionInfo()) // true

与作者信息类似,修订信息也作为内置属性可用:

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:文档版本的日期

  • revnumber:文档的版本号

  • revremark:版本说明

接下来做什么?

您可以阅读 API 文档 以了解更多关于 API 的信息。