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 thecontent. - 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/