Class: Docbook::Output::DocbookMirror

Inherits:
Object
  • Object
show all
Defined in:
lib/docbook/output/docbook_mirror.rb

Overview

Outputs DocBook document as DocbookMirror (ProseMirror-compatible) JSON.

Examples:

doc = Docbook::Document.from_xml(File.read("book.xml"))
mirror = Docbook::Output::DocbookMirror.new(doc)
json = mirror.to_pretty_json

Instance Method Summary collapse

Constructor Details

#initialize(document, sort_glossary: false) ⇒ DocbookMirror

Returns a new instance of DocbookMirror.

Parameters:



16
17
18
19
# File 'lib/docbook/output/docbook_mirror.rb', line 16

def initialize(document, sort_glossary: false)
  @document = document
  @sort_glossary = sort_glossary
end

Instance Method Details

#to_documentHash

Returns the DocbookMirror document as a Ruby Hash.

Returns:

  • (Hash)


23
24
25
26
# File 'lib/docbook/output/docbook_mirror.rb', line 23

def to_document
  transformer = Docbook::Mirror::Transformer.new(sort_glossary: @sort_glossary)
  transformer.from_docbook(@document)
end

#to_json(**options) ⇒ String

Returns the DocbookMirror document as a JSON string.

Parameters:

  • options (Hash)

    JSON generation options

Returns:

  • (String)


31
32
33
# File 'lib/docbook/output/docbook_mirror.rb', line 31

def to_json(**options)
  to_document.to_json(options)
end

#to_pretty_jsonString

Generate pretty-printed JSON.

Returns:

  • (String)


37
38
39
# File 'lib/docbook/output/docbook_mirror.rb', line 37

def to_pretty_json
  to_document.to_json(pretty: true)
end