diff --git a/lib/docs/filters/sequelize/clean_html.rb b/lib/docs/filters/sequelize/clean_html.rb index 4f452198..a7d9bc05 100644 --- a/lib/docs/filters/sequelize/clean_html.rb +++ b/lib/docs/filters/sequelize/clean_html.rb @@ -2,26 +2,9 @@ module Docs class Sequelize class CleanHtmlFilter < Filter def call - @doc = at_css('.content') + @doc = at_css('article', '.content') - # Clean up the home page - if root_page? || subpath == "index.html" - # Remove logo - css('.manual-user-index > div > div.logo').remove - - # Convert title to proper h1 element - at_css('.manual-user-index > div > div.sequelize').name = 'h1' - - # Remove badges (NPM, Travis, test coverage, etc.) - css('.manual-user-index > p:nth-child(4)').remove - - # Remove image cards pointing to entries of the manual - css('.manual-cards').remove - - # Pull the header out of its container - header = at_css('h1') - header.parent.parent.parent.add_previous_sibling header - else + if at_css('header > h1') # Pull the header out of its container header = at_css('h1') header.parent.add_previous_sibling header @@ -36,18 +19,13 @@ module Docs end # Add syntax highlighting to code blocks - css('pre > code[class^="lang-"]').each do |node| - pre = node.parent - # Convert the existing language definitions to Prism-compatible attributes - pre['data-language'] = 'javascript' if node['class'] == 'lang-js' || node['class'] == 'lang-javascript' - pre['data-language'] = 'json' if node['class'] == 'lang-json' - pre['data-language'] = 'shell' if node['class'] == 'lang-sh' || node['class'] == 'lang-bash' - pre['data-language'] = 'sql' if node['class'] == 'lang-sql' - pre['data-language'] = 'typescript' if node['class'] == 'lang-ts' + css('pre[class^="prism-code language-"]').each do |node| + node['data-language'] = node['class'][/language-(\w+)/, 1] if node['class'] and node['class'][/language-(\w+)/] + node.content = node.css('.token-line').map(&:content).join("\n") end # Return the cleaned-up document - doc + at_css('.markdown') || doc end end end diff --git a/lib/docs/filters/sequelize/entries.rb b/lib/docs/filters/sequelize/entries.rb index 6cf7ed0e..056b593d 100644 --- a/lib/docs/filters/sequelize/entries.rb +++ b/lib/docs/filters/sequelize/entries.rb @@ -8,19 +8,19 @@ module Docs # Assign the pages to main categories def get_type - if path.start_with?('manual/') + if base_url.path.include?('/docs/') 'Manual' - elsif path.include?('lib/data-types') + elsif path.include?('src/data-types') 'datatypes' - elsif path.include?('lib/errors/validation') + elsif path.include?('src/errors/validation') 'errors/validation' - elsif path.include?('lib/errors/database') + elsif path.include?('src/errors/database') 'errors/database' - elsif path.include?('lib/errors/connection') + elsif path.include?('src/errors/connection') 'errors/connection' - elsif path.include?('lib/errors') + elsif path.include?('src/errors') 'errors' - elsif path.include?('lib/associations') + elsif path.include?('src/associations') 'associations' elsif path.include?('master/variable') 'variables' @@ -28,6 +28,11 @@ module Docs 'classes' end end + + def include_default_entry? + at_css('.card > h2:contains("📄️")').nil? + end + end end end diff --git a/lib/docs/scrapers/sequelize.rb b/lib/docs/scrapers/sequelize.rb index aecf54bf..f170abfe 100644 --- a/lib/docs/scrapers/sequelize.rb +++ b/lib/docs/scrapers/sequelize.rb @@ -1,5 +1,7 @@ module Docs class Sequelize < UrlScraper + include MultipleBaseUrls + self.name = 'Sequelize' self.slug = 'sequelize' self.type = 'simple' @@ -20,9 +22,20 @@ module Docs Licensed under the MIT License. HTML + def initial_urls + [ + "https://sequelize.org/docs/v6/", + "https://sequelize.org/api/v6/identifiers.html", + ] + end + version '6' do - self.release = '6.5.0' - self.base_url = "https://sequelize.org/master/" + self.release = '6.23.2' + self.base_url = "https://sequelize.org/docs/v6/" + self.base_urls = [ + "https://sequelize.org/docs/v6/", + "https://sequelize.org/api/v6/", + ] end version '5' do