Module: Docbook::Mirror

Defined in:
lib/docbook/mirror.rb,
lib/docbook/mirror/mark.rb,
lib/docbook/mirror/node.rb,
lib/docbook/mirror/handlers.rb,
lib/docbook/mirror/transformer.rb,
lib/docbook/mirror/handlers/list.rb,
lib/docbook/mirror/handlers/index.rb,
lib/docbook/mirror/handlers/media.rb,
lib/docbook/mirror/handlers/table.rb,
lib/docbook/mirror/handlers/inline.rb,
lib/docbook/mirror/handler_registry.rb,
lib/docbook/mirror/handlers/callout.rb,
lib/docbook/mirror/handlers/example.rb,
lib/docbook/mirror/handlers/section.rb,
lib/docbook/mirror/handlers/sidebar.rb,
lib/docbook/mirror/docbook_to_mirror.rb,
lib/docbook/mirror/handlers/equation.rb,
lib/docbook/mirror/handlers/footnote.rb,
lib/docbook/mirror/handlers/glossary.rb,
lib/docbook/mirror/handlers/qandaset.rb,
lib/docbook/mirror/mirror_to_docbook.rb,
lib/docbook/mirror/handlers/paragraph.rb,
lib/docbook/mirror/handlers/procedure.rb,
lib/docbook/mirror/handlers/reference.rb,
lib/docbook/mirror/handlers/admonition.rb,
lib/docbook/mirror/handlers/annotation.rb,
lib/docbook/mirror/handlers/blockquote.rb,
lib/docbook/mirror/handlers/code_block.rb,
lib/docbook/mirror/handlers/structural.rb,
lib/docbook/mirror/handlers/bibliography.rb

Defined Under Namespace

Modules: Handlers Classes: DocbookToMirror, Error, HandlerRegistry, Mark, MirrorToDocbook, Node, Transformer

Class Method Summary collapse

Class Method Details

.default_registryObject

Build the default handler registry with all built-in handlers. Third-party code can add handlers to this registry, or create a custom registry and pass it to DocbookToMirror.



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# File 'lib/docbook/mirror.rb', line 19

def self.default_registry
  registry = HandlerRegistry.new

  # ── Paragraphs ──
  registry.register(Docbook::Elements::Para, Handlers::Paragraph)
  registry.register(Docbook::Elements::FormalPara,
                    ->(el, ctx) {
                      ctx.paragraph_handler(el.para) if el.para
                    })

  # ── Code ──
  registry.register(Docbook::Elements::Code, Handlers::CodeBlock)
  registry.register(Docbook::Elements::ProgramListing, Handlers::CodeBlock)
  registry.register(Docbook::Elements::Screen, Handlers::CodeBlock,
                    extra_kwargs: { language: "text" })
  registry.register(Docbook::Elements::LiteralLayout, Handlers::CodeBlock,
                    extra_kwargs: { language: "text" })

  # ── Blocks ──
  registry.register(Docbook::Elements::BlockQuote, Handlers::Blockquote)
  registry.register(Docbook::Elements::Example, Handlers::Example)
  registry.register(Docbook::Elements::InformalExample, Handlers::Example,
                    method_name: :informal)
  registry.register(Docbook::Elements::Address, Handlers::Example,
                    method_name: :address)
  registry.register(Docbook::Elements::LegalNotice, Handlers::Example,
                    method_name: :legalnotice)

  # ── Lists ──
  registry.register(Docbook::Elements::OrderedList, Handlers::List,
                    method_name: :ordered)
  registry.register(Docbook::Elements::ItemizedList, Handlers::List,
                    method_name: :bullet)
  registry.register(Docbook::Elements::VariableList, Handlers::List,
                    method_name: :definition)

  # ── Media ──
  registry.register(Docbook::Elements::Figure, Handlers::Media,
                    method_name: :figure)
  registry.register(Docbook::Elements::InformalFigure, Handlers::Media,
                    method_name: :figure)

  # ── Tables ──
  registry.register(Docbook::Elements::Table, Handlers::Table)
  registry.register(Docbook::Elements::InformalTable, Handlers::Table)

  # ── Admonitions ──
  registry.register(Docbook::Elements::Note, Handlers::Admonition)
  registry.register(Docbook::Elements::Warning, Handlers::Admonition)
  registry.register(Docbook::Elements::Tip, Handlers::Admonition)
  registry.register(Docbook::Elements::Caution, Handlers::Admonition)
  registry.register(Docbook::Elements::Important, Handlers::Admonition)
  registry.register(Docbook::Elements::Danger, Handlers::Admonition)

  # ── Sections ──
  registry.register(Docbook::Elements::Section, Handlers::Section,
                    method_name: :section)
  registry.register(Docbook::Elements::Chapter, Handlers::Section,
                    method_name: :chapter)
  registry.register(Docbook::Elements::Appendix, Handlers::Section,
                    method_name: :appendix)
  registry.register(Docbook::Elements::Part, Handlers::Section,
                    method_name: :part)
  registry.register(Docbook::Elements::Preface, Handlers::Section,
                    method_name: :preface)
  registry.register(Docbook::Elements::Dedication,
                    ->(el, ctx) {
                      Handlers::Section.titled_section(el, context: ctx,
                                                           node_class: Node::Preface)
                    })
  registry.register(Docbook::Elements::Acknowledgements,
                    ->(el, ctx) {
                      Handlers::Section.titled_section(el, context: ctx,
                                                           node_class: Node::Acknowledgements)
                    })
  registry.register(Docbook::Elements::Colophon,
                    ->(el, ctx) {
                      Handlers::Section.titled_section(el, context: ctx,
                                                           node_class: Node::Colophon)
                    })
  registry.register(Docbook::Elements::Simplesect, Handlers::Section,
                    method_name: :simplesect)
  registry.register(Docbook::Elements::Sect1, Handlers::Section,
                    method_name: :sect)
  registry.register(Docbook::Elements::Sect2, Handlers::Section,
                    method_name: :sect)
  registry.register(Docbook::Elements::Sect3, Handlers::Section,
                    method_name: :sect)
  registry.register(Docbook::Elements::Sect4, Handlers::Section,
                    method_name: :sect)
  registry.register(Docbook::Elements::Sect5, Handlers::Section,
                    method_name: :sect)

  # ── Structural ──
  registry.register(Docbook::Elements::Set, Handlers::Structural,
                    method_name: :set)
  registry.register(Docbook::Elements::Article, Handlers::Structural,
                    method_name: :article)
  registry.register(Docbook::Elements::Topic, Handlers::Structural,
                    method_name: :topic)

  # ── Reference ──
  registry.register(Docbook::Elements::Reference, Handlers::Reference,
                    method_name: :reference)
  registry.register(Docbook::Elements::RefEntry, Handlers::Reference,
                    method_name: :refentry)
  registry.register(Docbook::Elements::RefNamediv, Handlers::Reference,
                    method_name: :refnamediv, concat: true)
  registry.register(Docbook::Elements::RefSection, Handlers::Reference,
                    method_name: :refsection)
  registry.register(Docbook::Elements::RefSect1, Handlers::Reference,
                    method_name: :refsection)
  registry.register(Docbook::Elements::RefSect2, Handlers::Reference,
                    method_name: :refsection)
  registry.register(Docbook::Elements::RefSect3, Handlers::Reference,
                    method_name: :refsection)

  # ── Content blocks ──
  registry.register(Docbook::Elements::Procedure, Handlers::Procedure)
  registry.register(Docbook::Elements::SideBar, Handlers::Sidebar)
  registry.register(Docbook::Elements::Annotation, Handlers::Annotation)
  registry.register(Docbook::Elements::Footnote, Handlers::Footnote)
  registry.register(Docbook::Elements::Equation, Handlers::Equation)
  registry.register(Docbook::Elements::QandASet, Handlers::QandASet)
  registry.register(Docbook::Elements::CalloutList, Handlers::Callout,
                    method_name: :list)

  # ── Back matter ──
  registry.register(Docbook::Elements::Glossary, Handlers::Glossary)
  registry.register(Docbook::Elements::Bibliography, Handlers::Bibliography)
  registry.register(Docbook::Elements::Bibliolist, Handlers::Bibliography,
                    method_name: :bibliolist)
  registry.register(Docbook::Elements::Index, Handlers::Index)
  registry.register(Docbook::Elements::SetIndex, Handlers::Index)

  registry
end