From 3e0193cdeabea1820f01037b843fb21c6b75ca5b Mon Sep 17 00:00:00 2001 From: Thibaut Courouble Date: Sun, 10 Sep 2017 11:42:35 -0400 Subject: [PATCH] Update Sass documentation (3.5.1) --- assets/stylesheets/pages/_yard.scss | 13 +--------- lib/docs/filters/sass/clean_html.rb | 14 ++++++++++- lib/docs/filters/sass/entries.rb | 39 ++++++++++++++++++----------- lib/docs/scrapers/sass.rb | 6 ++++- 4 files changed, 43 insertions(+), 29 deletions(-) diff --git a/assets/stylesheets/pages/_yard.scss b/assets/stylesheets/pages/_yard.scss index bb18eebe..227dd234 100644 --- a/assets/stylesheets/pages/_yard.scss +++ b/assets/stylesheets/pages/_yard.scss @@ -1,16 +1,5 @@ ._yard { - > h2 { @extend %block-heading; } - .signature { @extend %block-label, %label-blue; } - - > .method_details { - padding-left: 1rem; - - > .signature { margin-left: -1rem; } - > .signature .overload { display: block; } - - h3 { font-size: inherit; } - ul, pre { margin: 1em 0; } - } + @extend %simple; .tag_title { font-weight: $boldFontWeight; } } diff --git a/lib/docs/filters/sass/clean_html.rb b/lib/docs/filters/sass/clean_html.rb index ce19c655..8c13564c 100644 --- a/lib/docs/filters/sass/clean_html.rb +++ b/lib/docs/filters/sass/clean_html.rb @@ -6,13 +6,17 @@ module Docs node.name = 'code' end + css('pre').each do |node| + node.content = node.content + end + root_page? ? root : other doc end def root - at_css('.maruku_toc').remove + at_css('h1 + ul').remove end def other @@ -46,6 +50,14 @@ module Docs css('.type > code').each do |node| node.before(node.content.remove('Sass::Script::Value::').remove('Sass::Script::')).remove end + + css('li > span.signature').each do |node| + node.name = 'p' + end + + css('h3 strong', 'span.overload').each do |node| + node.before(node.children).remove + end end end end diff --git a/lib/docs/filters/sass/entries.rb b/lib/docs/filters/sass/entries.rb index a20fd979..bec811bd 100644 --- a/lib/docs/filters/sass/entries.rb +++ b/lib/docs/filters/sass/entries.rb @@ -15,8 +15,12 @@ module Docs 'The !optional Flag' => '!optional' } - def include_default_entry? - false + def get_name + 'Functions' + end + + def get_type + 'Functions' end def additional_entries @@ -27,9 +31,11 @@ module Docs entries = [] type = '' - css('> [id]').each do |node| + css('*').each do |node| if node.name == 'h2' type = node.content.strip + type.remove! %r{\s#.*} + node['id'] = type.parameterize if type == 'Function Directives' entries << ['@function', node['id'], '@-Rules and Directives'] @@ -42,23 +48,26 @@ module Docs end next - end + elsif node.name == 'h3' || node.name == 'h4' + next unless TYPES.include?(type) - next unless TYPES.include?(type) + name = node.content.strip + name.remove! %r{\A.+?: } + name.remove! %r{\s#.*} - name = node.content.strip - name.remove! %r{\A.+?: } + node['id'] = name.parameterize - next if SKIP_NAMES.include?(name) + next if SKIP_NAMES.include?(name) - name = REPLACE_NAMES[name] if REPLACE_NAMES[name] - name.gsub!(/ [A-Z]/) { |str| str.downcase! } + name = REPLACE_NAMES[name] if REPLACE_NAMES[name] + name.gsub!(/ [A-Z]/) { |str| str.downcase! } - if type == '@-Rules and Directives' - next unless name =~ /\A@[\w\-]+\z/ || name == '!optional' - end + if type == '@-Rules and Directives' + next unless name =~ /\A@[\w\-]+\z/ || name == '!optional' + end - entries << [name, node['id'], type] + entries << [name, node['id'], type] + end end entries @@ -66,7 +75,7 @@ module Docs def function_entries css('.method_details > .signature').inject [] do |entries, node| - name = node.at_css('strong').content.strip + name = node.content.strip.remove(%r{\(.*}) unless name == entries.last.try(:first) entries << [name, node['id'], 'Functions'] diff --git a/lib/docs/scrapers/sass.rb b/lib/docs/scrapers/sass.rb index 07a16499..39131ffc 100644 --- a/lib/docs/scrapers/sass.rb +++ b/lib/docs/scrapers/sass.rb @@ -1,9 +1,13 @@ module Docs class Sass < UrlScraper self.type = 'yard' - self.release = '3.4.22' + self.release = '3.5.1' self.base_url = 'http://sass-lang.com/documentation/' self.root_path = 'file.SASS_REFERENCE.html' + self.links = { + home: 'http://sass-lang.com/', + code: 'https://github.com/sass/sass' + } html_filters.push 'sass/clean_html', 'sass/entries', 'title'