diff --git a/lib/docs/filters/astro/clean_html.rb b/lib/docs/filters/astro/clean_html.rb index 92c29302..6dc761fe 100644 --- a/lib/docs/filters/astro/clean_html.rb +++ b/lib/docs/filters/astro/clean_html.rb @@ -2,7 +2,7 @@ module Docs class Astro class CleanHtmlFilter < Filter def call - @doc = at_css('article > section') + @doc = at_css('main') css('.anchor-link').remove css('.avatar-list').remove @@ -12,8 +12,7 @@ module Docs end css('pre').each do |node| - node.content = node.css('.line').map(&:content).join("\n") - node['data-language'] = node.ancestors('figure').first['class'][/lang-(\w+)/, 1] + node.content = node.css('.ec-line').map(&:content).join("\n") node.remove_attribute('style') end diff --git a/lib/docs/filters/astro/entries.rb b/lib/docs/filters/astro/entries.rb index 837ee268..661446a7 100644 --- a/lib/docs/filters/astro/entries.rb +++ b/lib/docs/filters/astro/entries.rb @@ -2,25 +2,25 @@ module Docs class Astro class EntriesFilter < Docs::EntriesFilter def get_name - name = at_css('article h1').content - name.sub! %r{\s*#\s*}, '' + name = at_css('h1') ? at_css('h1').content : at_css('h2').content + name.sub!(/\s*#\s*/, '') name end def get_type - return 'Guides' if slug.start_with?('contribute/') - return 'Guides' if slug.start_with?('guides/') - aside = at_css('aside') - a = aside.at_css('a[aria-current="page"]', 'a[data-current-parent="true"]') - a.ancestors('details').at_css('summary').content + return 'Contribute' if slug.start_with?('contribute/') + + a = at_css('a[aria-current="page"]') + a ? a.content : 'Other' end def additional_entries return [] if slug.start_with?('guides/deploy') return [] if slug.start_with?('guides/integrations-guide') - at_css('article').css('h2[id], h3[id]').each_with_object [] do |node, entries| + + at_css('main').css('h2[id], h3[id]').each_with_object [] do |node, entries| type = node.content.strip - type.sub! %r{\s*#\s*}, '' + type.sub!(/\s*#\s*/, '') entries << ["#{name}: #{type}", node['id']] end end diff --git a/lib/docs/scrapers/astro.rb b/lib/docs/scrapers/astro.rb index 7413c3b4..9c2cec43 100644 --- a/lib/docs/scrapers/astro.rb +++ b/lib/docs/scrapers/astro.rb @@ -10,15 +10,15 @@ module Docs # https://github.com/withastro/astro/blob/main/LICENSE options[:attribution] = <<-HTML - © 2021 Fred K. Schott
+ Copyright (c) 2022 withastro
Licensed under the MIT License. HTML options[:skip_patterns] = [/tutorial/] - self.release = '3.2.0' + self.release = '4.12.3' self.base_url = 'https://docs.astro.build/en/' - self.initial_paths = %w(getting-started/) + self.initial_paths = %w(install-and-setup/) html_filters.push 'astro/entries', 'astro/clean_html'