mirror of
https://github.com/freeCodeCamp/devdocs
synced 2024-11-16 19:48:10 +01:00
Add ReactiveX documentation
This commit is contained in:
parent
2eb865442c
commit
d0cf5d745c
9 changed files with 120 additions and 0 deletions
|
@ -595,6 +595,11 @@ credits = [
|
|||
'2013-present Facebook Inc.',
|
||||
'MIT',
|
||||
'https://raw.githubusercontent.com/facebook/react/master/LICENSE'
|
||||
], [
|
||||
'ReactiveX',
|
||||
'ReactiveX contributors',
|
||||
'Apache',
|
||||
'https://raw.githubusercontent.com/ReactiveX/reactivex.github.io/develop/LICENSE'
|
||||
], [
|
||||
'Redis',
|
||||
'2009-2018 Salvatore Sanfilippo',
|
||||
|
|
|
@ -89,6 +89,7 @@
|
|||
'pages/ramda',
|
||||
'pages/rdoc',
|
||||
'pages/react_native',
|
||||
'pages/reactivex',
|
||||
'pages/redis',
|
||||
'pages/rethinkdb',
|
||||
'pages/rfc',
|
||||
|
|
11
assets/stylesheets/pages/_reactivex.scss
Normal file
11
assets/stylesheets/pages/_reactivex.scss
Normal file
|
@ -0,0 +1,11 @@
|
|||
._reactivex {
|
||||
@extend %simple;
|
||||
|
||||
img {
|
||||
max-width: 50%;
|
||||
}
|
||||
|
||||
figure {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
65
lib/docs/filters/reactivex/clean_html.rb
Normal file
65
lib/docs/filters/reactivex/clean_html.rb
Normal file
|
@ -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
|
14
lib/docs/filters/reactivex/entries.rb
Normal file
14
lib/docs/filters/reactivex/entries.rb
Normal file
|
@ -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
|
23
lib/docs/scrapers/reactivex.rb
Normal file
23
lib/docs/scrapers/reactivex.rb
Normal file
|
@ -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
|
1
public/icons/docs/reactivex/SOURCE
Normal file
1
public/icons/docs/reactivex/SOURCE
Normal file
|
@ -0,0 +1 @@
|
|||
https://github.com/ReactiveX/reactivex.github.io/blob/develop/assets/Rx_Icon.png
|
BIN
public/icons/docs/reactivex/logo.png
Normal file
BIN
public/icons/docs/reactivex/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
BIN
public/icons/docs/reactivex/logo@2x.png
Normal file
BIN
public/icons/docs/reactivex/logo@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5 KiB |
Loading…
Reference in a new issue