1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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
|
module NulDoc
class Parser
def initialize(common_attributes, content_dir, template_dir)
@common_attributes = common_attributes
@content_dir = content_dir
@template_dir = template_dir
end
def parse_file(file_path, document_type)
Asciidoctor.load_file(
file_path,
backend: :html5,
doctype: :article,
standalone: true,
safe: :unsafe,
template_dirs: [@template_dir],
template_engine: 'erb',
template_engine_options: { erb: { trim: '<>' } },
attributes: @common_attributes.merge({
'source-file-path' => file_path,
'href' => file_path.sub(@content_dir, '').sub('.adoc', '/'),
'document-type' => document_type,
}),
extension_registry: Asciidoctor::Extensions.create do
tree_processor Nuldoc::Extensions::RevisionHistoryProcessor
tree_processor Nuldoc::Extensions::DocumentTitleProcessor
tree_processor Nuldoc::Extensions::LangAttributeProcessor
# tree_processor Nuldoc::Extensions::SectionIdValidator
# tree_processor Nuldoc::Extensions::SourceIdValidator
tree_processor Nuldoc::Extensions::TagsProcessor
# MUST BE AT THE END
tree_processor Nuldoc::Extensions::SourceIdProcessor
end,
)
end
def parse_string(s, copyright_year)
Asciidoctor.convert(
s,
backend: :html5,
doctype: :article,
safe: :unsafe,
template_dirs: [@template_dir],
template_engine: 'erb',
attributes: @common_attributes.merge({
'copyright-year' => copyright_year,
}),
extension_registry: Asciidoctor::Extensions.create do
tree_processor Nuldoc::Extensions::LangAttributeProcessor
tree_processor Nuldoc::Extensions::TagsProcessor
end,
)
end
end
end
|