diff --git a/lib/docs/filters/pytorch/clean_html.rb b/lib/docs/filters/pytorch/clean_html.rb index dd19c3e0..465ae3a5 100644 --- a/lib/docs/filters/pytorch/clean_html.rb +++ b/lib/docs/filters/pytorch/clean_html.rb @@ -2,9 +2,18 @@ module Docs class Pytorch class CleanHtmlFilter < Filter def call + breadcrumbs = at_css('.pytorch-breadcrumbs') + type_name = breadcrumbs.css('li')[1].content + @doc = at_css('.pytorch-article') # Show katex-mathml nodes and remove katex-html nodes css('.katex-html').remove + + # pass type_name to following filters as a new node + node = Nokogiri::XML::Node.new 'meta', doc + node.content = type_name + doc.child.before node + doc end end diff --git a/lib/docs/filters/pytorch/entries.rb b/lib/docs/filters/pytorch/entries.rb index f63926b4..ba92e222 100644 --- a/lib/docs/filters/pytorch/entries.rb +++ b/lib/docs/filters/pytorch/entries.rb @@ -2,6 +2,15 @@ module Docs class Pytorch class EntriesFilter < Docs::EntriesFilter def get_name + # retrive the name in breadcrumb from the auxiliary node + name_in_breadcrumb = doc.child.content + doc.child.remove + + # hard-coded name replacements, for better presentation. + name_replacements = { + "Distributed communication package - torch.distributed" => "torch.distributed" + } + # The id of the container `div.section` indicates the page type. # If the id starts with `module-`, then it's an API reference, # otherwise it is a note or design doc. @@ -9,7 +18,9 @@ module Docs if doc.element_children[1]['id']&.starts_with? 'module-' /\Amodule-(.*)/.match(doc.element_children[1]['id'])[1] else - at_css('h1').content + name_in_breadcrumb = name_in_breadcrumb.delete_suffix(' >') + name_in_breadcrumb = name_replacements.fetch(name_in_breadcrumb, name_in_breadcrumb) + name_in_breadcrumb end end @@ -18,9 +29,8 @@ module Docs end def include_default_entry? - # If the page is not an API reference, we only include it in the index when it - # contains additional entries. See the doc for `get_name`. - doc.element_children[1]['id']&.starts_with? 'module-' + # Only include API references, and ignore notes or design docs + !subpath.start_with? 'generated/' and type.start_with? 'torch' end def additional_entries