Thibaut Courouble преди 7 години
родител
ревизия
e35298c745

BIN
assets/images/docs-2.png


BIN
assets/images/docs-2@2x.png


+ 2 - 2
assets/javascripts/news.json

@@ -1,7 +1,7 @@
 [
   [
-    "2018-08-06",
-    "New documentation: <a href=\"/dart/\">Dart</a>"
+    "2018-08-12",
+    "New documentations: <a href=\"/dart/\">Dart</a> and <a href=\"/qt/\">Qt</a>"
   ], [
     "2018-07-29",
     "New documentations: <a href=\"/bash/\">Bash</a>, <a href=\"/graphite/\">Graphite</a> and <a href=\"/pygame/\">Pygame</a>"

+ 1 - 0
assets/stylesheets/global/_icons.scss

@@ -177,3 +177,4 @@
 ._icon-pygame:before        { background-position: -5rem -3rem; @extend %doc-icon-2; }
 ._icon-bash:before          { background-position: -6rem -3rem; @extend %doc-icon-2; }
 ._icon-dart:before          { background-position: -7rem -3rem; @extend %doc-icon-2; }
+._icon-qt:before            { background-position: -8rem -3rem; @extend %doc-icon-2; }

+ 2 - 56
assets/stylesheets/pages/_qt.scss

@@ -1,63 +1,9 @@
 ._qt {
   @extend %simple;
 
-  h1 {
-    margin-top: 0;
-    @extend %lined-heading;
-  }
-
-  // Home page
-  .landingicons {
-    .icons1of3 {
-      display: flex;
-      flex-wrap: wrap;
-      align-items: center;
-      margin: 1em 0;
-
-      @if $style == 'dark' {
-        &:nth-child(3) img {
-          filter: invert(1) hue-rotate(180deg) brightness(1.5)
-        }
-      }
-    }
-
-    h2 {
-      flex: 1;
-      margin: 0;
-      margin-left: 10px;
-    }
-
-    h2 + p {
-      width: 100%;
-      padding-left: 70px;
-    }
-
-    .centerAlign,
-    .centerAlign img { // Icon
-      width: 60px;
-      height: 60px;
-      margin: 0;
-    }
-  }
-
-  // Syntax highlighting
-  .pre {
-    .operator { @extend .token, .operator; }
-    .number { @extend .token, .number; }
-    .keyword { @extend .token, .keyword; }
-    .type { @extend .token, .function; }
-    .type a { color: inherit; }
-    .pun, .comment { @extend .token, .punctuation; }
-    .kwd, .preprocessor { @extend .token, .keyword; }
-    .str, .string { @extend .token, .string; }
-  }
-
   // Function headers
-  h3.fn code {
-    @extend %label;
+  h3.fn > code {
     float: right;
-    font-size: .8em;
-    padding: 0;
-    margin-right: -.5em;
+    color: $textColorLight;
   }
 }

+ 12 - 2
lib/docs/filters/qt/clean_html.rb

@@ -3,17 +3,27 @@ module Docs
     class CleanHtmlFilter < Filter
       def call
         # Remove unneeded elements
-        css('.copy-notice, .navigationbar, .headerNavi, .footerNavi, .sidebar, .toc, #ec_toggle').remove
+        css('.copy-notice, .navigationbar, .headerNavi, .footerNavi, .sidebar, .toc, #ec_toggle', '.landingicons img', 'br').remove
 
         # QML property/method header
         css('.qmlproto').each do |node|
           id = node.at_css('tr')['id']
           node.inner_html = node.at_css('td').inner_html
           node.name = 'h3'
-          node.add_class '_qml_header'
           node['id'] = id
         end
 
+        css('.main-rounded', '.content', '.line', '.context', '.descr', '.types', '.func', '.table', 'div:not([class])', '.landing', '.col-1', '.heading', '.qmlitem', '.qmldoc', 'div.pre').each do |node|
+          node.before(node.children).remove
+        end
+
+        css('pre').each do |node|
+          node.content = node.content
+          node['data-language'] = 'cpp' if node['class'].include?('cpp')
+          node['data-language'] = 'qml' if node['class'].include?('qml')
+          node.remove_attribute('class')
+        end
+
         doc
       end
     end

+ 26 - 24
lib/docs/filters/qt/entries.rb

@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
 module Docs
   class Qt
     class EntriesFilter < Docs::EntriesFilter
@@ -9,7 +11,7 @@ module Docs
         name.sub! %r{ QML Basic Type$}, ' (QML basic type)'
 
         # Add '(class)' to the class pages where the subtitle name is used (e.g. qset-const-iterator.html)
-        if at_css('h1.title').content.strip.end_with?(' Class') and !name.include?('(class)')
+        if at_css('h1.title').content.strip.end_with?(' Class') && !name.include?('(class)')
           name = "#{name} (class) "
         end
 
@@ -19,34 +21,34 @@ module Docs
       def get_type
         breadcrumb = css('#main_title_bar + ul li')
         category = if breadcrumb.length < 3
-          then 'Qt'
+          then 'Qt'.dup
           else breadcrumb.at(1).content
         end
 
         if category == 'Qt'
-          return 'Qt Platforms' if name.include? ' for ' or name == 'Qt Platform Abstraction'
-          return 'Qt Quick' if name == 'Qt Quick Test' or name == 'Qt Quick Test Reference Documentation'
+          return 'Qt Platforms' if name.include?(' for ') || name == 'Qt Platform Abstraction'
+          return 'Qt Quick' if name == 'Qt Quick Test' || name == 'Qt Quick Test Reference Documentation'
 
-          alwaysInQt = ["Qt Configure Options", "Qt Image Formats"]
+          alwaysInQt = ['Qt Configure Options', 'Qt Image Formats']
           category = name if name.start_with?('Qt ') && !alwaysInQt.include?(name)
         end
 
         qtPlatformsTypes = ['Qt Platform Headers', 'Qt Android Extras', 'Qt Mac Extras', 'Qt Windows Extras', 'Qt X11 Extras']
-        return 'Qt Platforms' if qtPlatformsTypes.include? category
+        return 'Qt Platforms' if qtPlatformsTypes.include?(category)
 
-        category.sub! ' Manual', ''
+        category.remove!(' Manual')
         category
       end
 
       def include_default_entry?
-        name != 'All Classes' and name != 'All QML Types'
+        name != 'All Classes' && name != 'All QML Types'
       end
 
       def additional_entries
         entries = []
         titles = []
 
-        className = at_css('h1.title').content.strip.sub ' Class', ''
+        className = at_css('h1.title').content.strip.remove(' Class')
         displayedClassName = className
         alternativeClassName = at_css('h1.title + .small-subtitle a')
         displayedClassName = alternativeClassName.content if alternativeClassName
@@ -56,7 +58,7 @@ module Docs
           header = node.clone
 
           # Skip typenames
-          next if header.content.strip.start_with? 'typename '
+          next if header.content.strip.start_with?('typename ')
 
           # Remove leading <a name="">
           header.children.css('a[name]').remove
@@ -66,7 +68,7 @@ module Docs
           code.remove if code.name == 'code'
 
           # Remove leading ‘const’
-          header.children.first.remove if header.content.strip.start_with? 'const '
+          header.children.first.remove if header.content.strip.start_with?('const ')
 
           # Remove return type
           returnType = header.children.first
@@ -78,57 +80,57 @@ module Docs
           title[0] = '' if title[0] == '&' || title[0] == '*'
 
           # Ignore operator overloads
-          next if title.start_with? 'operator'
+          next if title.start_with?('operator')
 
           # Remove function parameters
           title.sub! %r{\(.*\)}, '()'
 
           # Remove template generics
-          title.sub! %r{^<.*> }, ''
+          title.remove!(%r{^<.*> })
 
           # Remove ‘const’ at the end
-          title.sub! %r{ const$}, ''
+          title.remove!(%r{ const$})
 
           # Enum/typedef formatting
           title.sub! %r{(enum|typedef) (.*)}, '\2 (\1)'
 
           # Remove property type
-          title = "#{displayedClassName}::#{title}" if title.sub! %r{ : .*$}, ''
+          title = "#{displayedClassName}::#{title}" if title.sub!(%r{ : .*$}, '')
 
           # Replace the class name by the alternative class name if available
-          title.sub! className, displayedClassName if alternativeClassName
+          title = title.sub(className, displayedClassName) if alternativeClassName
 
-          unless titles.include? title # Remove duplicates (function overloading)
+          unless titles.include?(title) # Remove duplicates (function overloading)
             entries << [title, header['id']]
             titles.push title
           end
         end
 
         # QML properties/functions
-        qmlTypeName = at_css('h1.title').content.sub ' QML Type', ''
+        qmlTypeName = at_css('h1.title').content.remove(' QML Type', '')
         css('.qmlproto').each do |node|
           title = node.content.strip
           id = node.at_css('tr')['id']
 
           # Remove options
-          title.sub! %r{^\[.*\] }, ''
+          title.remove!(%r{^\[.*\] })
 
           # Remove function parameters
           title.sub! %r{\(.*\)}, '()'
 
           # Remove property type
-          title.sub! %r{ : .*$}, ''
+          title.remove!(%r{ : .*$})
 
           # Remove return type
-          title.sub! %r{.* }, ''
+          title.remove!(%r{.* })
 
           # Remove return type
-          title.sub! %r{.* }, ''
+          title.remove!(%r{.* })
 
           title = "#{qmlTypeName}.#{title.strip}"
-          unless titles.include? title # Remove duplicates (function overloading)
+          unless titles.include?(title) # Remove duplicates (function overloading)
             entries << [title, id]
-            titles.push title
+            titles.push(title)
           end
         end
 

+ 1 - 1
lib/docs/scrapers/qt.rb

@@ -12,7 +12,7 @@ module Docs
     html_filters.push 'qt/entries', 'qt/clean_html'
 
     options[:container] = '.main'
-
+    options[:max_image_size] = 156_000
     options[:skip_patterns] = [
       # License, copyright attributions
       /3rdparty/,

BIN
public/icons/docs-2.pxm


BIN
public/icons/docs-2@2x.pxm


BIN
public/icons/docs/qt/16.png


BIN
public/icons/docs/qt/16@2x.png