diff --git a/assets/images/icons.png b/assets/images/icons.png index cc9920ac..18d8741b 100644 Binary files a/assets/images/icons.png and b/assets/images/icons.png differ diff --git a/assets/images/icons@2x.png b/assets/images/icons@2x.png index 7e066a90..c97d2f6b 100644 Binary files a/assets/images/icons@2x.png and b/assets/images/icons@2x.png differ diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index 9f6ea9e3..59722d81 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -200,5 +200,10 @@ credits = [ '2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors', 'MIT', 'https://raw.github.com/jashkenas/underscore/master/LICENSE' + ], [ + 'Yii', + '2008-2014 by Yii Software LLC', + 'BSD', + 'https://raw.github.com/yiisoft/yii/master/LICENSE' ] ] diff --git a/assets/javascripts/templates/pages/news_tmpl.coffee b/assets/javascripts/templates/pages/news_tmpl.coffee index 21d4106a..d2efaf0e 100644 --- a/assets/javascripts/templates/pages/news_tmpl.coffee +++ b/assets/javascripts/templates/pages/news_tmpl.coffee @@ -24,7 +24,10 @@ newsItem = (date, news) -> result app.news = [ - [ 1394236800000, # March 8, 2014 + [ 1394928000000, # March 16, 2013 + """ New Yii documentation """, + ], [ + 1394236800000, # March 8, 2014 """ Added path bar. """, ], [ 1393027200000, # February 22, 2014 diff --git a/assets/javascripts/views/pages/yii.coffee b/assets/javascripts/views/pages/yii.coffee new file mode 100644 index 00000000..3efeec2a --- /dev/null +++ b/assets/javascripts/views/pages/yii.coffee @@ -0,0 +1,15 @@ +#= require views/pages/base + +class app.views.YiiPage extends app.views.BasePage + @events: + click: 'onClick' + + onClick: (event) -> + return unless event.target.classList.contains 'show' + $.stopEvent(event) + + source = $ '.code', event.target.parentNode.parentNode + isShown = source.style.display is 'block' + + source.style.display = if isShown then 'none' else 'block' + event.target.textContent = if isShown then 'show' else 'hide' diff --git a/assets/stylesheets/application.css.scss b/assets/stylesheets/application.css.scss index 479aff8b..33e74c4c 100644 --- a/assets/stylesheets/application.css.scss +++ b/assets/stylesheets/application.css.scss @@ -48,4 +48,5 @@ 'pages/rfc', 'pages/sphinx', 'pages/underscore', - 'pages/yard'; + 'pages/yard', + 'pages/yii'; diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index 3310fae3..898d99ce 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -50,3 +50,4 @@ ._icon-moment:before { background-position: -1rem -7rem; } ._icon-c:before { background-position: -2rem -7rem; } %icon-path { background-position: -3rem -7rem; } +._icon-yii:before { background-position: -4rem -7rem; } diff --git a/assets/stylesheets/pages/_yii.scss b/assets/stylesheets/pages/_yii.scss new file mode 100644 index 00000000..b6625ba2 --- /dev/null +++ b/assets/stylesheets/pages/_yii.scss @@ -0,0 +1,24 @@ +._yii { + h2 { @extend %block-heading; } + > h3 { @extend %block-label, %label-blue; } + + .paramNameCol { font-weight: bold; } + .signature2 { margin: .4em 0; } + .sourceCode { margin-bottom: 1em; } + .sourceCode > .code { display: none; } + + .SeeAlso { + > h4 { + margin-bottom: 1em; + font-size: inherit; + } + + > ul { margin-top: 0; } + } + + .summaryTable td:first-child[rowspan] { + border-right: 1px solid #e5e5e5; + + + td { border-left: 0; } + } +} diff --git a/lib/docs/filters/yii/clean_html.rb b/lib/docs/filters/yii/clean_html.rb index 5adebcc6..72291edc 100644 --- a/lib/docs/filters/yii/clean_html.rb +++ b/lib/docs/filters/yii/clean_html.rb @@ -2,47 +2,32 @@ module Docs class Yii class CleanHtmlFilter < Filter def call + at_css('h1').content = 'Yii PHP Framework' if root_page? - #remove irrelevant content - css('div').each do |node| - if node['class'] == "layout-main-header" - node.remove - elsif node['class'] == "layout-main-submenu" - node.remove - elsif node['class'] == "layout-main-shortcuts" - node.remove - elsif node['class'] == "layout-main-footer" - node.remove - elsif node['class'] == "grid_3 alpha" - node.remove - elsif node['class'] == "comments" - node.remove - elsif node['class'] == "api-suggest clearfix" - node.remove - elsif node['id'] == "comments" - node.remove - elsif node['id'] == "nav" - node.remove - else - end - end + css('.api-suggest', '.google-ad', '.g-plusone', '#nav', '#comments').remove - # Put code blocks in
 tags
-        css('.code').each do |node|
+        css('.summary > p > .toggle').each do |node|
+          node.parent.remove
+        end
+
+        css('.signature', '.signature2').each do |node|
           node.name = 'pre'
+          node.inner_html = node.inner_html.strip
+        end
+
+        css('div.detailHeader').each do |node|
+          node.name = 'h3'
         end
 
-        #remove Hide inherited methods / properties and show links
-        css('a').each do |node|
-          if node['class'] == 'toggle'
-            node.remove
-          elsif node['class'] == 'show'
-            node.remove
-          end
+        css('.sourceCode > .code > code').each do |node|
+          parent = node.parent
+          parent.name = 'pre'
+          node.remove
+          parent.inner_html = node.first_element_child.inner_html.strip
         end
 
         doc
       end
     end
   end
-end
\ No newline at end of file
+end
diff --git a/lib/docs/filters/yii/entries.rb b/lib/docs/filters/yii/entries.rb
index 803d32be..0bd2551a 100644
--- a/lib/docs/filters/yii/entries.rb
+++ b/lib/docs/filters/yii/entries.rb
@@ -1,30 +1,21 @@
 module Docs
   class Yii
     class EntriesFilter < Docs::EntriesFilter
-
       def get_name
-        #class names exist in the 

content. - name = at_css('h1').content.strip + at_css('h1').content.strip end def get_type - #need to get the table with a class of summaryTable. Then we need the content of the first td in the first tr. - type = css('table.summaryTable td')[0].content - type + css('.summaryTable td').first.content end def additional_entries - css('table.summaryTable tr[id]').inject [] do |entries,node| - #need to ignore inherited methods and properties - if (node['class'] != 'inherited' and node.parent().parent()['class'] == "summary docMethod") - #name should be Class.method() id will take you to the link in the summary block. - name = slug + "." + node['id'] + "()" - entries << [name, node['id']] - end - entries + css('.detailHeader').inject [] do |entries, node| + name = node.child.content.strip + name.prepend self.name + (node.next_element.content.include?('public static') ? '::' : '->') + entries << [name, node['id']] end end - end end -end \ No newline at end of file +end diff --git a/lib/docs/scrapers/yii.rb b/lib/docs/scrapers/yii.rb index 4467319b..3bec938d 100755 --- a/lib/docs/scrapers/yii.rb +++ b/lib/docs/scrapers/yii.rb @@ -1,12 +1,15 @@ module Docs class Yii < UrlScraper - self.name = 'Yii' - self.slug = 'yii' self.type = 'yii' self.version = '1.1.14' self.base_url = 'http://www.yiiframework.com/doc/api/1.1/' html_filters.push 'yii/clean_html', 'yii/entries' + options[:container] = '.grid_9' + options[:attribution] = <<-HTML + © 2008–2014 by Yii Software LLC
+ Licensed under the three clause BSD license. + HTML end end diff --git a/public/icons/docs/yii/16.png b/public/icons/docs/yii/16.png index 85a6ad44..9b391bc0 100644 Binary files a/public/icons/docs/yii/16.png and b/public/icons/docs/yii/16.png differ diff --git a/public/icons/docs/yii/16@2x.png b/public/icons/docs/yii/16@2x.png index 5d613ab4..bf650bc6 100644 Binary files a/public/icons/docs/yii/16@2x.png and b/public/icons/docs/yii/16@2x.png differ diff --git a/public/icons/docs/yii/SOURCE b/public/icons/docs/yii/SOURCE new file mode 100644 index 00000000..e9482791 --- /dev/null +++ b/public/icons/docs/yii/SOURCE @@ -0,0 +1 @@ +http://www.yiiframework.com/logo/