Showing the changes to lib/docs (3 of 11 files). Show all
Unified · Split
| @@ -3,14 +3,13 @@ module Docs · 2 unmodified lines | ||
| 3 | 3 | class CleanHtmlFilter < Filter |
| 4 | 4 | def call |
| 5 | 5 | if root_page? |
| 6 | − @doc = at_css('.tabs-content') | |
| 7 | − else | |
| 8 | − @doc = at_css('#content') | |
| 6 | + doc.inner_html = "<h1>Docker Documentation</h1>" | |
| 7 | + return doc | |
| 9 | 8 | end |
| 10 | 9 | |
| 11 | − if not at_css('h1') | |
| 12 | − at_css('h2').name = 'h1' | |
| 13 | − end | |
| 10 | + @doc = at_css('#content') | |
| 11 | + | |
| 12 | + at_css('h2').name = 'h1' unless at_css('h1') | |
| 14 | 13 | |
| 15 | 14 | css('pre').each do |node| |
| 16 | 15 | node.content = node.content |
| @@ -2,20 +2,56 @@ module Docs · 1 unmodified line | ||
| 2 | 2 | class Docker |
| 3 | 3 | class EntriesFilter < Docs::EntriesFilter |
| 4 | 4 | def get_name |
| 5 | − title = at_css('h1').content | |
| 5 | + name = nav_link ? nav_link.content.strip : at_css('#content h1').content.strip | |
| 6 | + name.capitalize! if name == 'exoscale' | |
| 6 | 7 | |
| 7 | − title = title.split(' — ').first | |
| 8 | − title = title.split(' - ').first | |
| 8 | + if name =~ /\A[a-z\-\s]+\z/ | |
| 9 | + name.prepend 'docker ' if subpath =~ /engine\/reference\/commandline\/./ | |
| 10 | + name.prepend 'docker-compose ' if subpath =~ /compose\/reference\/./ | |
| 11 | + name.prepend 'docker-machine ' if subpath =~ /machine\/reference\/./ | |
| 12 | + name.prepend 'swarm ' if subpath =~ /swarm\/reference\/./ && name != 'swarm' | |
| 13 | + else | |
| 14 | + name << " (#{product})" if name !~ /#{product}/i | |
| 15 | + end | |
| 9 | 16 | |
| 10 | − title | |
| 17 | + name | |
| 11 | 18 | end |
| 12 | 19 | |
| 13 | 20 | def get_type |
| 14 | − if slug.count('/') == 1 or slug.count('/') == 2 | |
| 15 | − slug.split('/').first.capitalize | |
| 16 | − else | |
| 17 | − slug.split('/')[0...-1].map(&:capitalize).join('/').gsub(/\-|\_/, ' ') | |
| 21 | + unless nav_link | |
| 22 | + return 'Engine: User guide' if subpath.start_with?('engine/userguide') | |
| 23 | + return 'Engine: Secure' if subpath.start_with?('engine/security') | |
| 24 | + return 'Engine' if subpath == 'engine/' | |
| 25 | + end | |
| 26 | + | |
| 27 | + type = nav_link.ancestors('article').to_a.reverse.to_a[0..1].map do |node| | |
| 28 | + node.at_css('> button').content.strip | |
| 29 | + end.join(': ') | |
| 30 | + | |
| 31 | + type.remove! %r{\ADocker } | |
| 32 | + type.remove! %r{ Engine} | |
| 33 | + type.sub! %r{Command[\-\s]line reference}i, 'CLI' | |
| 34 | + type = 'Engine: Reference' if type == 'Engine: reference' | |
| 35 | + type | |
| 36 | + end | |
| 37 | + | |
| 38 | + def nav_link | |
| 39 | + return @nav_link if defined?(@nav_link) | |
| 40 | + @nav_link = at_css('#multiple .active') | |
| 41 | + | |
| 42 | + unless @nav_link | |
| 43 | + link = at_css('#content li a') | |
| 44 | + return unless link | |
| 45 | + link = at_css("#multiple a[href='#{link['href']}']") | |
| 46 | + return unless link | |
| 47 | + @nav_link = link.ancestors('article').first.at_css('button') | |
| 18 | 48 | end |
| 49 | + | |
| 50 | + @nav_link | |
| 51 | + end | |
| 52 | + | |
| 53 | + def product | |
| 54 | + @product ||= subpath.split('/').first.capitalize | |
| 19 | 55 | end |
| 20 | 56 | end |
| 21 | 57 | end |
| @@ -1,16 +1,14 @@ | ||
| 1 | 1 | module Docs |
| 2 | 2 | class Docker < UrlScraper |
| 3 | − self.name = 'Docker' | |
| 4 | − self.slug = 'docker' | |
| 5 | 3 | self.type = 'docker' |
| 6 | − | |
| 7 | 4 | self.links = { |
| 8 | 5 | home: 'https://docker.com/', |
| 9 | 6 | code: 'https://github.com/docker/docker' |
| 10 | 7 | } |
| 11 | 8 | |
| 12 | − html_filters.push 'docker/clean_html', 'docker/entries' | |
| 9 | + html_filters.push 'docker/entries', 'docker/clean_html' | |
| 13 | 10 | |
| 11 | + options[:container] = '#docs' | |
| 14 | 12 | options[:trailing_slash] = true |
| 15 | 13 | |
| 16 | 14 | options[:only_patterns] = [ |
| @@ -19,14 +17,16 @@ module Docs · 2 unmodified lines | ||
| 19 | 17 | /\Amachine\//, |
| 20 | 18 | /\Aswarm\// |
| 21 | 19 | ] |
| 22 | − | |
| 23 | − options[:skip] = [ | |
| 24 | − "engine/installation/ubuntulinux/" # invalid document | |
| 25 | − ] | |
| 20 | + options[:skip] = %w(swarm/scheduler/) | |
| 21 | + options[:replace_paths] = { | |
| 22 | + 'engine/installation/ubuntulinux/' => 'engine/installation/linux/ubuntulinux/' | |
| 23 | + } | |
| 26 | 24 | |
| 27 | 25 | options[:attribution] = <<-HTML |
| 28 | − © 2016 Docker Inc.<br> | |
| 29 | − Licensed under the Apache 2 License. | |
| 26 | + © 2013–2016 Docker, Inc.<br> | |
| 27 | + Licensed under the Apache License, Version 2.0.<br> | |
| 28 | + Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries.<br> | |
| 29 | + Docker, Inc. and other parties may also have trademark rights in other terms used herein. | |
| 30 | 30 | HTML |
| 31 | 31 | |
| 32 | 32 | version '1.11' do |