注册扩展
注册一个或多个扩展
这些扩展使用类似 DSL 的回调函数,为每个文档进行注册
Asciidoctor::Extensions.register do
preprocessor FrontMatterPreprocessor
tree_processor ShellSessionTreeProcessor
postprocessor CopyrightFooterPostprocessor
docinfo_processor TrackingCodeDocinfoProcessor if @document.basebackend? 'html'
block ShoutBlock
block_macro GistBlockMacro if @document.basebackend? 'html'
inline_macro ManInlineMacro
include_processor UriIncludeProcessor
end
每个注册的类在创建 Asciidoctor::Document 时会被实例化。或者,您可以在注册扩展时传递类的实例。
| 扩展类必须定义在注册块的外部。如果在注册块内部定义扩展类,将在后续调用时导致错误。 |
| 一旦扩展类被注册,它将被冻结,防止进一步修改。 |
如果您需要在基于类的扩展实例上存储状态,请在构造函数中将一个新的 Hash 赋值给名为 @state 的实例变量,然后将数据赋值给该 Hash 的键。如果您需要其他扩展能够访问该状态,请为该实例变量定义一个读取器(例如,attr_reader :state)。 |
您可以为每种类型的处理器注册多个,但每个自定义块或宏只能有一个处理器。