diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index 985155ae..5bdcf63b 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -701,6 +701,11 @@ credits = [ '2010-2018 Christian Johansen', 'BSD', 'https://raw.githubusercontent.com/sinonjs/sinon/master/LICENSE' + ], [ + 'Sequelize', + '2014—present Sequelize contributors', + 'MIT', + 'https://raw.githubusercontent.com/sequelize/sequelize/master/LICENSE' ], [ 'Socket.io', '2014-2015 Automattic', diff --git a/lib/docs/filters/sequelize/clean_html.rb b/lib/docs/filters/sequelize/clean_html.rb new file mode 100644 index 00000000..ee9246ab --- /dev/null +++ b/lib/docs/filters/sequelize/clean_html.rb @@ -0,0 +1,33 @@ +module Docs + class Sequelize + class CleanHtmlFilter < Filter + def call + # Clean up the home page + if root_page? + # 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 + 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' + end + + # Return the cleaned-up document + doc + end + end + end +end diff --git a/lib/docs/filters/sequelize/entries.rb b/lib/docs/filters/sequelize/entries.rb new file mode 100644 index 00000000..a3866386 --- /dev/null +++ b/lib/docs/filters/sequelize/entries.rb @@ -0,0 +1,26 @@ +module Docs + class Sequelize + class EntriesFilter < Docs::EntriesFilter + # Use the main title as the page name + def get_name + at_css('h1').text + end + + # Assign the pages to main categories + def get_type + if path.start_with?('manual/') + type = 'Manual' + elsif path.start_with?('file/lib/') + type = 'Source files' + else + # API Reference pages. The `path` for most of these starts with 'class/lib/', + # but there's also 'variable/index' (pseudo-classes), and 'identifiers' (the main index) + # so we use an unqualified `else` as a catch-all. + type = 'Reference' + end + + type + end + end + end +end diff --git a/lib/docs/scrapers/sequelize.rb b/lib/docs/scrapers/sequelize.rb new file mode 100644 index 00000000..e5bc4e80 --- /dev/null +++ b/lib/docs/scrapers/sequelize.rb @@ -0,0 +1,30 @@ +module Docs + class Sequelize < UrlScraper + self.name = 'Sequelize' + self.slug = 'sequelize' + self.type = 'simple' + self.release = '5.19.6' + self.base_url = 'https://sequelize.org/master/' + self.links = { + home: 'https://sequelize.org/', + code: 'https://github.com/sequelize/sequelize/' + } + + # List of content filters (to be applied sequentially) + html_filters.push 'sequelize/entries', 'sequelize/clean_html' + + # Wrapper element that holds the main content + options[:container] = '.content' + + # License information that appears appears at the bottom of the entry page + options[:attribution] = <<-HTML + Copyright © 2014–present Sequelize contributors
+ Licensed under the MIT License. + HTML + + # Method to fetch the most recent version of the project + def get_latest_version(opts) + get_npm_version('sequelize', opts) + end + end +end diff --git a/public/icons/docs/sequelize/16.png b/public/icons/docs/sequelize/16.png new file mode 100644 index 00000000..c80f6561 Binary files /dev/null and b/public/icons/docs/sequelize/16.png differ diff --git a/public/icons/docs/sequelize/16@2x.png b/public/icons/docs/sequelize/16@2x.png new file mode 100644 index 00000000..78cb63a6 Binary files /dev/null and b/public/icons/docs/sequelize/16@2x.png differ diff --git a/public/icons/docs/sequelize/SOURCE b/public/icons/docs/sequelize/SOURCE new file mode 100644 index 00000000..03a2f866 --- /dev/null +++ b/public/icons/docs/sequelize/SOURCE @@ -0,0 +1 @@ +https://github.com/sequelize/sequelize/blob/master/docs/images/logo.png