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..a4ea1263 100644
--- a/lib/docs/scrapers/astro.rb
+++ b/lib/docs/scrapers/astro.rb
@@ -16,9 +16,9 @@ module Docs
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'