Class: RDoc::Markup::Heading
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Struct
|
|
|
Instance Chain:
self,
Struct
|
|
| Inherits: |
Struct
|
| Defined in: | lib/rdoc/markup/heading.rb, lib/rdoc/markup/heading.rb, lib/rdoc/markup/heading.rb |
Overview
Class Method Summary
-
.new(level, text) ⇒ Heading
constructor
: (Integer, String) -> void.
-
.to_html
A singleton plain HTML formatter for headings.
-
.to_label
A singleton
ToLabelformatter for headings.
Instance Attribute Summary
Instance Method Summary
-
#==(other)
: (Object) -> bool.
-
#accept(visitor)
: (untyped) -> void.
-
#aref
An HTML-safe anchor reference for this header using GitHub-style formatting: - Lowercase - Spaces converted to hyphens - Special characters removed (except hyphens).
-
#label(context = nil)
Creates a fully-qualified label (GitHub-style) which includes the context’s aref prefix.
-
#legacy_aref
An HTML-safe anchor reference using legacy
::RDoc::RDocformatting: - Prefixed with “label-” - Original case preserved - Spaces converted to + (URL encoding style) - Special characters percent-encoded. -
#legacy_label(context = nil)
Creates a fully-qualified legacy label for backward compatibility.
-
#plain_html
HTML markup of the text of this label without the surrounding header element.
-
#pretty_print(q)
: (PP) -> void.
Constructor Details
.new(level, text) ⇒ Heading
: (Integer, String) -> void
Class Method Details
.to_html
# File 'lib/rdoc/markup/heading.rb', line 53
def self.to_html @to_html ||= begin markup = Markup.new markup.add_regexp_handling CrossReference::CROSSREF_REGEXP, :CROSSREF to_html = Markup::ToHtml.new nil def to_html.handle_regexp_CROSSREF(target) target.text.sub(/^\\/, '') end to_html end end
.to_label
[ GitHub ]Instance Attribute Details
#level (rw)
: Integer
# File 'lib/rdoc/markup/heading.rb', line 13
attr_accessor :level
#text (readonly)
: String
# File 'lib/rdoc/markup/heading.rb', line 10
attr_reader :text
Instance Method Details
#==(other)
: (Object) -> bool
#accept(visitor)
: (untyped) -> void
# File 'lib/rdoc/markup/heading.rb', line 70
def accept(visitor) visitor.accept_heading(self) end
#aref
An HTML-safe anchor reference for this header using GitHub-style formatting:
-
Lowercase
-
Spaces converted to hyphens
-
Special characters removed (except hyphens)
Examples:
"Hello" -> "hello"
"Hello World" -> "hello-world"
"Foo Bar Baz" -> "foo-bar-baz"
: () -> String
#label(context = nil)
Creates a fully-qualified label (GitHub-style) which includes the context’s aref prefix. This helps keep IDs unique in HTML when headings appear within class/method documentation.
Examples (without context):
"Hello World" -> "hello-world"
Examples (with context being class Foo):
"Hello World" -> "class-foo-hello-world"
Examples (with context being method #bar):
"Hello World" -> "method-i-bar-hello-world"
: (RDoc::Context?) -> String
#legacy_aref
An HTML-safe anchor reference using legacy ::RDoc::RDoc formatting:
-
Prefixed with “label-”
-
Original case preserved
-
Spaces converted to + (URL encoding style)
-
Special characters percent-encoded
Returns nil if it would be the same as the GitHub-style aref (no alias needed).
Examples:
"hello" -> "label-hello" (different due to label- prefix)
"Hello" -> "label-Hello"
"Hello World" -> "label-Hello+World"
"Foo Bar Baz" -> "label-FooBarBaz"
: () -> String?
#legacy_label(context = nil)
Creates a fully-qualified legacy label for backward compatibility. This is used to generate a secondary ID attribute on the heading’s inner anchor, allowing old-style links (e.g., .html#label-Hello+World) to continue working.
Examples (without context):
"hello" -> "label-hello"
"Hello World" -> "label-Hello+World"
Examples (with context being class Foo):
"hello" -> "class-Foo-label-hello"
"Hello World" -> "class-Foo-label-Hello+World"
: (RDoc::Context?) -> String
# File 'lib/rdoc/markup/heading.rb', line 141
def legacy_label(context = nil) result = +"" if context&.respond_to?(:legacy_aref) result << "#{context.legacy_aref}-" elsif context&.respond_to?(:aref) result << "#{context.aref}-" end result << legacy_aref result end
#plain_html
HTML markup of the text of this label without the surrounding header element. : () -> String
#pretty_print(q)
: (PP) -> void