|
|
@@ -0,0 +1,39 @@
|
|
|
+module Docs
|
|
|
+ class Marionette
|
|
|
+ class EntriesV3Filter < Docs::EntriesFilter
|
|
|
+ def get_name
|
|
|
+ name = at_css('h1').content.strip
|
|
|
+ name.remove!(/Marionette./)
|
|
|
+ name = name[0].upcase + name.from(1)
|
|
|
+ name
|
|
|
+ end
|
|
|
+
|
|
|
+ def get_type
|
|
|
+ type = name.dup
|
|
|
+ type = 'CollectionView' if type.include?('CollectionView')
|
|
|
+ type = 'Miscellaneous' if %w(Features Installing\ Marionette Upgrade\ Guide Common\ Concepts Common\ Functionality).include?(type)
|
|
|
+ type
|
|
|
+ end
|
|
|
+
|
|
|
+ def additional_entries
|
|
|
+ if slug == 'marionette.behavior'
|
|
|
+ css('#documentation-index + ul a[href="#api"] + ul a').map do |node|
|
|
|
+ ["#{name}: #{node.content}", node['href'].remove('#')]
|
|
|
+ end
|
|
|
+ else
|
|
|
+ css('#documentation-index + ul a').each_with_object [] do |node, entries|
|
|
|
+ content = node.content.strip
|
|
|
+ content.remove! '\'s'
|
|
|
+ id = node['href'].remove('#')
|
|
|
+ next if content == name
|
|
|
+ if content.start_with?(name) || content.start_with?('Marionette.')
|
|
|
+ entries << [content, id]
|
|
|
+ elsif content =~ /\A"?[a-z]/
|
|
|
+ entries << ["#{name.sub('View Lifecycle', 'View')} #{content}", id]
|
|
|
+ end
|
|
|
+ end
|
|
|
+ end
|
|
|
+ end
|
|
|
+ end
|
|
|
+ end
|
|
|
+end
|