PHP 8.2.31
Preview: heading.rb Size: 2.40 KB
//proc/thread-self/root/opt/alt/ruby40/share/gems/gems/rdoc-7.0.4/lib/rdoc/markup/heading.rb

# frozen_string_literal: true

module RDoc
  class Markup
    # A heading with a level (1-6) and text
    #
    #  RDoc syntax:
    #   = Heading 1
    #   == Heading 2
    #   === Heading 3
    #
    #  Markdown syntax:
    #   # Heading 1
    #   ## Heading 2
    #   ### Heading 3
    class Heading < Element
      #: String
      attr_reader :text

      #: Integer
      attr_accessor :level

      # A singleton RDoc::Markup::ToLabel formatter for headings.
      #: () -> RDoc::Markup::ToLabel
      def self.to_label
        @to_label ||= Markup::ToLabel.new
      end

      # A singleton plain HTML formatter for headings. Used for creating labels for the Table of Contents
      #: () -> RDoc::Markup::ToHtml
      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

      #: (Integer, String) -> void
      def initialize(level, text)
        super()

        @level = level
        @text = text
      end

      #: (Object) -> bool
      def ==(other)
        other.is_a?(Heading) && other.level == @level && other.text == @text
      end

      # @override
      #: (untyped) -> void
      def accept(visitor)
        visitor.accept_heading(self)
      end

      # An HTML-safe anchor reference for this header.
      #: () -> String
      def aref
        "label-#{self.class.to_label.convert text.dup}"
      end

      # Creates a fully-qualified label which will include the label from +context+. This helps keep ids unique in HTML.
      #: (RDoc::Context?) -> String
      def label(context = nil)
        label = +""
        label << "#{context.aref}-" if context&.respond_to?(:aref)
        label << aref
        label
      end

      # HTML markup of the text of this label without the surrounding header element.
      #: () -> String
      def plain_html
        no_image_text = text

        if matched = no_image_text.match(/rdoc-image:[^:]+:(.*)/)
          no_image_text = matched[1]
        end

        self.class.to_html.to_html(no_image_text)
      end

      # @override
      #: (PP) -> void
      def pretty_print(q)
        q.group 2, "[head: #{level} ", ']' do
          q.pp text
        end
      end
    end
  end
end

Directory Contents

Dirs: 0 × Files: 35

Name Size Perms Modified Actions
1.25 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
10.05 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
423 B lrw-r--r-- 2026-05-21 12:15:23
Edit Download
671 B lrw-r--r-- 2026-05-21 12:15:23
Edit Download
551 B lrw-r--r-- 2026-05-21 12:15:23
Edit Download
252 B lrw-r--r-- 2026-05-21 12:15:23
Edit Download
3.16 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
529 B lrw-r--r-- 2026-05-21 12:15:23
Edit Download
5.63 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
671 B lrw-r--r-- 2026-05-21 12:15:23
Edit Download
2.40 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
831 B lrw-r--r-- 2026-05-21 12:15:23
Edit Download
909 B lrw-r--r-- 2026-05-21 12:15:23
Edit Download
1.82 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
1.72 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
494 B lrw-r--r-- 2026-05-21 12:15:23
Edit Download
14.50 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
10.08 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
1.35 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
717 B lrw-r--r-- 2026-05-21 12:15:23
Edit Download
316 B lrw-r--r-- 2026-05-21 12:15:23
Edit Download
1.51 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
2.13 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
2.34 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
14.06 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
7.17 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
5.52 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
1.13 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
1.89 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
3.65 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
7.11 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
1.72 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
1.14 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
2.29 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download
1.29 KB lrw-r--r-- 2026-05-21 12:15:23
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).