Add Angular 2 Dart documentation

pull/546/head
Thibaut Courouble 8 years ago
parent ffb991ad0e
commit a05ed038d4

@ -1,24 +1,25 @@
._angular { ._angular {
padding-left: 1rem; padding-left: 1rem;
h1, h2, > h3, .banner, .badges { margin-left: -1rem; } h1, h2, > h3, .banner, .badges, .breadcrumbs { margin-left: -1rem; }
._mobile & { ._mobile & {
padding-left: 0; padding-left: 0;
h1, h2, > h3, .banner, .badges { margin-left: 0; } h1, h2, > h3, .banner, .badges, .breadcrumbs { margin-left: 0; }
} }
h2 { @extend %block-heading; } h2 { @extend %block-heading; }
> h3 { @extend %block-label, %label-blue; } > h3 { @extend %block-label, %label-blue; }
.code-example > h4, .pre-title { @extend %pre-heading; } .code-example > h4, .pre-title { @extend %pre-heading; }
p > code, .status-badge { @extend %label; } p > code, dd > code, .status-badge { @extend %label; }
.l-sub-section, .alert, .banner { @extend %note; } .l-sub-section, .alert, .banner, .breadcrumbs { @extend %note; }
.banner { @extend %note-green; } .banner { @extend %note-green; }
.alert.is-important { @extend %note-red; } .alert.is-important { @extend %note-red; }
.alert.is-helpful { @extend %note-blue; } .alert.is-helpful, .breadcrumbs { @extend %note-blue; }
.breadcrumbs { padding-left: 2em; }
td > h3, .l-sub-section > h3, .l-sub-section > h4, .alert > h3, .alert > h4, .row-margin > h3 { td > h3, .l-sub-section > h3, .l-sub-section > h4, .alert > h3, .alert > h4, .row-margin > h3 {
margin-top: .25rem; margin-top: .25rem;

@ -9,7 +9,7 @@ module Docs
node.to_html node.to_html
end.join(' ') end.join(' ')
badges = %(<div class="badges">#{badges}</div>) badges = %(<div class="badges">#{badges}</div>)
container.child.before(at_css('header.hero h1')).before(badges).before(css('header.hero + .banner')) container.child.before(at_css('header.hero h1')).before(badges).before(css('header.hero + .banner, header.hero .breadcrumbs'))
@doc = container @doc = container
title = at_css('h1').content.strip title = at_css('h1').content.strip
@ -17,6 +17,8 @@ module Docs
at_css('h1').content = result[:entries].first.name at_css('h1').content = result[:entries].first.name
elsif title == 'Angular' elsif title == 'Angular'
at_css('h1').content = slug.split('/').last.gsub('-', ' ') at_css('h1').content = slug.split('/').last.gsub('-', ' ')
elsif at_css('.breadcrumbs') && title != result[:entries].first.name
at_css('h1').content = result[:entries].first.name
end end
css('pre.no-bg-with-indent').each do |node| css('pre.no-bg-with-indent').each do |node|
@ -28,9 +30,9 @@ module Docs
node.parent.content = node.parent.css('code, pre').map(&:content).join("\n") node.parent.content = node.parent.css('code, pre').map(&:content).join("\n")
end end
css('button.verbose', 'button.verbose + .l-verbose-section', 'a[id=top]', 'a[href="#top"]').remove css('button.verbose', 'button.verbose + .l-verbose-section', 'a[id=top]', 'a[href="#top"]', '.sidebar').remove
css('.c10', '.showcase', '.showcase-content', '.l-main-section', 'div.div', 'div[flex]', 'code-tabs', 'md-card', 'md-card-content', 'div:not([class])', 'footer', '.card-row', '.card-row-container', 'figure', 'blockquote', 'exported', 'defined', 'div.ng-scope', '.code-example header').each do |node| css('.c10', '.showcase', '.showcase-content', '.l-main-section', 'div.div', 'div[flex]', 'code-tabs', 'md-card', 'md-card-content', 'div:not([class])', 'footer', '.card-row', '.card-row-container', 'figure', 'blockquote', 'exported', 'defined', 'div.ng-scope', '.code-example header', 'section.desc', '.row', '.dart-api-entry-main', '.main-content', 'section.summary', 'span.signature').each do |node|
node.before(node.children).remove node.before(node.children).remove
end end
@ -44,6 +46,12 @@ module Docs
css('pre.prettyprint').each do |node| css('pre.prettyprint').each do |node|
node.content = node.content.strip node.content = node.content.strip
node['data-language'] = 'dart' if node['class'].include?('dart')
end
css('.multi-line-signature').each do |node|
node.name = 'pre'
node.content = node.content.strip
end end
css('a[id]:empty').each do |node| css('a[id]:empty').each do |node|

@ -3,7 +3,7 @@ module Docs
class EntriesFilter < Docs::EntriesFilter class EntriesFilter < Docs::EntriesFilter
def get_name def get_name
if slug.start_with?('tutorial') || slug.start_with?('guide') if slug.start_with?('tutorial') || slug.start_with?('guide')
name = at_css('.nav-list-item.is-selected').content.strip name = at_css('.nav-list-item.is-selected, header.hero h1').content.strip
else else
name = at_css('header.hero h1').content.strip name = at_css('header.hero h1').content.strip
end end
@ -18,7 +18,11 @@ module Docs
end end
end end
name << '()' if at_css('.hero-subtitle').try(:content) == 'Function' subtitle = at_css('.hero-subtitle').try(:content)
breadcrumbs = css('.breadcrumbs li').map(&:content)[2..-2]
name.prepend "#{breadcrumbs.join('.')}#" if breadcrumbs.present? && breadcrumbs[0] != name
name << '()' if %w(Function Method Constructor).include?(subtitle)
name name
end end
@ -46,7 +50,10 @@ module Docs
private private
def mod def mod
@mod ||= slug[/api\/([\w\-]+)\//, 1] return @mod if defined?(@mod)
@mod = slug[/api\/([\w\-\.]+)\//, 1]
@mod.remove! 'angular2.' if @mod
@mod
end end
end end
end end

@ -36,7 +36,7 @@ module Docs
stub 'api/' do stub 'api/' do
capybara = load_capybara_selenium capybara = load_capybara_selenium
capybara.app_host = 'https://angular.io' capybara.app_host = 'https://angular.io'
capybara.visit('/docs/ts/latest/api/') capybara.visit(URL.parse(self.base_url).path + 'api/')
capybara.execute_script('return document.body.innerHTML') capybara.execute_script('return document.body.innerHTML')
end end
@ -45,6 +45,16 @@ module Docs
self.base_url = 'https://angular.io/docs/ts/latest/' self.base_url = 'https://angular.io/docs/ts/latest/'
end end
version '2 Dart' do
self.release = '2.1.2'
self.base_url = 'https://angular.io/docs/dart/latest/'
options[:skip_patterns] += [/angular2\.compiler/]
options[:skip_link] = ->(link) do
link.parent['class'].try(:include?, 'inherited') || link.parent.parent['class'].try(:include?, 'inherited')
end
end
private private
def parse(string) def parse(string)

Loading…
Cancel
Save