diff --git a/assets/javascripts/views/pages/yii.coffee b/assets/javascripts/views/pages/yii.coffee deleted file mode 100644 index 3efeec2a..00000000 --- a/assets/javascripts/views/pages/yii.coffee +++ /dev/null @@ -1,15 +0,0 @@ -#= 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/pages/_yii.scss b/assets/stylesheets/pages/_yii.scss index 2141b208..e27623dd 100644 --- a/assets/stylesheets/pages/_yii.scss +++ b/assets/stylesheets/pages/_yii.scss @@ -1,24 +1,14 @@ ._yii { h2 { @extend %block-heading; } - > h3 { @extend %block-label, %label-blue; } + h3 { @extend %block-label, %label-blue; } + h4 { font-size: 1em; } - .paramNameCol { font-weight: bold; } - .signature2 { margin: .4em 0; } - .sourceCode { margin-bottom: 1em; } - .sourceCode > .code { display: none; } + blockquote { @extend %note; } - .SeeAlso { - > h4 { - margin-bottom: 1em; - font-size: inherit; - } - - > ul { margin-top: 0; } + .detail-header-tag, .detailHeaderTag { + float: right; + color: $textColorLight; } - .summaryTable td:first-child[rowspan] { - border-right: 1px solid $boxBorderLight; - - + td { border-left: 0; } - } + .param-type-col { white-space: nowrap; } } diff --git a/lib/docs/filters/yii/clean_html.rb b/lib/docs/filters/yii/clean_html.rb index 72291edc..3249434f 100644 --- a/lib/docs/filters/yii/clean_html.rb +++ b/lib/docs/filters/yii/clean_html.rb @@ -2,28 +2,34 @@ module Docs class Yii class CleanHtmlFilter < Filter def call - at_css('h1').content = 'Yii PHP Framework' if root_page? + css('#nav', '.tool-link', '.toggle').remove - css('.api-suggest', '.google-ad', '.g-plusone', '#nav', '#comments').remove + css('.hashlink[name]').each do |node| + node.parent['id'] = node['name'] + node.remove + end - css('.summary > p > .toggle').each do |node| - node.parent.remove + css('.detail-header').each do |node| + node.name = 'h3' + node.child.remove while node.child.content.blank? end - css('.signature', '.signature2').each do |node| + css('pre').each do |node| + node.inner_html = node.inner_html.gsub('
', "\n").gsub(' ', ' ') + node.content = node.content + end + + css('div.signature').each do |node| node.name = 'pre' node.inner_html = node.inner_html.strip end - css('div.detailHeader').each do |node| - node.name = 'h3' + css('.detail-table th').each do |node| + node.name = 'td' 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 + css('.detail-table td.signature').each do |node| + node.name = 'th' end doc diff --git a/lib/docs/filters/yii/entries.rb b/lib/docs/filters/yii/entries.rb index 0bd2551a..b2cfdd3e 100644 --- a/lib/docs/filters/yii/entries.rb +++ b/lib/docs/filters/yii/entries.rb @@ -2,17 +2,29 @@ module Docs class Yii class EntriesFilter < Docs::EntriesFilter def get_name - at_css('h1').content.strip + name = at_css('h1').content.strip + name.remove! %r{\A.*?(Class|Trait|Interface)\s*} + name.remove!('yii\\') + name end def get_type - css('.summaryTable td').first.content + if slug.include?('guide') + 'Guides' + else + components = name.split('\\') + type = components.first + type << "\\#{components.second}" if (type == 'db' && components.second.in?(%w(cubrid mssql mysql oci pgsql sqlite))) || + (type == 'web' && components.second.in?(%w(Request Response))) + type = 'yii' if type == 'BaseYii' || type == 'Yii' + type + end end def additional_entries - css('.detailHeader').inject [] do |entries, node| + css('.detail-header').each_with_object [] do |node, entries| name = node.child.content.strip - name.prepend self.name + (node.next_element.content.include?('public static') ? '::' : '->') + name.prepend "#{self.name} " entries << [name, node['id']] end end diff --git a/lib/docs/scrapers/yii.rb b/lib/docs/scrapers/yii.rb index 3bec938d..b667dc48 100755 --- a/lib/docs/scrapers/yii.rb +++ b/lib/docs/scrapers/yii.rb @@ -1,12 +1,15 @@ module Docs class Yii < UrlScraper self.type = 'yii' - self.version = '1.1.14' - self.base_url = 'http://www.yiiframework.com/doc/api/1.1/' + self.version = '2.0.1' + self.base_url = 'http://www.yiiframework.com/doc-2.0/' + self.root_path = 'index.html' html_filters.push 'yii/clean_html', 'yii/entries' - options[:container] = '.grid_9' + options[:container] = 'div[role=main]' + options[:skip_patterns] = [/\Ayii-apidoc/] + options[:attribution] = <<-HTML © 2008–2014 by Yii Software LLC
Licensed under the three clause BSD license.