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
     #