From bc8d9432c371a6483adaec7deccb3d8cefdc2374 Mon Sep 17 00:00:00 2001 From: antlord Date: Sun, 6 Aug 2017 03:36:26 +0800 Subject: [PATCH] D documentation was added. --- assets/stylesheets/application-dark.css.scss | 1 + assets/stylesheets/application.css.scss | 1 + assets/stylesheets/pages/_d.scss | 44 +++++++++++++++++++ lib/docs/filters/d/clean_html.rb | 12 +++++ lib/docs/filters/d/entries.rb | 27 ++++++++++++ lib/docs/scrapers/d.rb | 18 ++++++++ public/icons/docs/d/16.png | Bin 0 -> 784 bytes public/icons/docs/d/16@2x.png | Bin 0 -> 1965 bytes 8 files changed, 103 insertions(+) create mode 100644 assets/stylesheets/pages/_d.scss create mode 100644 lib/docs/filters/d/clean_html.rb create mode 100644 lib/docs/filters/d/entries.rb create mode 100644 lib/docs/scrapers/d.rb create mode 100644 public/icons/docs/d/16.png create mode 100644 public/icons/docs/d/16@2x.png diff --git a/assets/stylesheets/application-dark.css.scss b/assets/stylesheets/application-dark.css.scss index 8e719586..22c9f1f5 100644 --- a/assets/stylesheets/application-dark.css.scss +++ b/assets/stylesheets/application-dark.css.scss @@ -44,6 +44,7 @@ 'pages/coffeescript', 'pages/cordova', 'pages/crystal', + 'pages/d', 'pages/d3', 'pages/dojo', 'pages/drupal', diff --git a/assets/stylesheets/application.css.scss b/assets/stylesheets/application.css.scss index 21ce39a3..ac2502b1 100644 --- a/assets/stylesheets/application.css.scss +++ b/assets/stylesheets/application.css.scss @@ -44,6 +44,7 @@ 'pages/coffeescript', 'pages/cordova', 'pages/crystal', + 'pages/d', 'pages/d3', 'pages/dojo', 'pages/drupal', diff --git a/assets/stylesheets/pages/_d.scss b/assets/stylesheets/pages/_d.scss new file mode 100644 index 00000000..821b5ce3 --- /dev/null +++ b/assets/stylesheets/pages/_d.scss @@ -0,0 +1,44 @@ +._d { + > .description, > .documentation-section { padding-left: 1rem; } + > .description > h2, header > h3, > h2 { @extend %block-heading; } + .description > h1 { font-size: 1rem; } + .method-description > h2, h3, h4, h5, h6 { font-size: 1em; } + + .d_decl { + font-weight: $boldFontWeight; + @extend %block-label, %label-blue; + + + .d_decl { margin-top: -.5em; } + } + + > .meta { + @extend %note, %note-blue; + + > dd { margin: 0; } + > dd + dt { margin-top: .5em; } + } + + a.method-click-advice { + float: right; + font-size: .75rem; + color: $linkColor; + cursor: pointer; + @extend %user-select-none; + + &:hover { text-decoration: underline; } + } + + .method-description { position: relative; } + + .method-source-code { + display: none; + position: absolute; + z-index: 1; + top: 0; + right: 0; + background: rgba($contentBackground, .95); + box-shadow: 0 1em 1em 1em $contentBackground; + + > pre { margin: 0; } + } +} diff --git a/lib/docs/filters/d/clean_html.rb b/lib/docs/filters/d/clean_html.rb new file mode 100644 index 00000000..8beaed51 --- /dev/null +++ b/lib/docs/filters/d/clean_html.rb @@ -0,0 +1,12 @@ +module Docs + class D + class CleanHtmlFilter < Filter + def call + css('.d_decl > div > span.def-anchor').each do |node| + node.parent.parent['id'] = node['id'] + end + doc + end + end + end +end diff --git a/lib/docs/filters/d/entries.rb b/lib/docs/filters/d/entries.rb new file mode 100644 index 00000000..662e5405 --- /dev/null +++ b/lib/docs/filters/d/entries.rb @@ -0,0 +1,27 @@ +module Docs + class D + class EntriesFilter < Docs::EntriesFilter + def get_name + slug.to_s.gsub('_', '.').gsub('/', '.').squish! + end + + def get_type + slug.to_s.sub(/_(.*)/, '') + end + + def additional_entries + names = [] + css('.book > tr > td > a').each do |x| + span_block = x.at_css('span') + if span_block != nil + elem_name = span_block.text + name = "#{get_name}.#{elem_name}" + type = name.sub(/\..*/,'') + names << [name, "#{slug}#{x['href']}", type] + end + end + names + end + end + end +end diff --git a/lib/docs/scrapers/d.rb b/lib/docs/scrapers/d.rb new file mode 100644 index 00000000..34786728 --- /dev/null +++ b/lib/docs/scrapers/d.rb @@ -0,0 +1,18 @@ +module Docs + class D < UrlScraper + self.release = '2.075.1' + self.type = 'd' + self.base_url = 'http://dlang.org/phobos/' + + html_filters.push 'd/entries', 'd/clean_html' + + options[:container] = '#content' + options[:title] = false + options[:root_title] = 'D Language' + options[:skip_patterns] = [/#.*/] + + options[:attribution] = <<-HTML + Copyright © 1999-2017 by the D Language Foundation + HTML + end +end diff --git a/public/icons/docs/d/16.png b/public/icons/docs/d/16.png new file mode 100644 index 0000000000000000000000000000000000000000..548e2658ad969b36c94346b15d77134cd6ca4d54 GIT binary patch literal 784 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 literal 0 HcmV?d00001