diff --git a/lib/jsduck/news.rb b/lib/jsduck/news.rb index 6a2672a76a0597a4f4d2525ea9bcd413188cfb5c..48035376e1797f893321c7eda52483b579cd9a10 100644 --- a/lib/jsduck/news.rb +++ b/lib/jsduck/news.rb @@ -1,4 +1,5 @@ require 'jsduck/util/null_object' +require 'jsduck/columns' module JsDuck @@ -16,6 +17,7 @@ module JsDuck # Generates list of new classes & members in this version. def initialize(relations, doc_formatter) @doc_formatter = doc_formatter + @columns = Columns.new(:members) @classes = [] relations.each do |cls| @@ -31,26 +33,42 @@ module JsDuck # Returns the HTML def to_html(style="") - html = @classes.map {|c| render_class(c) }.flatten.join("\n") - - return <<-EOHTML -
-

New in this version

-
-

Members

- #{html} -
-
- EOHTML + return [ + "
", + "

New in this version

", + "
", + "

New members

", + render_columns(@classes), + "
", + "
", + "
", + ].flatten.join("\n") end - def render_class(cls) - [ - "

#{cls[:name]}

", - "", - ] + private + + def render_columns(classes) + align = ["left-column", "middle-column", "right-column"] + i = -1 + return @columns.split(classes, 3).map do |col| + i += 1 + [ + "
", + render_classes(col), + "
", + ] + end + end + + def render_classes(classes) + return classes.map do |cls| + [ + "

#{cls[:name]}

", + "", + ] + end end def link(m)