Commit 13896be0 authored by Ondrej Jirman's avatar Ondrej Jirman
Browse files

Make 'doc' shorter for search. The first sentence is usually enough.

parent 80f11911
Loading
Loading
Loading
Loading
+25 −1
Original line number Diff line number Diff line
@@ -60,10 +60,34 @@ module JsDuck
        :cls => "#{cls.full_name}",
        :member => m[:name],
        :type => m[:tagname],
        :doc => m[:doc]
        :doc => expandable_desc(m[:doc])
      }
    end

    def expandable_desc(p_doc)
      tagless = first_sentence(strip_tags(strip_links(p_doc)))
      if tagless.length > 120
        short_doc = tagless[0..116]
        ellipsis = tagless.length > short_doc.length ? "..." : ""
        "#{short_doc}#{ellipsis}"
      else
        tagless
      end
    end

    def strip_tags(str)
      str.gsub(/<.*?>/, "")
    end

    def strip_links(str)
      str = str.gsub(/\{@link +(\S*?)(?: +(.+?))?\}/, "\\1")
      str = str.gsub(/#/, ".")
    end

    def first_sentence(str)
      r = str.sub(/^(.+?\.)\s.*$/m, "\\1")
    end

  end

end
+4 −0
Original line number Diff line number Diff line
@@ -226,6 +226,10 @@ DocPanel = Ext.extend(Ext.Panel, {
MainPanel = function(){
	
	this.searchStore = new Ext.data.Store({
		sortInfo: {
			field: 'member',
			direction: 'ASC'
		},
		reader: new Ext.data.JsonReader({
			root: 'data',
			fields: ['cls', 'member', 'type', 'doc']