Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 27 additions & 4 deletions lib/docs/filters/pytorch/entries.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ module Docs
class Pytorch
class EntriesFilter < Docs::EntriesFilter
def get_breadcrumbs
breadcrumbs = schema_breadcrumbs
return breadcrumbs unless breadcrumbs.empty?

breadcrumbs = if at_css('.pytorch-breadcrumbs')
css('.pytorch-breadcrumbs > li').map { |node|
node.content.delete_suffix(' >').strip
Expand All @@ -26,15 +29,19 @@ def get_name
end

def get_type
if at_css('.pytorch-breadcrumbs')
get_breadcrumbs[1]
breadcrumbs = get_breadcrumbs

if schema_breadcrumbs.any?
breadcrumbs.size > 2 ? breadcrumbs[-2] : breadcrumbs[-1]
elsif at_css('.pytorch-breadcrumbs')
breadcrumbs[1]
else
get_breadcrumbs.size > 2 ? get_breadcrumbs[2] : get_breadcrumbs[1]
breadcrumbs.size > 2 ? breadcrumbs[2] : breadcrumbs[1]
end
end

def include_default_entry?
!get_breadcrumbs.nil? && get_breadcrumbs.size >= 2
schema_breadcrumbs.any? || get_breadcrumbs.size >= 2
end

def additional_entries
Expand All @@ -61,6 +68,22 @@ def additional_entries

entries
end

private

def schema_breadcrumbs
@schema_breadcrumbs ||= css(
'[itemtype="https://schema.org/BreadcrumbList"] [itemprop="itemListElement"]'
).filter_map do |node|
name = node.at_css('[itemprop="name"]')
next unless name

text = Nokogiri::HTML.fragment(name['content'] || name.content).text.strip
dangling_text = node.text.strip.delete_suffix('">') if name['content']
text = "#{text} #{dangling_text}" if dangling_text.present?
text
end.reject(&:empty?)
end
end
end
end
22 changes: 21 additions & 1 deletion lib/docs/scrapers/pytorch.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,30 @@ class Pytorch < UrlScraper
options[:max_image_size] = 1_000_000

options[:attribution] = <<-HTML
&copy; 2025, PyTorch Contributors<br>
&copy; 2026, PyTorch Contributors<br>
PyTorch has a BSD-style license, as found in the <a href="https://github.com/pytorch/pytorch/blob/main/LICENSE">LICENSE</a> file.
HTML

version '2.13' do
self.release = '2.13'
self.base_url = "https://docs.pytorch.org/docs/#{release}/"
end

version '2.12' do
self.release = '2.12'
self.base_url = "https://docs.pytorch.org/docs/#{release}/"
end

version '2.11' do
self.release = '2.11'
self.base_url = "https://docs.pytorch.org/docs/#{release}/"
end

version '2.10' do
self.release = '2.10'
self.base_url = "https://docs.pytorch.org/docs/#{release}/"
end

version '2.9' do
self.release = '2.9'
self.base_url = "https://docs.pytorch.org/docs/#{release}/"
Expand Down
Loading