class RDoc::Markup::ToBs
输出带有热删除操作的 RDoc
标记!您可能需要一个分页器来使用此输出格式。
此格式化程序在 1.8.6 上不起作用,因为它缺少 String#chars。
公共类方法
new(markup = nil) 点击切换源代码
返回一个新的 ToBs
,它已准备好进行热删除操作!
调用超类方法
RDoc::Markup::ToRdoc::new
# File rdoc/markup/to_bs.rb, line 13 def initialize markup = nil super @in_b = false @in_em = false end
公共实例方法
accept_heading(heading) 点击切换源代码
将标题文本设为粗体。
# File rdoc/markup/to_bs.rb, line 33 def accept_heading heading use_prefix or @res << ' ' * @indent @res << @headings[heading.level][0] @in_b = true @res << attributes(heading.text) @in_b = false @res << @headings[heading.level][1] @res << "\n" end
accept_list_item_start(list_item) 点击切换源代码
准备访问者以消费 list_item
# File rdoc/markup/to_bs.rb, line 46 def accept_list_item_start list_item type = @list_type.last case type when :NOTE, :LABEL then bullets = Array(list_item.label).map do |label| attributes(label).strip end.join "\n" bullets << ":\n" unless bullets.empty? @prefix = ' ' * @indent @indent += 2 @prefix << bullets + (' ' * @indent) else bullet = type == :BULLET ? '*' : @list_index.last.to_s + '.' @prefix = (' ' * @indent) + bullet.ljust(bullet.length + 1) width = bullet.length + 1 @indent += width end end
annotate(tag) 点击切换源代码
为 convert_string
开启或关闭正则表达式处理
# File rdoc/markup/to_bs.rb, line 71 def annotate tag case tag when '+b' then @in_b = true when '-b' then @in_b = false when '+_' then @in_em = true when '-_' then @in_em = false end '' end
convert_regexp_handling(target) 点击切换源代码
在 convert_regexp_handling
的结果上调用 convert_string
# File rdoc/markup/to_bs.rb, line 84 def convert_regexp_handling target convert_string super end
convert_string(string) 点击切换源代码
添加与退格键混合的粗体或下划线
# File rdoc/markup/to_bs.rb, line 91 def convert_string string return string unless @in_b or @in_em chars = if @in_b then string.chars.map do |char| "#{char}\b#{char}" end elsif @in_em then string.chars.map do |char| "_\b#{char}" end end chars.join end