mirror of https://github.com/freeCodeCamp/devdocs
parent
2eb865442c
commit
d0cf5d745c
@ -0,0 +1,11 @@
|
|||||||
|
._reactivex {
|
||||||
|
@extend %simple;
|
||||||
|
|
||||||
|
img {
|
||||||
|
max-width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,65 @@
|
|||||||
|
module Docs
|
||||||
|
class Reactivex
|
||||||
|
class CleanHtmlFilter < Filter
|
||||||
|
def call
|
||||||
|
# Can't use options[:container] because then the navigation bar wouldn't be scraped
|
||||||
|
@doc = at_css(root_page? ? '.col-md-8' : '.col-sm-8')
|
||||||
|
|
||||||
|
# Remove breadcrumbs
|
||||||
|
css('.breadcrumb').remove
|
||||||
|
|
||||||
|
# Replace interactive demo's with links to them
|
||||||
|
css('rx-marbles').each do |node|
|
||||||
|
node.name = 'a'
|
||||||
|
node.content = 'Open interactive diagram on rxmarbles.com'
|
||||||
|
node['href'] = "https://rxmarbles.com/##{node['key']}"
|
||||||
|
node.remove_attribute('key')
|
||||||
|
end
|
||||||
|
|
||||||
|
# Syntax-highlighted code blocks
|
||||||
|
css('.code').each do |node|
|
||||||
|
language = node['class'].gsub('code', '').strip
|
||||||
|
|
||||||
|
pre = node.at_css('pre')
|
||||||
|
pre['data-language'] = language
|
||||||
|
pre.content = pre.content.strip
|
||||||
|
|
||||||
|
node.replace(pre)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Assume JavaScript syntax for code blocks not surrounded by a div.code
|
||||||
|
css('pre').each do |node|
|
||||||
|
next if node['data-language']
|
||||||
|
|
||||||
|
node.content = node.content.strip
|
||||||
|
node['data-language'] = 'javascript'
|
||||||
|
end
|
||||||
|
|
||||||
|
# Make language specific implementation titles prettier
|
||||||
|
css('.panel-title').each do |node|
|
||||||
|
# Remove the link, keep the text
|
||||||
|
node.content = node.content
|
||||||
|
|
||||||
|
# Transform it into a header for better styling
|
||||||
|
node.name = 'h3'
|
||||||
|
end
|
||||||
|
|
||||||
|
# Remove language specific implementations that are TBD
|
||||||
|
css('span').each do |node|
|
||||||
|
next unless node.content == 'TBD'
|
||||||
|
node.xpath('./ancestor::div[contains(@class, "panel-default")][1]').remove
|
||||||
|
end
|
||||||
|
|
||||||
|
# Remove the : at the end of "Language-Specific Information:"
|
||||||
|
css('h2').each do |node|
|
||||||
|
node.inner_html = node.inner_html.gsub('Information:', 'Information')
|
||||||
|
end
|
||||||
|
|
||||||
|
# Remove attributes to reduce file size
|
||||||
|
css('div').remove_attr('class')
|
||||||
|
|
||||||
|
doc
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,14 @@
|
|||||||
|
module Docs
|
||||||
|
class Reactivex
|
||||||
|
class EntriesFilter < Docs::EntriesFilter
|
||||||
|
def get_name
|
||||||
|
at_css('h1').content
|
||||||
|
end
|
||||||
|
|
||||||
|
def get_type
|
||||||
|
links = css('.breadcrumb > li:nth-child(2) > a')
|
||||||
|
links.size > 0 ? links.first.content : 'Manual'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,23 @@
|
|||||||
|
module Docs
|
||||||
|
class Reactivex < UrlScraper
|
||||||
|
self.type = 'reactivex'
|
||||||
|
self.name = 'ReactiveX'
|
||||||
|
self.base_url = 'http://reactivex.io/'
|
||||||
|
self.root_path = 'intro.html'
|
||||||
|
self.links = {
|
||||||
|
home: 'http://reactivex.io/'
|
||||||
|
}
|
||||||
|
|
||||||
|
html_filters.push 'reactivex/entries', 'reactivex/clean_html'
|
||||||
|
|
||||||
|
options[:download_images] = false
|
||||||
|
|
||||||
|
options[:only_patterns] = [/documentation\//]
|
||||||
|
options[:skip_patterns] = [/ko\//]
|
||||||
|
|
||||||
|
options[:attribution] = <<-HTML
|
||||||
|
© ReactiveX contributors<br>
|
||||||
|
Licensed under the Apache License 2.0.
|
||||||
|
HTML
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1 @@
|
|||||||
|
https://github.com/ReactiveX/reactivex.github.io/blob/develop/assets/Rx_Icon.png
|
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 5.0 KiB |
Loading…
Reference in new issue