From 852bf22a0e56ed4c3117ded2679b4ac13c352220 Mon Sep 17 00:00:00 2001 From: Christoph Haas Date: Sun, 7 Feb 2021 16:53:41 +0100 Subject: [PATCH] Ignoring automatically creating documentation --- .gitignore | 4 + doc/DebImporter/Release.html | 1043 ++++++++++++++++++++ doc/DebImporter/Version.html | 703 +++++++++++++ doc/Users/MySessionsController.html | 232 +++++ doc/Users/OmniauthCallbacksController.html | 546 ++++++++++ doc/css/common.css | 1 + doc/css/full_list.css | 58 ++ doc/css/style.css | 496 ++++++++++ 8 files changed, 3083 insertions(+) create mode 100644 doc/DebImporter/Release.html create mode 100644 doc/DebImporter/Version.html create mode 100644 doc/Users/MySessionsController.html create mode 100644 doc/Users/OmniauthCallbacksController.html create mode 100644 doc/css/common.css create mode 100644 doc/css/full_list.css create mode 100644 doc/css/style.css diff --git a/.gitignore b/.gitignore index fa17ad8..6f4bbec 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,7 @@ /.vscode *.sql +# Automatically generated yardoc +doc/*.html +.yardoc/ +doc/js/*.js diff --git a/doc/DebImporter/Release.html b/doc/DebImporter/Release.html new file mode 100644 index 0000000..905dc9b --- /dev/null +++ b/doc/DebImporter/Release.html @@ -0,0 +1,1043 @@ + + + + + + + Class: DebImporter::Release + + — Documentation by YARD 0.9.25 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: DebImporter::Release + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/deb_importer.rb
+
+ +
+ +

Overview

+
+ +

This module imports information about packages of a Linux distribution that +uses the DEB package format like Debian, Ubuntu or Mint.

+ +

It starts by loading the Release file of a release to get information about +available components and architectures.

+ +

Next it loads the Packages lists (prefers bz2, falls back to .gz or even +the uncompressed version).

+ + +
+
+
+ + +
+ + + +

Instance Attribute Summary collapse

+
    + +
  • + + + #architectures ⇒ Object + + + + + + + + + readonly + + + + + + + + + +
    +

    Returns the value of attribute architectures.

    +
    + +
  • + + +
  • + + + #codename ⇒ Object + + + + + + + + + readonly + + + + + + + + + +
    +

    Returns the value of attribute codename.

    +
    + +
  • + + +
  • + + + #components ⇒ Object + + + + + + + + + readonly + + + + + + + + + +
    +

    Returns the value of attribute components.

    +
    + +
  • + + +
  • + + + #description ⇒ Object + + + + + + + + + readonly + + + + + + + + + +
    +

    Returns the value of attribute description.

    +
    + +
  • + + +
  • + + + #files ⇒ Object + + + + + + + + + readonly + + + + + + + + + +
    +

    Returns the value of attribute files.

    +
    + +
  • + + +
  • + + + #origin ⇒ Object + + + + + + + + + readonly + + + + + + + + + +
    +

    Returns the value of attribute origin.

    +
    + +
  • + + +
  • + + + #version ⇒ Object + + + + + + + + + readonly + + + + + + + + + +
    +

    Returns the value of attribute version.

    +
    + +
  • + + +
+ + + + + +

+ Instance Method Summary + collapse +

+ + + + +
+

Constructor Details

+ +
+

+ + #initialize(dist_url) ⇒ Release + + + + + +

+
+ +

Load and parse a Release file of an APT repository

+ + +
+
+
+ + +
+ + + + +
+
+
+
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+
+
# File 'lib/deb_importer.rb', line 20
+
+def initialize(dist_url)
+  @dist_url = dist_url
+  release_url = dist_url + "/Release"
+  Rails.logger.debug "Loading Release file from #{release_url}"
+  open(release_url) do |release_data|
+    fields = get_fields(release_data)
+    @architectures = fields[:Architectures]
+    @components = fields[:Components]
+    @description = fields[:Description]
+    @codename = fields[:Codename]
+    @origin = fields[:Origin]
+    @version = fields[:Version]
+
+    # TODO: check sizes and checksums
+  end # open
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #architecturesObject (readonly) + + + + + +

+
+ +

Returns the value of attribute architectures.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+17
+18
+19
+
+
# File 'lib/deb_importer.rb', line 17
+
+def architectures
+  @architectures
+end
+
+
+ + + +
+

+ + #codenameObject (readonly) + + + + + +

+
+ +

Returns the value of attribute codename.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+17
+18
+19
+
+
# File 'lib/deb_importer.rb', line 17
+
+def codename
+  @codename
+end
+
+
+ + + +
+

+ + #componentsObject (readonly) + + + + + +

+
+ +

Returns the value of attribute components.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+17
+18
+19
+
+
# File 'lib/deb_importer.rb', line 17
+
+def components
+  @components
+end
+
+
+ + + +
+

+ + #descriptionObject (readonly) + + + + + +

+
+ +

Returns the value of attribute description.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+17
+18
+19
+
+
# File 'lib/deb_importer.rb', line 17
+
+def description
+  @description
+end
+
+
+ + + +
+

+ + #filesObject (readonly) + + + + + +

+
+ +

Returns the value of attribute files.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+17
+18
+19
+
+
# File 'lib/deb_importer.rb', line 17
+
+def files
+  @files
+end
+
+
+ + + +
+

+ + #originObject (readonly) + + + + + +

+
+ +

Returns the value of attribute origin.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+17
+18
+19
+
+
# File 'lib/deb_importer.rb', line 17
+
+def origin
+  @origin
+end
+
+
+ + + +
+

+ + #versionObject (readonly) + + + + + +

+
+ +

Returns the value of attribute version.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+17
+18
+19
+
+
# File 'lib/deb_importer.rb', line 17
+
+def version
+  @version
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #find_and_open_compressed_url(base_url) ⇒ Object + + + + + +

+
+ +

Look for the file or URL in various compressed formats (e.g. bz2, gz) and +fall back to plain text format.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+
+
# File 'lib/deb_importer.rb', line 51
+
+def find_and_open_compressed_url(base_url)
+  Rails.logger.debug "Looking for files at URL #{base_url} with different compressions"
+  for suffix in ['.bz2', '.gz', '']
+    begin
+      begin
+        url = "#{base_url}#{suffix}"
+        Rails.logger.debug "Checking if file at #{url} is available"
+        file = open(url)
+      rescue OpenURI::HTTPError => e
+        Rails.logger.debug "Loading #{url} lead to error #{e}. skipping."
+        next
+      end
+
+      # Decompress file depending on its filename suffix
+      case suffix
+      when '.bz2'
+        file = Bzip2::Reader.new(file)
+      when '.gz'
+        file = Zlib::GzipReader.new(file)
+      end
+      Rails.logger.debug "File containing translations is: #{file}"
+
+      return file
+    rescue Errno::ENOENT
+      Rails.logger.debug "URL #{url} could not be opened. Skipping."
+    end
+  end
+
+  Rails.logger.error "No file found at #{url} and various compression extensions."
+  return nil
+end
+
+
+ +
+

+ + #i18n(component, language) ⇒ Object + + + + + +

+
+ +

Get package information from translation (i18n) files. Returns an +enumerator of packages.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+39
+40
+41
+42
+43
+44
+45
+46
+47
+
+
# File 'lib/deb_importer.rb', line 39
+
+def i18n(component, language)
+  url = "#{@dist_url}/#{component}/i18n/Translation-en"
+  file = find_and_open_compressed_url(url)
+  if file
+    return get_paragraphs(file)
+  else
+    return []
+  end
+end
+
+
+ +
+

+ + #packages(component, architecture) ⇒ Object + + + + + +

+
+ +

Try to load the Packages file for a certain component (e.g. “main”) and +architecture (e.g. “amd64”)

+ + +
+
+
+ + +
+ + + + +
+
+
+
+85
+86
+87
+88
+89
+90
+91
+
+
# File 'lib/deb_importer.rb', line 85
+
+def packages(component, architecture)
+  # create path like "main/binary-amd64/Packages"
+  packages_path = "#{@dist_url}/#{component}/binary-#{architecture}/Packages"
+  Rails.logger.debug "Loading packages from #{packages_path}"
+  file = find_and_open_compressed_url(packages_path)
+  return get_paragraphs(file)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/doc/DebImporter/Version.html b/doc/DebImporter/Version.html new file mode 100644 index 0000000..e22e91b --- /dev/null +++ b/doc/DebImporter/Version.html @@ -0,0 +1,703 @@ + + + + + + + Class: DebImporter::Version + + — Documentation by YARD 0.9.25 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: DebImporter::Version + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
lib/deb_importer.rb
+
+ +
+ +

Overview

+
+ +

def

+ + +
+
+
+ + +
+ + + +

Instance Attribute Summary collapse

+
    + +
  • + + + #epoch ⇒ Object + + + + + + + + + readonly + + + + + + + + + +
    +

    Returns the value of attribute epoch.

    +
    + +
  • + + +
  • + + + #revision ⇒ Object + + + + + + + + + readonly + + + + + + + + + +
    +

    Returns the value of attribute revision.

    +
    + +
  • + + +
  • + + + #upstream ⇒ Object + + + + + + + + + readonly + + + + + + + + + +
    +

    Returns the value of attribute upstream.

    +
    + +
  • + + +
  • + + + #version_string ⇒ Object + + + + + + + + + readonly + + + + + + + + + +
    +

    Returns the value of attribute version_string.

    +
    + +
  • + + +
+ + + + + +

+ Instance Method Summary + collapse +

+ + + + +
+

Constructor Details

+ +
+

+ + #initialize(version_string) ⇒ Version + + + + + +

+
+ +

Returns a new instance of Version.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+
+
# File 'lib/deb_importer.rb', line 155
+
+def initialize(version_string)
+  @version_string = version_string
+  # Split into "[epoch:]upstream[-revision]"
+  # See: https://www.debian.org/doc/debian-policy/ch-controlfields.html#version
+  unless /^((?<epoch>\d+)\:)?(?<upstream>.+?)(\-(?<revision>.+))?$/ =~ version_string
+    raise ArgumentError, "Cannot parse version string: #{version_string}"
+  end
+  @epoch = epoch ? epoch : '0'
+  @upstream = upstream
+  @revision = revision if revision
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #epochObject (readonly) + + + + + +

+
+ +

Returns the value of attribute epoch.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+153
+154
+155
+
+
# File 'lib/deb_importer.rb', line 153
+
+def epoch
+  @epoch
+end
+
+
+ + + +
+

+ + #revisionObject (readonly) + + + + + +

+
+ +

Returns the value of attribute revision.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+153
+154
+155
+
+
# File 'lib/deb_importer.rb', line 153
+
+def revision
+  @revision
+end
+
+
+ + + +
+

+ + #upstreamObject (readonly) + + + + + +

+
+ +

Returns the value of attribute upstream.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+153
+154
+155
+
+
# File 'lib/deb_importer.rb', line 153
+
+def upstream
+  @upstream
+end
+
+
+ + + +
+

+ + #version_stringObject (readonly) + + + + + +

+
+ +

Returns the value of attribute version_string.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+153
+154
+155
+
+
# File 'lib/deb_importer.rb', line 153
+
+def version_string
+  @version_string
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #<(other) ⇒ Object + + + + + +

+ + + + +
+
+
+
+175
+176
+177
+
+
# File 'lib/deb_importer.rb', line 175
+
+def <(other)
+  dpkg_compare_version(@version_string, other, 'lt')
+end
+
+
+ +
+

+ + #>(other) ⇒ Object + + + + + +

+ + + + +
+
+
+
+171
+172
+173
+
+
# File 'lib/deb_importer.rb', line 171
+
+def >(other)
+  dpkg_compare_version(@version_string, other, 'gt')
+end
+
+
+ +
+

+ + #to_sObject + + + + + +

+
+ +

/def

+ + +
+
+
+ + +
+ + + + +
+
+
+
+167
+168
+169
+
+
# File 'lib/deb_importer.rb', line 167
+
+def to_s
+  @version_string
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/doc/Users/MySessionsController.html b/doc/Users/MySessionsController.html new file mode 100644 index 0000000..7e43bd8 --- /dev/null +++ b/doc/Users/MySessionsController.html @@ -0,0 +1,232 @@ + + + + + + + Class: Users::MySessionsController + + — Documentation by YARD 0.9.25 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: Users::MySessionsController + + + +

+
+ +
+
Inherits:
+
+ Devise::SessionsController + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
app/controllers/users/my_sessions_controller.rb
+
+ +
+ + + + + + + + + +

+ Instance Method Summary + collapse +

+ + + + + + + +
+

Instance Method Details

+ + +
+

+ + #after_loginObject + + + + + +

+
+ +

Hook after successful login

+ + +
+
+
+ + +
+ + + + +
+
+
+
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+
+
# File 'app/controllers/users/my_sessions_controller.rb', line 5
+
+def 
+  Log.log "User #{current_user} logged in."
+  old_screenshots = session[:uploaded_screenshots]
+  if old_screenshots.to_a.length > 0
+    old_screenshots.each do |id|
+      next unless id # sometimes we had 'nil' here
+      ss = Screenshot.find(id)
+      ss.user = @user
+      ss.save!
+    end
+    # The message is probably confusing. Just add the screenshots.
+    # flash[:info] = "#{old_screenshots.to_a.length} uploads have been added to your account"
+    Log.log "Anonymously uploaded screenshots #{old_screenshots} added to #{current_user}."
+    session[:uploaded_screenshots] = nil
+  end
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/doc/Users/OmniauthCallbacksController.html b/doc/Users/OmniauthCallbacksController.html new file mode 100644 index 0000000..1af1fe6 --- /dev/null +++ b/doc/Users/OmniauthCallbacksController.html @@ -0,0 +1,546 @@ + + + + + + + Class: Users::OmniauthCallbacksController + + — Documentation by YARD 0.9.25 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: Users::OmniauthCallbacksController + + + +

+
+ +
+
Inherits:
+
+ Devise::OmniauthCallbacksController + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
app/controllers/users/omniauth_callbacks_controller.rb
+
+ +
+ + + + + + + + + +

+ Instance Method Summary + collapse +

+ + + + + + + +
+

Instance Method Details

+ + +
+

+ + #amazonObject + + + + + +

+ + + + +
+
+
+
+18
+19
+20
+
+
# File 'app/controllers/users/omniauth_callbacks_controller.rb', line 18
+
+def amazon
+   'Amazon'
+end
+
+
+ +
+

+ + #failureObject + + + + + +

+ + + + +
+
+
+
+26
+27
+28
+
+
# File 'app/controllers/users/omniauth_callbacks_controller.rb', line 26
+
+def failure
+  redirect_to root_path
+end
+
+
+ +
+

+ + #githubObject + + + + + +

+ + + + +
+
+
+
+22
+23
+24
+
+
# File 'app/controllers/users/omniauth_callbacks_controller.rb', line 22
+
+def github
+   'Github'
+end
+
+
+ +
+

+ + #google_oauth2Object + + + + + +

+ + + + +
+
+
+
+14
+15
+16
+
+
# File 'app/controllers/users/omniauth_callbacks_controller.rb', line 14
+
+def google_oauth2
+   'Google'
+end
+
+
+ +
+

+ + #launchpadObject + + + + + +

+
+ +

Workaround for github.com/plataformatec/devise/issues/2432 +skip_before_filter :verify_authenticity_token

+ + +
+
+
+ + +
+ + + + +
+
+
+
+6
+7
+8
+
+
# File 'app/controllers/users/omniauth_callbacks_controller.rb', line 6
+
+def launchpad
+   'Launchpad'
+end
+
+
+ +
+

+ + #login_via(provider_name) ⇒ Object + + + + + +

+ + + + +
+
+
+
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+
+
# File 'app/controllers/users/omniauth_callbacks_controller.rb', line 30
+
+def (provider_name)
+  # TODO: log
+
+  # You need to implement the method below in your model (e.g. app/models/user.rb)
+  @user = User.from_omniauth(request.env["omniauth.auth"])
+
+  # Has the user uploaded screenshots while not being logged in?
+  # Move the screenshots to the real account and tell the user.
+  if @user.persisted?
+    flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => provider_name
+     @user, :event => :authentication
+  else
+    redirect_to new_user_session_url, alert: @user.errors.full_messages.join("\n")
+  end
+end
+
+
+ +
+

+ + #stackexchangeObject + + + + + +

+ + + + +
+
+
+
+10
+11
+12
+
+
# File 'app/controllers/users/omniauth_callbacks_controller.rb', line 10
+
+def stackexchange
+   'StackExchange'
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/doc/css/common.css b/doc/css/common.css new file mode 100644 index 0000000..cf25c45 --- /dev/null +++ b/doc/css/common.css @@ -0,0 +1 @@ +/* Override this file with custom rules */ \ No newline at end of file diff --git a/doc/css/full_list.css b/doc/css/full_list.css new file mode 100644 index 0000000..fa35982 --- /dev/null +++ b/doc/css/full_list.css @@ -0,0 +1,58 @@ +body { + margin: 0; + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + height: 101%; + overflow-x: hidden; + background: #fafafa; +} + +h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; } +.clear { clear: both; } +.fixed_header { position: fixed; background: #fff; width: 100%; padding-bottom: 10px; margin-top: 0; top: 0; z-index: 9999; height: 70px; } +#search { position: absolute; right: 5px; top: 9px; padding-left: 24px; } +#content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; } +#full_list { padding: 0; list-style: none; margin-left: 0; margin-top: 80px; font-size: 1.1em; } +#full_list ul { padding: 0; } +#full_list li { padding: 0; margin: 0; list-style: none; } +#full_list li .item { padding: 5px 5px 5px 12px; } +#noresults { padding: 7px 12px; background: #fff; } +#content.insearch #noresults { margin-left: 7px; } +li.collapsed ul { display: none; } +li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; } +li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; } +li { color: #888; cursor: pointer; } +li.deprecated { text-decoration: line-through; font-style: italic; } +li.odd { background: #f0f0f0; } +li.even { background: #fafafa; } +.item:hover { background: #ddd; } +li small:before { content: "("; } +li small:after { content: ")"; } +li small.search_info { display: none; } +a, a:visited { text-decoration: none; color: #05a; } +li.clicked > .item { background: #05a; color: #ccc; } +li.clicked > .item a, li.clicked > .item a:visited { color: #eee; } +li.clicked > .item a.toggle { opacity: 0.5; background-position: bottom right; } +li.collapsed.clicked a.toggle { background-position: top right; } +#search input { border: 1px solid #bbb; border-radius: 3px; } +#full_list_nav { margin-left: 10px; font-size: 0.9em; display: block; color: #aaa; } +#full_list_nav a, #nav a:visited { color: #358; } +#full_list_nav a:hover { background: transparent; color: #5af; } +#full_list_nav span:after { content: ' | '; } +#full_list_nav span:last-child:after { content: ''; } + +#content h1 { margin-top: 0; } +li { white-space: nowrap; cursor: normal; } +li small { display: block; font-size: 0.8em; } +li small:before { content: ""; } +li small:after { content: ""; } +li small.search_info { display: none; } +#search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; } +#content.insearch #search { background-position: center right; } +#search input { width: 110px; } + +#full_list.insearch ul { display: block; } +#full_list.insearch .item { display: none; } +#full_list.insearch .found { display: block; padding-left: 11px !important; } +#full_list.insearch li a.toggle { display: none; } +#full_list.insearch li small.search_info { display: block; } diff --git a/doc/css/style.css b/doc/css/style.css new file mode 100644 index 0000000..62f4349 --- /dev/null +++ b/doc/css/style.css @@ -0,0 +1,496 @@ +html { + width: 100%; + height: 100%; +} +body { + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + width: 100%; + margin: 0; + padding: 0; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; +} + +#nav { + position: relative; + width: 100%; + height: 100%; + border: 0; + border-right: 1px dotted #eee; + overflow: auto; +} +.nav_wrap { + margin: 0; + padding: 0; + width: 20%; + height: 100%; + position: relative; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; + flex-shrink: 0; + -webkit-flex-shrink: 0; + -ms-flex: 1 0; +} +#resizer { + position: absolute; + right: -5px; + top: 0; + width: 10px; + height: 100%; + cursor: col-resize; + z-index: 9999; +} +#main { + flex: 5 1; + -webkit-flex: 5 1; + -ms-flex: 5 1; + outline: none; + position: relative; + background: #fff; + padding: 1.2em; + padding-top: 0.2em; +} + +@media (max-width: 920px) { + .nav_wrap { width: 100%; top: 0; right: 0; overflow: visible; position: absolute; } + #resizer { display: none; } + #nav { + z-index: 9999; + background: #fff; + display: none; + position: absolute; + top: 40px; + right: 12px; + width: 500px; + max-width: 80%; + height: 80%; + overflow-y: scroll; + border: 1px solid #999; + border-collapse: collapse; + box-shadow: -7px 5px 25px #aaa; + border-radius: 2px; + } +} + +@media (min-width: 920px) { + body { height: 100%; overflow: hidden; } + #main { height: 100%; overflow: auto; } + #search { display: none; } +} + +#main img { max-width: 100%; } +h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; } +h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; } +h1.title { margin-bottom: 10px; } +h1.alphaindex { margin-top: 0; font-size: 22px; } +h2 { + padding: 0; + padding-bottom: 3px; + border-bottom: 1px #aaa solid; + font-size: 1.4em; + margin: 1.8em 0 0.5em; + position: relative; +} +h2 small { font-weight: normal; font-size: 0.7em; display: inline; position: absolute; right: 0; } +h2 small a { + display: block; + height: 20px; + border: 1px solid #aaa; + border-bottom: 0; + border-top-left-radius: 5px; + background: #f8f8f8; + position: relative; + padding: 2px 7px; +} +.clear { clear: both; } +.inline { display: inline; } +.inline p:first-child { display: inline; } +.docstring, .tags, #filecontents { font-size: 15px; line-height: 1.5145em; } +.docstring p > code, .docstring p > tt, .tags p > code, .tags p > tt { + color: #c7254e; background: #f9f2f4; padding: 2px 4px; font-size: 1em; + border-radius: 4px; +} +.docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; } +.docstring h1 { font-size: 1.2em; } +.docstring h2 { font-size: 1.1em; } +.docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; } +.summary_desc .object_link a, .docstring .object_link a { + font-family: monospace; font-size: 1.05em; + color: #05a; background: #EDF4FA; padding: 2px 4px; font-size: 1em; + border-radius: 4px; +} +.rdoc-term { padding-right: 25px; font-weight: bold; } +.rdoc-list p { margin: 0; padding: 0; margin-bottom: 4px; } +.summary_desc pre.code .object_link a, .docstring pre.code .object_link a { + padding: 0px; background: inherit; color: inherit; border-radius: inherit; +} + +/* style for */ +#filecontents table, .docstring table { border-collapse: collapse; } +#filecontents table th, #filecontents table td, +.docstring table th, .docstring table td { border: 1px solid #ccc; padding: 8px; padding-right: 17px; } +#filecontents table tr:nth-child(odd), +.docstring table tr:nth-child(odd) { background: #eee; } +#filecontents table tr:nth-child(even), +.docstring table tr:nth-child(even) { background: #fff; } +#filecontents table th, .docstring table th { background: #fff; } + +/* style for