sdoc-1.1.0/ 0000755 0000041 0000041 00000000000 13641340555 012477 5 ustar www-data www-data sdoc-1.1.0/.travis.yml 0000644 0000041 0000041 00000001070 13641340555 014606 0 ustar www-data www-data language: ruby cache: bundler before_install: - gem update --system - gem install bundler rvm: - 1.9.3 - 2.0.0 - 2.1.0 - 2.2.10 - 2.3.7 - 2.4.4 - 2.5.1 - ruby-head - jruby-head matrix: allow_failures: - env: rdoc=master - rvm: jruby-head include: - { rvm: 2.2.10, env: rdoc=master } - { rvm: 2.3.7, env: rdoc=master } - { rvm: 2.4.4, env: rdoc=master } - { rvm: 2.5.1, env: rdoc=master } - { rvm: ruby-head, env: rdoc=master } - { rvm: jruby-head, env: rdoc=master } notifications: email: - mail@zzak.io sdoc-1.1.0/README.md 0000644 0000041 0000041 00000006370 13641340555 013764 0 ustar www-data www-data # SDoc [](https://travis-ci.org/zzak/sdoc) **Powering http://api.rubyonrails.org/** ### What is sdoc? SDoc is an HTML template built on top of the RDoc documentation generator for Ruby code. Provided are two command-line tools you get when you installing the gem: * `sdoc` - command line tool to run rdoc with `generator=shtml` (searchable HTML) * `sdoc-merge` - command line tool to merge multiple sdoc folders into a single documentation site ### Getting Started ```bash # Install the gem gem install sdoc # Generate documentation for 'projectdir' sdoc projectdir ``` ### sdoc `sdoc` is simply a wrapper for the `rdoc` command line tool. See `sdoc --help` for more details. When using the `sdoc` command, `--fmt` is set to `shtml` by default. The default template (or `-T` option) is set to `shtml`, but you can also use the `direct` template when generating documentation. Example: ```bash sdoc -o doc/rails -T direct rails ``` ### sdoc-merge `sdoc-merge` is useful tool for combining multiple projects documentation into one HTML website. See `sdoc-merge --help` for more details. ``` Usage: sdoc-merge [options] directories -n, --names [NAMES] Names of merged repositories. Comma separated -o, --op [DIRECTORY] Set the output directory -t, --title [TITLE] Set the title of merged file ``` Example: ```bash sdoc-merge --title "Ruby v1.9, Rails v2.3.2.1" --op merged --names "Ruby,Rails" ruby-v1.9 rails-v2.3.2.1 ``` ### Rake Task If you want, you can setup a task in your `Rakefile` for generating your project's documentation via the `rake rdoc` command. ```ruby # Rakefile require 'sdoc' # and use your RDoc task the same way you used it before require 'rdoc/task' # ensure this file is also required in order to use `RDoc::Task` RDoc::Task.new do |rdoc| rdoc.rdoc_dir = 'doc/rdoc' # name of output directory rdoc.options << '--format=sdoc' # explictly set the sdoc generator rdoc.template = 'rails' # template used on api.rubyonrails.org end ``` NOTE: If you don't set `template` the default "sdoc" template is chosen, with a lighter color scheme. Now you can execute this command with `rake rdoc`, to compile the documentation for the current project directory. Alternatively you can pass this command a path to the project you wish to compile: `rake rdoc path/to/project`. ### RDoc As mentioned before, SDoc is built on top of the RDoc project. If you notice any bugs in the output of your documentation, it may be RDoc's fault and should be [reported upstream](https://github.com/ruby/rdoc/issues/new). An example of an SDoc bug would be: * Exception is raised when merging project documentation (ala `sdoc-merge`) * Error or warning in JavaScript or HTML found in your browser * Generation fails with some exception (likely due to incompatibility with RDoc) Please feel free to still report issues here for both projects, especially if you aren't sure. As maintainer of both projects, I'll see if I can identify the root of the cause :bow: :bow: :bow: ### Who? * Vladimir Kolesnikov ([voloko](https://github.com/voloko)) * Nathan Broadbent ([ndbroadbent](https://github.com/ndbroadbent)) * Zachary Scott ([zzak](https://github.com/zzak)) sdoc-1.1.0/sdoc.gemspec 0000644 0000041 0000041 00000001706 13641340555 015000 0 ustar www-data www-data # -*- encoding: utf-8 -*- $:.push File.expand_path("../lib", __FILE__) require 'sdoc/version' Gem::Specification.new do |s| s.name = "sdoc" s.version = SDoc::VERSION s.authors = ["Vladimir Kolesnikov", "Nathan Broadbent", "Jean Mertz", "Zachary Scott"] s.description = %q{rdoc generator html with javascript search index.} s.summary = %q{rdoc html with javascript search index.} s.homepage = %q{https://github.com/zzak/sdoc} s.email = %q{voloko@gmail.com mail@zzak.io} s.license = 'MIT' s.require_path = 'lib' s.required_ruby_version = Gem::Requirement.new('>= 1.9.3') s.required_rubygems_version = Gem::Requirement.new(">= 1.3.6") if s.respond_to? :required_rubygems_version= s.rdoc_options = ["--charset=UTF-8"] s.extra_rdoc_files = ["README.md"] s.add_runtime_dependency("rdoc", ">= 5.0") s.files = `git ls-files`.split("\n") s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } end sdoc-1.1.0/bin/ 0000755 0000041 0000041 00000000000 13641340555 013247 5 ustar www-data www-data sdoc-1.1.0/bin/sdoc 0000755 0000041 0000041 00000001116 13641340555 014124 0 ustar www-data www-data #!/usr/bin/env ruby require 'sdoc' begin ARGV.unshift('--format=sdoc') if ARGV.grep(/\A(-f|--fmt|--format|-r|-R|--ri|--ri-site)\b/).empty? r = RDoc::RDoc.new r.document ARGV rescue SystemExit raise rescue Exception => e if $DEBUG_RDOC then $stderr.puts e.message $stderr.puts "#{e.backtrace.join "\n\t"}" $stderr.puts elsif Interrupt === e then $stderr.puts $stderr.puts 'Interrupted' else $stderr.puts "uh-oh! RDoc had a problem:" $stderr.puts e.message $stderr.puts $stderr.puts "run with --debug for full backtrace" end exit 1 end sdoc-1.1.0/bin/sdoc-merge 0000755 0000041 0000041 00000000755 13641340555 015231 0 ustar www-data www-data #!/usr/bin/env ruby require File.dirname(__FILE__) + '/../lib/sdoc' # add extensions require 'sdoc/merge' begin m = SDoc::Merge.new m.merge(ARGV) rescue SystemExit raise rescue Exception => e if $DEBUG_RDOC then $stderr.puts e.message $stderr.puts "#{e.backtrace.join "\n\t"}" $stderr.puts elsif Interrupt === e then $stderr.puts $stderr.puts 'Interrupted' else $stderr.puts "uh-oh! SDoc merge had a problem:" $stderr.puts e.message end exit 1 end sdoc-1.1.0/spec/ 0000755 0000041 0000041 00000000000 13641340555 013431 5 ustar www-data www-data sdoc-1.1.0/spec/helpers_spec.rb 0000644 0000041 0000041 00000002250 13641340555 016431 0 ustar www-data www-data require "spec_helper" describe SDoc::Helpers do before :each do @helpers = Class.new do include SDoc::Helpers end.new end describe "#strip_tags" do it "should strip out HTML tags from the given string" do strings = [ [ %(Hello world), "Hello world" ], [ %(Streams are great), "Streams are great" ], [ %(zzak/sdoc Standalone), "zzak/sdoc Standalone" ], [ %(
` tags appear in results snippet
0.4.0
=====
[Compare v0.3.20...v0.4.0](https://github.com/voloko/sdoc/compare/v0.3.20...v0.4.0)
No friendly log for this version yet, but PRs are welcome!
sdoc-1.1.0/.gitignore 0000644 0000041 0000041 00000000111 13641340555 014460 0 ustar www-data www-data *.gem
.bundle
pkg
doc
/test.rb
Gemfile.lock
/.rake_tasks~
/*.gem
/rails/
sdoc-1.1.0/LICENSE 0000644 0000041 0000041 00000012046 13641340555 013507 0 ustar www-data www-data Copyright (c) 2014 Vladimir Kolesnikov, and Nathan Broadbent
Copyright (c) 2014-2017 Zachary Scott
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Darkfish RDoc HTML Generator
Copyright (c) 2007, 2008, Michael Granger. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of the author/s, nor the names of the project's
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
RDoc is copyrighted free software.
You can redistribute it and/or modify it under either the terms of the GPL
version 2 (see the file GPL), or the conditions below:
1. You may make and give away verbatim copies of the source form of the
software without restriction, provided that you duplicate all of the
original copyright notices and associated disclaimers.
2. You may modify your copy of the software in any way, provided that
you do at least ONE of the following:
a) place your modifications in the Public Domain or otherwise
make them Freely Available, such as by posting said
modifications to Usenet or an equivalent medium, or by allowing
the author to include your modifications in the software.
b) use the modified software only within your corporation or
organization.
c) give non-standard binaries non-standard names, with
instructions on where to get the original software distribution.
d) make other distribution arrangements with the author.
3. You may distribute the software in object code or binary form,
provided that you do at least ONE of the following:
a) distribute the binaries and library files of the software,
together with instructions (in the manual page or equivalent)
on where to get the original distribution.
b) accompany the distribution with the machine-readable source of
the software.
c) give non-standard binaries non-standard names, with
instructions on where to get the original software distribution.
d) make other distribution arrangements with the author.
4. You may modify and include the part of the software into any other
software (possibly commercial). But some files in the distribution
are not written by the author, so that they are not under these terms.
For the list of those files and their copying conditions, see the
file LEGAL.
5. The scripts and library files supplied as input to or produced as
output from the software do not automatically fall under the
copyright of the software, but belong to whomever generated them,
and may be sold commercially, and may be aggregated with this
software.
6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.
sdoc-1.1.0/Rakefile 0000644 0000041 0000041 00000001071 13641340555 014143 0 ustar www-data www-data require 'bundler'
Bundler::GemHelper.install_tasks
require 'rake/testtask'
Rake::TestTask.new do |t|
t.pattern = "spec/*_spec.rb"
t.libs << "spec"
end
task :default => :test
task :spec => :test
require 'sdoc'
require 'rdoc/task'
rails = File.expand_path "rails"
directory rails do
sh "git clone --depth=1 https://github.com/rails/rails"
end
namespace :test do
task :rails => rails
RDoc::Task.new(:rails) do |rdoc|
rdoc.rdoc_dir = 'doc/rails'
rdoc.generator = 'sdoc'
rdoc.template = 'rails'
rdoc.rdoc_files.include("rails/")
end
end
sdoc-1.1.0/lib/ 0000755 0000041 0000041 00000000000 13641340555 013245 5 ustar www-data www-data sdoc-1.1.0/lib/sdoc/ 0000755 0000041 0000041 00000000000 13641340555 014175 5 ustar www-data www-data sdoc-1.1.0/lib/sdoc/version.rb 0000644 0000041 0000041 00000000044 13641340555 016205 0 ustar www-data www-data module SDoc
VERSION = '1.1.0'
end
sdoc-1.1.0/lib/sdoc/github.rb 0000644 0000041 0000041 00000002676 13641340555 016017 0 ustar www-data www-data module SDoc::GitHub
def github_url(path)
return false unless have_git?
unless @github_url_cache.has_key? path
@github_url_cache[path] = false
file = @store.find_file_named(path)
if file
base_url = repository_url(path)
if base_url
relative_url = path_relative_to_repository(path)
@github_url_cache[path] = "#{base_url}#{last_commit_sha1}#{relative_url}"
end
end
end
@github_url_cache[path]
end
protected
def have_git?
@have_git = system('git --version > /dev/null 2>&1') if @have_git.nil?
@have_git
end
def last_commit_sha1
return @sha1 if defined?(@sha1)
@sha1 = Dir.chdir(base_dir) do
`git rev-parse HEAD`.chomp
end
end
def repository_url(path)
return @repository_url if defined?(@repository_url)
s = Dir.chdir(File.join(base_dir, File.dirname(path))) do
`git config --get remote.origin.url`
end
m = s.match(%r{github.com[/:](.*)\.git$})
@repository_url = m ? "https://github.com/#{m[1]}/blob/" : false
end
def path_relative_to_repository(path)
absolute_path = File.join(base_dir, path)
root = path_to_git_dir(File.dirname(absolute_path))
absolute_path[root.size..absolute_path.size]
end
def path_to_git_dir(path)
while !path.empty? && path != '.'
if (File.exists? File.join(path, '.git'))
return path
end
path = File.dirname(path)
end
''
end
end
sdoc-1.1.0/lib/sdoc/merge.rb 0000644 0000041 0000041 00000013553 13641340555 015630 0 ustar www-data www-data require 'optparse'
require 'pathname'
require 'fileutils'
require 'json'
require 'sdoc/templatable'
class SDoc::Merge
include SDoc::Templatable
FLAG_FILE = "created.rid"
def initialize()
@names = []
@urls = []
@op_dir = 'doc'
@title = ''
@directories = []
end
def merge(options)
parse_options options
@outputdir = Pathname.new( @op_dir )
check_directories
setup_output_dir
setup_names
copy_files
copy_docs if @urls.empty?
merge_search_index
merge_tree
generate_index_file
end
def parse_options(options)
opts = OptionParser.new do |opt|
opt.banner = "Usage: sdoc-merge [options] directories"
opt.on("-n", "--names [NAMES]", "Names of merged repositories. Comma separated") do |v|
@names = v.split(',').map{|name| name.strip }
end
opt.on("-o", "--op [DIRECTORY]", "Set the output directory") do |v|
@op_dir = v
end
opt.on("-t", "--title [TITLE]", "Set the title of merged file") do |v|
@title = v
end
opt.on("-u", "--urls [URLS]", "Paths to merged docs. If you",
"set this files and classes won't be actualy",
"copied to merged build") do |v|
@urls = v.split(' ').map{|name| name.strip }
end
end
opts.parse! options
@template_dir = Pathname.new(RDoc::Options.new.template_dir_for 'merge')
@directories = options.dup
end
def merge_tree
tree = []
@directories.each_with_index do |dir, i|
name = @names[i]
url = @urls.empty? ? name : @urls[i]
filename = File.join dir, RDoc::Generator::SDoc::TREE_FILE
data = open(filename).read.sub(/var tree =\s*/, '')
subtree = JSON.parse(data, :max_nesting => 0)
item = [
name,
url + '/' + extract_index_path(dir),
'',
append_path(subtree, url)
]
tree << item
end
dst = File.join @op_dir, RDoc::Generator::SDoc::TREE_FILE
FileUtils.mkdir_p File.dirname(dst)
File.open(dst, "w", 0644) do |f|
f.write('var tree = '); f.write(tree.to_json(:max_nesting => 0))
end
end
def append_path subtree, path
subtree.map do |item|
item[1] = path + '/' + item[1] unless item[1].empty?
item[3] = append_path item[3], path
item
end
end
def merge_search_index
items = []
@indexes = {}
@directories.each_with_index do |dir, i|
name = @names[i]
url = @urls.empty? ? name : @urls[i]
filename = File.join dir, RDoc::Generator::SDoc::SEARCH_INDEX_FILE
data = open(filename).read.sub(/var search_data =\s*/, '')
subindex = JSON.parse(data, :max_nesting => 0)
@indexes[name] = subindex
searchIndex = subindex["index"]["searchIndex"]
longSearchIndex = subindex["index"]["longSearchIndex"]
subindex["index"]["info"].each_with_index do |info, j|
info[2] = url + '/' + info[2]
info[6] = i
items << {
:info => info,
:searchIndex => searchIndex[j],
:longSearchIndex => name + ' ' + longSearchIndex[j]
}
end
end
items.sort! do |a, b|
# type (class/method/file) or name or doc part or namespace
[a[:info][5], a[:info][0], a[:info][6], a[:info][1]] <=> [b[:info][5], b[:info][0], b[:info][6], b[:info][1]]
end
index = {
:searchIndex => items.map{|item| item[:searchIndex]},
:longSearchIndex => items.map{|item| item[:longSearchIndex]},
:info => items.map{|item| item[:info]}
}
search_data = {
:index => index,
:badges => @names
}
dst = File.join @op_dir, RDoc::Generator::SDoc::SEARCH_INDEX_FILE
FileUtils.mkdir_p File.dirname(dst)
File.open(dst, "w", 0644) do |f|
f.write('var search_data = '); f.write(search_data.to_json(:max_nesting => 0))
end
end
def extract_index_path dir
filename = File.join dir, 'index.html'
content = File.open(filename) { |f| f.read }
match = content.match(/ 0
@directories.each do |dir|
name = File.basename dir
name = File.basename File.dirname(dir) if name == 'doc'
@names << name
end
end
end
def copy_docs
@directories.each_with_index do |dir, i|
name = @names[i]
index_dir = File.dirname(RDoc::Generator::SDoc::TREE_FILE)
FileUtils.mkdir_p(File.join(@op_dir, name))
Dir.new(dir).each do |item|
if File.directory?(File.join(dir, item)) && item != '.' && item != '..' && item != index_dir
FileUtils.cp_r File.join(dir, item), File.join(@op_dir, name, item), :preserve => true
end
end
end
end
def copy_files
dir = @directories.first
Dir.new(dir).each do |item|
if item != '.' && item != '..' && item != RDoc::Generator::SDoc::FILE_DIR && item != RDoc::Generator::SDoc::CLASS_DIR
FileUtils.cp_r File.join(dir, item), @op_dir, :preserve => true
end
end
end
def setup_output_dir
if File.exists? @op_dir
error "#{@op_dir} already exists"
end
FileUtils.mkdir_p @op_dir
end
def check_directories
@directories.each do |dir|
unless File.exists?(File.join(dir, FLAG_FILE)) &&
File.exists?(File.join(dir, RDoc::Generator::SDoc::TREE_FILE)) &&
File.exists?(File.join(dir, RDoc::Generator::SDoc::SEARCH_INDEX_FILE))
error "#{dir} does not seem to be an sdoc directory"
end
end
end
##
# Report an error message and exit
def error(msg)
raise RDoc::Error, msg
end
end
sdoc-1.1.0/lib/sdoc/helpers.rb 0000644 0000041 0000041 00000002224 13641340555 016164 0 ustar www-data www-data module SDoc::Helpers
def each_letter_group(methods, &block)
group = {:name => '', :methods => []}
methods.sort{ |a, b| a.name <=> b.name }.each do |method|
gname = group_name method.name
if gname != group[:name]
yield group unless group[:methods].size == 0
group = {
:name => gname,
:methods => []
}
end
group[:methods].push(method)
end
yield group unless group[:methods].size == 0
end
# Strips out HTML tags from a given string.
#
# Example:
#
# strip_tags("Hello world") => "Hello world"
def strip_tags(text)
text.gsub(%r{?[^>]+?>}, "")
end
# Truncates a given string. It tries to take whole sentences to have
# a meaningful description for SEO tags.
#
# The only available option is +:length+ which defaults to 200.
def truncate(text, options = {})
if text
length = options.fetch(:length, 200)
stop = text.rindex(".", length - 1) || length
"#{text[0, stop]}."
end
end
protected
def group_name name
if match = name.match(/^([a-z])/i)
match[1].upcase
else
'#'
end
end
end
sdoc-1.1.0/lib/sdoc/templatable.rb 0000644 0000041 0000041 00000004102 13641340555 017011 0 ustar www-data www-data require 'erb'
module SDoc::Templatable
### Load and render the erb template in the given +templatefile+ within the
### specified +context+ (a Binding object) and return output
### Both +templatefile+ and +outfile+ should be Pathname-like objects.
def eval_template(templatefile, context)
template_src = templatefile.read
template = ERB.new( template_src, nil, '<>' )
template.filename = templatefile.to_s
begin
template.result( context )
rescue NoMethodError => err
raise RDoc::Error, "Error while evaluating %s: %s (at %p)" % [
templatefile.to_s,
err.message,
eval( "_erbout[-50,50]", context )
], err.backtrace
end
end
### Load and render the erb template with the given +template_name+ within
### current context. Adds all +local_assigns+ to context
def include_template(template_name, local_assigns = {})
source = local_assigns.keys.map { |key| "#{key} = local_assigns[:#{key}];" }.join
templatefile = @template_dir + template_name
eval("#{source};eval_template(templatefile, binding)")
end
### Load and render the erb template in the given +templatefile+ within the
### specified +context+ (a Binding object) and write it out to +outfile+.
### Both +templatefile+ and +outfile+ should be Pathname-like objects.
def render_template( templatefile, context, outfile )
output = eval_template(templatefile, context)
# TODO delete this dirty hack when documentation for example for GeneratorMethods will not be cutted off by
sdoc-1.1.0/lib/rdoc/generator/template/sdoc/resources/ 0000755 0000041 0000041 00000000000 13641340555 022737 5 ustar www-data www-data sdoc-1.1.0/lib/rdoc/generator/template/sdoc/resources/i/ 0000755 0000041 0000041 00000000000 13641340555 023167 5 ustar www-data www-data sdoc-1.1.0/lib/rdoc/generator/template/sdoc/resources/i/results_bg.png 0000644 0000041 0000041 00000001270 13641340555 026046 0 ustar www-data www-data PNG
IHDR d 9 sBIT|d pHYs
B4 tEXtSoftware Adobe Fireworks CS3F tEXtCreation Time 3/12/092aH IDATxA
0CKh=3 @A : t 0 ` @A : t 0 ` @A : t 0 ` @A : t 0 ` @A : t 0 ` @A : t 0 ` `Uu IENDB` sdoc-1.1.0/lib/rdoc/generator/template/sdoc/resources/i/tree_bg.png 0000644 0000041 0000041 00000000317 13641340555 025305 0 ustar www-data www-data PNG
IHDR . sBIT|d pHYs tEXtSoftware Adobe Fireworks CS3F tEXtCreation Time 3/14/09Y> (IDAT(c4.0*81;G #\Hv X
Oά IENDB` sdoc-1.1.0/lib/rdoc/generator/template/sdoc/resources/i/arrows.png 0000644 0000041 0000041 00000000735 13641340555 025217 0 ustar www-data www-data PNG
IHDR [ sBIT|d pHYs
B4 tEXtSoftware Adobe Fireworks CS3F tEXtCreation Time 3/14/09Y> 6IDAT8q0EzR @: f;n͐
N t`*lي/_͗$2,W$kw_DNR-3I {%
BMtNqfZ='x6'isu\3cah1S-nPBQim{B&9K/2w?ӆ5먪-(~ZY@uUUwnϲph#S-r@|`._J{n!w.sfј_9pC/ֱ$MrOK0e$ IENDB` sdoc-1.1.0/lib/rdoc/generator/template/sdoc/resources/css/ 0000755 0000041 0000041 00000000000 13641340555 023527 5 ustar www-data www-data sdoc-1.1.0/lib/rdoc/generator/template/sdoc/resources/css/github.css 0000644 0000041 0000041 00000002766 13641340555 025536 0 ustar www-data www-data /*
github.com style (c) Vasily Polovnyov
")}if(/MSIE [678]/.test(navigator.userAgent)&&t.tagName=="CODE"&&t.parentNode.tagName=="PRE"){var q=t.parentNode;var v=document.createElement("div");v.innerHTML="
";t=v.firstChild.firstChild;v.firstChild.cN=q.cN;q.parentNode.replaceChild(v.firstChild,q)}else{t.innerHTML=w.value}t.className=s;t.dataset={};t.dataset.result={language:w.language,kw:w.keyword_count,re:w.r};if(x&&x.language){t.dataset.second_best={language:x.language,kw:x.keyword_count,re:x.r}}}function j(){if(j.called){return}j.called=true;e();var q=document.getElementsByTagName("pre");for(var o=0;o"+w.value+"
")}if(/MSIE [678]/.test(navigator.userAgent)&&t.tagName=="CODE"&&t.parentNode.tagName=="PRE"){var q=t.parentNode;var v=document.createElement("div");v.innerHTML="
";t=v.firstChild.firstChild;v.firstChild.cN=q.cN;q.parentNode.replaceChild(v.firstChild,q)}else{t.innerHTML=w.value}t.className=s;t.dataset={};t.dataset.result={language:w.language,kw:w.keyword_count,re:w.r};if(x&&x.language){t.dataset.second_best={language:x.language,kw:x.keyword_count,re:x.r}}}function j(){if(j.called){return}j.called=true;e();var q=document.getElementsByTagName("pre");for(var o=0;o"+w.value+"