From dd43af3be7eddb832c77ef367456fa023fed7d7a Mon Sep 17 00:00:00 2001 From: "nicholas a. evans" Date: Sun, 8 Dec 2024 05:43:43 -0500 Subject: [PATCH] [ruby/rdoc] Use distinct styles for note lists and label lists (https://github.com/ruby/rdoc/pull/1209) * Use the original `label` description list style As a default for all description lists, the original "label" style is more readable. This is slightly different from the original `label` dl though: * slightly increased left margin for `dd` (to 1em) * removed right margin on `dd` * removed `dt` bottom margin and `dd` top margin, to reduce the gap between the term and its description (to only the standard line-height gap). * Add closing tags for description list terms Without the closing tags, the dt elements contain whitespace after the text. This normally isn't a big deal, but does mess some things up, e.g: using `::after` with `content: ", "` in stylesheets. * Restore float:left style for note lists Unlike the original note list styles, this version sets the line-height for all `dt` elements to be the same as the `p` elements contained inside the `dd`, so that the second line has the same indentation as all subsequent lines. * Add commas between note list terms https://github.com/ruby/rdoc/commit/9e69ea6d75 --- .../generator/template/darkfish/css/rdoc.css | 24 +++++++++++++++---- lib/rdoc/markup/to_html.rb | 2 +- test/rdoc/test_rdoc_markup_to_html.rb | 12 +++++----- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/lib/rdoc/generator/template/darkfish/css/rdoc.css b/lib/rdoc/generator/template/darkfish/css/rdoc.css index 82c1e4baf6..69b1d08577 100644 --- a/lib/rdoc/generator/template/darkfish/css/rdoc.css +++ b/lib/rdoc/generator/template/darkfish/css/rdoc.css @@ -469,14 +469,30 @@ main dl { } main dt { - margin-bottom: 0.5em; - margin-right: 1em; - float: left; + line-height: 1.5; /* matches `main p` */ font-weight: bold; } +main dl.note-list dt { + margin-right: 1em; + float: left; +} + +main dl.note-list dt:has(+ dt) { + margin-right: 0.25em; +} + +main dl.note-list dt:has(+ dt)::after { + content: ', '; + font-weight: normal; +} + main dd { - margin: 0 1em 1em 0.5em; + margin: 0 0 1em 1em; +} + +main dd p:first-child { + margin-top: 0; } /* Headers within Main */ diff --git a/lib/rdoc/markup/to_html.rb b/lib/rdoc/markup/to_html.rb index 91cadf9d16..dd37bf9eb3 100644 --- a/lib/rdoc/markup/to_html.rb +++ b/lib/rdoc/markup/to_html.rb @@ -407,7 +407,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter "
  • " when :LABEL, :NOTE then Array(list_item.label).map do |label| - "
    #{to_html label}\n" + "
    #{to_html label}
    \n" end.join << "
    " else raise RDoc::Error, "Invalid list type: #{list_type.inspect}" diff --git a/test/rdoc/test_rdoc_markup_to_html.rb b/test/rdoc/test_rdoc_markup_to_html.rb index e3affa533c..225598a651 100644 --- a/test/rdoc/test_rdoc_markup_to_html.rb +++ b/test/rdoc/test_rdoc_markup_to_html.rb @@ -146,7 +146,7 @@ class TestRDocMarkupToHtml < RDoc::Markup::FormatterTestCase end def accept_list_item_start_label - assert_equal "
    cat\n
    ", @to.res.join + assert_equal "
    cat
    \n
    ", @to.res.join end def accept_list_item_start_lalpha @@ -154,13 +154,13 @@ class TestRDocMarkupToHtml < RDoc::Markup::FormatterTestCase end def accept_list_item_start_note - assert_equal "
    cat\n
    ", + assert_equal "
    cat
    \n
    ", @to.res.join end def accept_list_item_start_note_2 expected = <<-EXPECTED -
    teletype +
    teletype

    teletype description

    @@ -171,7 +171,7 @@ class TestRDocMarkupToHtml < RDoc::Markup::FormatterTestCase def accept_list_item_start_note_multi_description expected = <<-EXPECTED -
    label +
    label

    description one

    @@ -184,8 +184,8 @@ class TestRDocMarkupToHtml < RDoc::Markup::FormatterTestCase def accept_list_item_start_note_multi_label expected = <<-EXPECTED -
    one -
    two +
    one
    +
    two

    two headers