From b98ab152c8defa1bfd4b4ee3ef2afed31e459d8e Mon Sep 17 00:00:00 2001 From: Nicolas Ettlin Date: Mon, 1 Oct 2018 18:34:36 +0200 Subject: [PATCH] Add Composer --- .../templates/pages/about_tmpl.coffee | 5 +++ assets/stylesheets/pages/_simple.scss | 1 + lib/docs/filters/composer/clean_html.rb | 25 +++++++++++ lib/docs/filters/composer/entries.rb | 39 ++++++++++++++++++ lib/docs/scrapers/composer.rb | 27 ++++++++++++ public/icons/docs/composer/16.png | Bin 0 -> 1464 bytes public/icons/docs/composer/16@2x.png | Bin 0 -> 3607 bytes public/icons/docs/composer/SOURCE | 1 + 8 files changed, 98 insertions(+) create mode 100644 lib/docs/filters/composer/clean_html.rb create mode 100644 lib/docs/filters/composer/entries.rb create mode 100644 lib/docs/scrapers/composer.rb create mode 100644 public/icons/docs/composer/16.png create mode 100644 public/icons/docs/composer/16@2x.png create mode 100644 public/icons/docs/composer/SOURCE diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index 26ca8e7e..7e5f7505 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -190,6 +190,11 @@ credits = [ '2009-2018 Jeremy Ashkenas', 'MIT', 'https://raw.githubusercontent.com/jashkenas/coffeescript/master/LICENSE' + ], [ + 'Composer', + '2012-2018 Nils Adermann, Jordi Boggiano', + 'MIT', + 'https://github.com/composer/composer/blob/master/LICENSE' ], [ 'Cordova', '2012-2017 The Apache Software Foundation', diff --git a/assets/stylesheets/pages/_simple.scss b/assets/stylesheets/pages/_simple.scss index fe36579d..8293bed0 100644 --- a/assets/stylesheets/pages/_simple.scss +++ b/assets/stylesheets/pages/_simple.scss @@ -21,6 +21,7 @@ ._bower, ._chai, ._codeceptjs, +._composer, ._docker, ._electron, ._fish, diff --git a/lib/docs/filters/composer/clean_html.rb b/lib/docs/filters/composer/clean_html.rb new file mode 100644 index 00000000..b4abce49 --- /dev/null +++ b/lib/docs/filters/composer/clean_html.rb @@ -0,0 +1,25 @@ +module Docs + class Composer + class CleanHtmlFilter < Filter + def call + # Remove unneeded elements + css('#searchbar, .toc, .fork-and-edit, .anchor').remove + + # Code blocks + css('pre').each do |node| + code = node.at_css('code[class]') + + unless code.nil? + node['data-language'] = 'javascript' if code['class'].include?('javascript') + node['data-language'] = 'php' if code['class'].include?('php') + end + + node.content = node.content.strip + node.remove_attribute('class') + end + + doc + end + end + end +end diff --git a/lib/docs/filters/composer/entries.rb b/lib/docs/filters/composer/entries.rb new file mode 100644 index 00000000..7547dd38 --- /dev/null +++ b/lib/docs/filters/composer/entries.rb @@ -0,0 +1,39 @@ +module Docs + class Composer + class EntriesFilter < Docs::EntriesFilter + def get_name + title = at_css('h1').content + + title = "#{Integer(subpath[1]) + 1}. #{title}" if type == 'Book' + + title + end + + def get_type + return 'Articles' if subpath.start_with?('articles/') + + 'Book' + end + + def additional_entries + entries = [] + + if subpath == '04-schema.md' # JSON Schema + css('h3').each do |node| + name = node.content.strip + name.remove!(' (root-only)') + entries << [name, node['id'], 'JSON Schema'] + end + end + + if subpath == '06-config.md' # Composer config + css('h2').each do |node| + entries << [node.content.strip, node['id'], 'Configuration Options'] + end + end + + entries + end + end + end +end diff --git a/lib/docs/scrapers/composer.rb b/lib/docs/scrapers/composer.rb new file mode 100644 index 00000000..e62aab43 --- /dev/null +++ b/lib/docs/scrapers/composer.rb @@ -0,0 +1,27 @@ +module Docs + class Composer < UrlScraper + self.name = 'Composer' + self.type = 'composer' + + self.links = { + home: 'https://getcomposer.org', + code: 'https://github.com/composer/composer' + } + + html_filters.push 'composer/clean_html', 'composer/entries' + + self.release = '1.7.2' + self.base_url = 'https://getcomposer.org/doc/' + + options[:container] = '#main' + + options[:skip_patterns] = [ + /^faqs/ + ] + + options[:attribution] = <<-HTML + © Nils Adermann, Jordi Boggiano
+ Licensed under the MIT License. + HTML + end +end diff --git a/public/icons/docs/composer/16.png b/public/icons/docs/composer/16.png new file mode 100644 index 0000000000000000000000000000000000000000..bfbdb4d9185dd22aeda1e5b70846b203b1b40cf8 GIT binary patch literal 1464 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 literal 0 HcmV?d00001 diff --git a/public/icons/docs/composer/SOURCE b/public/icons/docs/composer/SOURCE new file mode 100644 index 00000000..ea9acaa7 --- /dev/null +++ b/public/icons/docs/composer/SOURCE @@ -0,0 +1 @@ +https://github.com/composer/getcomposer.org/blob/master/web/img/logo-composer-transparent.png