Unified · Split
Binary file not shown.
Binary file not shown.
| @@ -1,5 +1,8 @@ | ||
| 1 | 1 | [ |
| 2 | 2 | [ |
| 3 | + "2015-07-05", | |
| 4 | + "New documentation: <a href=\"/drupal/\">Drupal</a>" | |
| 5 | + ], [ | |
| 3 | 6 | "2015-05-24", |
| 4 | 7 | "New <a href=\"/rust/\">Rust</a> documentation" |
| 5 | 8 | ], [ |
| @@ -135,6 +135,11 @@ credits = [ · 134 unmodified lines | ||
| 135 | 135 | 'Django Software Foundation and individual contributors', |
| 136 | 136 | 'BSD', |
| 137 | 137 | 'https://raw.githubusercontent.com/django/django/master/LICENSE' |
| 138 | + ], [ | |
| 139 | + 'Drupal', | |
| 140 | + '2001-2015 by the original authors<br>Drupal is a registered trademark of Dries Buytaert.', | |
| 141 | + 'GPLv2', | |
| 142 | + 'https://api.drupal.org/api/drupal/LICENSE.txt' | |
| 138 | 143 | ], [ |
| 139 | 144 | 'Ember.js', |
| 140 | 145 | '2015 Yehuda Katz, Tom Dale and Ember.js contributors', |
| @@ -220,11 +225,6 @@ credits = [ · 79 unmodified lines | ||
| 220 | 225 | '2004 John Gruber', |
| 221 | 226 | 'BSD', |
| 222 | 227 | 'http://daringfireball.net/projects/markdown/license' |
| 223 | − ], [ | |
| 224 | − 'MaxCDN', | |
| 225 | − '2015 MaxCDN', | |
| 226 | − 'MIT', | |
| 227 | − 'https://raw.githubusercontent.com/MaxCDN/api-docs/master/LICENSE' | |
| 228 | 228 | ], [ |
| 229 | 229 | 'Meteor', |
| 230 | 230 | '2011-2015 Meteor Development Group', |
| @@ -0,0 +1,6 @@ | ||
| 1 | +#= require views/pages/base | |
| 2 | + | |
| 3 | +class app.views.DrupalPage extends app.views.BasePage | |
| 4 | + afterRender: -> | |
| 5 | + @highlightCode @findAll('pre.php'), 'php' | |
| 6 | + return | |
| @@ -37,6 +37,7 @@ · 36 unmodified lines | ||
| 37 | 37 | 'pages/clojure', |
| 38 | 38 | 'pages/coffeescript', |
| 39 | 39 | 'pages/d3', |
| 40 | + 'pages/drupal', | |
| 40 | 41 | 'pages/ember', |
| 41 | 42 | 'pages/express', |
| 42 | 43 | 'pages/git', |
| @@ -4,7 +4,7 @@ · 3 unmodified lines | ||
| 4 | 4 | width: 1rem; |
| 5 | 5 | height: 1rem; |
| 6 | 6 | background-image: image-url('icons.png'); |
| 7 | − background-size: 10rem 8rem; | |
| 7 | + background-size: 10rem 9rem; | |
| 8 | 8 | } |
| 9 | 9 | |
| 10 | 10 | @media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { |
| @@ -101,3 +101,4 @@ · 90 unmodified lines | ||
| 101 | 101 | ._icon-meteor:before { background-position: -7rem -7rem; @extend %darkIconFix !optional; } |
| 102 | 102 | ._icon-npm:before { background-position: -8rem -7rem; } |
| 103 | 103 | ._icon-apache_http_server:before { background-position: -9rem -7rem; } |
| 104 | +._icon-drupal:before { background-position: 0 -8rem; } | |
| @@ -1,10 +1,4 @@ | ||
| 1 | 1 | ._drupal { |
| 2 | − h1#page-subtitle { | |
| 3 | − margin-top: 0; | |
| 4 | − @extend %lined-heading; | |
| 5 | − } | |
| 6 | − | |
| 7 | 2 | h3 { @extend %block-heading; } |
| 8 | − | |
| 9 | 3 | .signature { @extend %note, %note-blue; } |
| 10 | −} | |
| 4 | +} | |
| @@ -35,6 +35,11 @@ module Docs · 34 unmodified lines | ||
| 35 | 35 | def normalize_path(path) |
| 36 | 36 | path = path.downcase |
| 37 | 37 | |
| 38 | + if context[:decode_and_clean_paths] | |
| 39 | + path = URI.unescape(path) | |
| 40 | + path.gsub! %r{[!;:]+}, '-' | |
| 41 | + end | |
| 42 | + | |
| 38 | 43 | if path == '.' |
| 39 | 44 | 'index' |
| 40 | 45 | elsif path.end_with? '/' |
| @@ -11,11 +11,23 @@ module Docs · 10 unmodified lines | ||
| 11 | 11 | end |
| 12 | 12 | |
| 13 | 13 | def other |
| 14 | − css('#page-title-tools', '.element-invisible', '.breadcrumb', '#sidebar-first', '#api-alternatives').remove | |
| 15 | − css('#aside', '#api-function-signature tr:not(.active)', '.comments').remove | |
| 14 | + css('.element-invisible', '#sidebar-first', '#api-alternatives', '#aside', '.comments', '.view-filters', | |
| 15 | + '#api-function-signature tr:not(.active)', '.ctools-collapsible-container', 'img[width="13"]').remove | |
| 16 | + | |
| 17 | + at_css('#main').replace(at_css('.content')) | |
| 18 | + at_css('#page-heading').replace(at_css('#page-subtitle')) | |
| 19 | + | |
| 20 | + css('th.views-field > a', '.content').each do |node| | |
| 21 | + node.before(node.children).remove | |
| 22 | + end | |
| 23 | + | |
| 24 | + css('pre').each do |node| | |
| 25 | + node.content = node.content | |
| 26 | + end | |
| 27 | + | |
| 16 | 28 | # Replaces the signature table from api.drupal.org with a simple pre tag |
| 17 | 29 | css('#api-function-signature').each do |table| |
| 18 | − signature = table.css('.signature').first.inner_html | |
| 30 | + signature = table.css('.signature').first.at_css('code').inner_html | |
| 19 | 31 | table.replace '<pre class="signature">' + signature + '</pre>' |
| 20 | 32 | end |
| 21 | 33 | end |
| @@ -1,20 +1,15 @@ | ||
| 1 | 1 | module Docs |
| 2 | 2 | class Drupal |
| 3 | 3 | class EntriesFilter < Docs::EntriesFilter |
| 4 | − | |
| 5 | 4 | def get_name |
| 6 | − name = css('#page-subtitle').first.content | |
| 7 | − name.remove! 'function ' | |
| 5 | + name = at_css('#page-subtitle').content | |
| 6 | + name.remove! %r{(abstract|public|static|protected|final|function|class)\s+} | |
| 8 | 7 | name |
| 9 | 8 | end |
| 10 | 9 | |
| 11 | − def path | |
| 12 | − Drupal::fixUri(result[:path]) | |
| 13 | − end | |
| 14 | − | |
| 15 | 10 | def get_type |
| 16 | − type = css('dl[api-related-topics] dt') | |
| 17 | − type.first ? type.first.content : nil | |
| 11 | + type = css('.breadcrumb > a')[1].content.strip | |
| 12 | + type.split('.').first | |
| 18 | 13 | end |
| 19 | 14 | |
| 20 | 15 | def include_default_entry? |
| @@ -1,38 +1,26 @@ | ||
| 1 | 1 | module Docs |
| 2 | 2 | class Drupal < UrlScraper |
| 3 | − self.name = 'Drupal' | |
| 4 | 3 | self.type = 'drupal' |
| 5 | − self.version = '7.37' | |
| 4 | + self.version = '7.38' | |
| 6 | 5 | self.base_url = 'https://api.drupal.org/api/drupal/' |
| 7 | − self.initial_paths = %w( | |
| 8 | − groups | |
| 9 | − groups?page=1) | |
| 10 | − | |
| 11 | − html_filters.replace 'normalize_paths', 'drupal/normalize_paths' | |
| 12 | − html_filters.replace 'internal_urls', 'drupal/internal_urls' | |
| 6 | + self.initial_paths = %w(groups groups?page=1) | |
| 7 | + self.links = { | |
| 8 | + home: 'https://www.drupal.org/' | |
| 9 | + } | |
| 13 | 10 | |
| 14 | 11 | html_filters.push 'drupal/entries', 'drupal/clean_html', 'title' |
| 15 | 12 | |
| 16 | − options[:container] = '#page' | |
| 13 | + options[:decode_and_clean_paths] = true | |
| 14 | + options[:container] = '#page-inner' | |
| 17 | 15 | options[:title] = false |
| 18 | − options[:root_title] = 'Drupal - Open Source CMS | Drupal.org' | |
| 16 | + options[:root_title] = 'Drupal' | |
| 19 | 17 | |
| 20 | 18 | options[:only_patterns] = [ |
| 19 | + /\/class\/[^\/]+/, | |
| 21 | 20 | /\/group\/[^\/]+/, |
| 22 | 21 | /\/function\/[^\/]+/] |
| 23 | 22 | |
| 24 | − options[:skip_link] = ->(link) { | |
| 25 | − begin | |
| 26 | − return unless q = URL.parse(link['href']).query | |
| 27 | − Hash[URI.decode_www_form(q)].has_key? "order" | |
| 28 | − rescue URI::InvalidURIError | |
| 29 | − false | |
| 30 | − end | |
| 31 | − } | |
| 32 | − | |
| 33 | − options[:skip] = %w( | |
| 34 | − 'modules-system-system.install/group/updates-7.x-extra/7', | |
| 35 | − 'modules-system-system.install/group/updates-6.x-to-7.x/7') | |
| 23 | + options[:skip_link] = ->(link) { link['href'] =~ /[\?&]order/ } | |
| 36 | 24 | |
| 37 | 25 | options[:skip_patterns] = [ |
| 38 | 26 | /\/group\/updates\-7/, |
| @@ -40,26 +28,25 @@ module Docs · 1 unmodified line | ||
| 40 | 28 | /_update_[0-9]{4}/, # Skip update functions |
| 41 | 29 | /\/[4-6](\.[0-9])*$/, # Skip previous versions |
| 42 | 30 | /\/[8-9](\.[0-9])*$/, # Skip future versions |
| 31 | + /\/class\/hierarchy\//, # Skip class hierarchy listings | |
| 43 | 32 | /\/function\/calls\//, # Skip function calls listings |
| 33 | + /\/function\/invokes\//, # Skip function invokations listings | |
| 34 | + /\/function\/overrides\//, # Skip function overrides listings | |
| 35 | + /\/function\/references\//, # Skip function references listings | |
| 44 | 36 | /\/function\/implementations\//, # Skip hook implementation listings |
| 37 | + /\/function\/theme_references\//, # Skip hook references listings | |
| 45 | 38 | /\.test\/function\// # Skip test files |
| 46 | 39 | ] |
| 47 | 40 | |
| 48 | 41 | options[:fix_urls] = ->(url) do |
| 49 | − url.sub! /\/7$/, '' # Remove the version indicator from the current version | |
| 42 | + url.remove! %r{/7$} | |
| 50 | 43 | url |
| 51 | 44 | end |
| 52 | 45 | |
| 53 | 46 | options[:attribution] = <<-HTML |
| 54 | − © 2000–2015 by the individual contributors.<br> | |
| 55 | − Licensed under the Creative Commons License, Attribution-ShareAlike2.0.<br> | |
| 47 | + © 2001–2015 by the original authors<br> | |
| 48 | + Licensed under the GNU General Public License, version 2 and later.<br> | |
| 56 | 49 | Drupal is a registered trademark of Dries Buytaert. |
| 57 | 50 | HTML |
| 58 | − | |
| 59 | − # Method used at several places to fix special characters at urls from api.drupal.org | |
| 60 | − def self.fixUri(path) | |
| 61 | − p = path.gsub /%21|!|%2b|%3b|%3a/i, '-' # !+;: | |
| 62 | − end | |
| 63 | − | |
| 64 | 51 | end |
| 65 | 52 | end |
Binary file not shown.
Binary file not shown.