diff --git a/lib/docs/filters/relay/clean_html.rb b/lib/docs/filters/relay/clean_html.rb index a89a9c72..f18d30ba 100644 --- a/lib/docs/filters/relay/clean_html.rb +++ b/lib/docs/filters/relay/clean_html.rb @@ -2,58 +2,42 @@ module Docs class Relay class CleanHtmlFilter < Filter def call - @doc = at_css('.inner-content, article.withtoc') - if root_page? - at_css('h1').content = 'Relay Documentation' - end + if slug == 'index' + css('img').remove - css('.docs-prevnext', '.hash-link', '.edit-page-link', '.edit-github', 'a.hash', '.edit-page-block', 'a.show', 'a.hide', 'hr').remove + css('.projectTitle').each do |node| + node.name = 'h1' + node.content = 'Relay' + end - css('table h1', 'table h2', 'table h3').each do |node| - table = node - table = table.parent until table.name == 'table' - table.replace(node) - end + css('pre').remove - css('a.anchor', 'a.hashref').each do |node| - node.parent['id'] ||= node['name'] || node['id'] end - css('.highlight').each do |node| - node.name = 'pre' - node.css('.gutter').remove - node['data-language'] = node.at_css('[data-lang]').try(:[], 'data-lang') || 'js' - node.content = node.content.strip - end + css('.docLastUpdate').remove - css('table.highlighttable').each do |node| - node.replace(node.at_css('pre.highlight')) - end + css('.docs-prevnext').remove - css('.prism').each do |node| - node.name = 'pre' - node['data-language'] = node['class'][/(?<=language\-)(\w+)/] - node.content = node.content - end + css('.edit-page-link').remove - css('blockquote > p:first-child').each do |node| - node.remove if node.content.strip == 'Note:' + css('h2, h3').each do |node| + node.css('a').remove + node['id'] = node.content.gsub(/\s/, '-').downcase end - css('h3#props', 'h3#methods').each { |node| node.name = 'h2' } - css('h4.propTitle').each { |node| node.name = 'h3' } + css('.onPageNav').remove - css('> div > div', '> div', 'div > span', '.props', '.prop').each do |node| - node.before(node.children).remove - end + css('#docsNav').remove - css('a pre', 'h3 .propType').each do |node| - node.name = 'code' - end + css('.fixedHeaderContainer').remove + + css('footer').remove - css('a[target]').each do |node| - node.remove_attribute('target') + # syntax highlight + css('pre').each do |node| + node['data-language'] = 'javascript' + node.add_class('highlight') end doc diff --git a/lib/docs/filters/relay/entries.rb b/lib/docs/filters/relay/entries.rb index 0c486323..7f7c6859 100644 --- a/lib/docs/filters/relay/entries.rb +++ b/lib/docs/filters/relay/entries.rb @@ -1,43 +1,53 @@ module Docs class Relay class EntriesFilter < Docs::EntriesFilter + def get_name - at_css('h1').children.select(&:text?).map(&:content).join.strip + if slug == 'index' + return 'Relay' + end + + at_css('h1').content end def get_type - link = at_css('.nav-docs-section .active, .toc .active') - section = link.ancestors('.nav-docs-section, section').first - type = section.at_css('h3').content.strip - type + if slug == 'index' + return 'Relay' + end + + at_css('h1').content end def additional_entries entries = [] - css('.inner-content h3 code, .inner-content h4 code').each do |node| - name = node.content - name.remove! %r{[#\(\)]} - name.remove! %r{\w+\:} - name.strip! - id = name.parameterize - node.parent['id'] = id - entries << [name, id, 'Reference'] + if slug == 'index' + return entries end - css('.apiIndex a pre').each do |node| - next unless node.parent['href'].start_with?('#') - id = node.parent['href'].remove('#') - name = node.content.strip - sep = name.start_with?('static') ? '.' : '#' - name.remove! %r{(abstract|static) } - name.sub! %r{\(.*\)}, '()' - name.prepend(self.name + sep) - entries << [name, id] + ## avoid adding non-desired entries removing tags + # remove header which contains a