diff --git a/lib/jsduck/format/class.rb b/lib/jsduck/format/class.rb index eb10ae796d8e1e6f3b49bb3583ebf36cc8c08622..b17dc462902a909ce99788268254b8ac800cd38c 100644 --- a/lib/jsduck/format/class.rb +++ b/lib/jsduck/format/class.rb @@ -1,4 +1,4 @@ -require 'jsduck/tag_registry' +require 'jsduck/render/tags' module JsDuck module Format @@ -49,7 +49,7 @@ module JsDuck end def format_tags(context) - TagRegistry.html_renderers.each do |tag| + Render::Tags.renderers.each do |tag| if context[tag.tagname] tag.format(context, @formatter) end diff --git a/lib/jsduck/render/tags.rb b/lib/jsduck/render/tags.rb index 972ae8fee06e95409e891ffd9f09d13a3500dd84..e7172c371efa3bdc5ac69926b5338b1a9f1061e5 100644 --- a/lib/jsduck/render/tags.rb +++ b/lib/jsduck/render/tags.rb @@ -10,7 +10,7 @@ module JsDuck # Takes member or class hash. # Returns array of rendered HTML. def self.render(member) - TagRegistry.html_renderers.map do |tag| + renderers.map do |tag| if member[tag.tagname] tag.to_html(member) else @@ -19,6 +19,18 @@ module JsDuck end end + # Returns tags for rendering HTML, sorted in the order they should + # appear in final output. Sorting order is determined by the + # numeric :html_position field. + def self.renderers + if !@renderers + @renderers = TagRegistry.tags.find_all(&:html_position) + @renderers.sort! {|a, b| a.html_position <=> b.html_position } + end + + @renderers + end + # Renders the signatures for a class member. # Returns a string. def self.render_signature(member) diff --git a/lib/jsduck/tag_registry.rb b/lib/jsduck/tag_registry.rb index ab8d163f58f8db6547b018c92ef4a828c5185a9a..18f597f4674b22a0cf6756de8b1aee2b5c46ade7 100644 --- a/lib/jsduck/tag_registry.rb +++ b/lib/jsduck/tag_registry.rb @@ -26,8 +26,6 @@ module JsDuck @patterns = {} @tagnames = {} @signatures = [] - @html_renderers = [] - @html_renderers_sorted = false @member_types = [] @tags = [] @@ -57,10 +55,6 @@ module JsDuck @signatures << tag.signature end - if tag.html_position - @html_renderers << tag - end - @tags << tag end end @@ -102,18 +96,6 @@ module JsDuck @member_type_regex = Regexp.new("(?:(" + member_type_names.join("|") + ")-)") end - # Returns tags for rendering HTML, sorted in the order they should - # appear in final output. Sorting order is determined by the - # numeric :html_position field. - def html_renderers - if !@html_renderers_sorted - @html_renderers.sort! {|a, b| a.html_position <=> b.html_position } - @html_renderers_sorted = true - end - - @html_renderers - end - # # Accessors for a single tag #