mirror of https://github.com/freeCodeCamp/devdocs
parent
6ecd9d8cc2
commit
e894a2f3ee
@ -0,0 +1,7 @@
|
|||||||
|
._mariadb {
|
||||||
|
@extend %simple;
|
||||||
|
|
||||||
|
.graybox {
|
||||||
|
@extend %note;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,71 @@
|
|||||||
|
require 'net/http'
|
||||||
|
|
||||||
|
module Docs
|
||||||
|
class Mariadb
|
||||||
|
class CleanHtmlFilter < Filter
|
||||||
|
@@known_urls = Hash.new
|
||||||
|
|
||||||
|
def call
|
||||||
|
# Extract main content
|
||||||
|
@doc = at_css('#content')
|
||||||
|
|
||||||
|
# Remove navigation at the bottom
|
||||||
|
css('.simple_section_nav').remove
|
||||||
|
|
||||||
|
# Remove table of contents
|
||||||
|
css('.table_of_contents').remove
|
||||||
|
|
||||||
|
# Add code highlighting and remove nested tags
|
||||||
|
css('pre').each do |node|
|
||||||
|
node.content = node.content
|
||||||
|
node['data-language'] = 'sql'
|
||||||
|
end
|
||||||
|
|
||||||
|
# Fix links like http://kb-mirror.mariadb.com/kb/en/bitwise-or/ to not redirect to an external page
|
||||||
|
css('a').each do |node|
|
||||||
|
url = node['href']
|
||||||
|
|
||||||
|
if /^http:\/\/kb-mirror\.mariadb\.com\/kb\/en\/[^\/]+\/(#[^\/]+)?$/.match?(url)
|
||||||
|
final_url = get_final_url(url)
|
||||||
|
|
||||||
|
if !final_url.nil? && final_url.start_with?('/kb/en/library/documentation/')
|
||||||
|
node['href'] = "#{'../' * subpath.count('/')}#{final_url[29..-1]}index"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Remove navigation items containing only numbers
|
||||||
|
css('.node_comments').each do |node|
|
||||||
|
if node.content.scan(/\D/).empty?
|
||||||
|
node.remove
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Convert listings (pages like http://kb-mirror.mariadb.com/kb/en/library/documentation/sql-statements-structure/) into tables
|
||||||
|
css('ul.listing').each do |node|
|
||||||
|
rows = []
|
||||||
|
|
||||||
|
node.css('li').each do |li|
|
||||||
|
name = li.at_css('.media-heading').content
|
||||||
|
description = li.at_css('.blurb').content
|
||||||
|
url = li.at_css('a')['href']
|
||||||
|
rows << "<tr><td><a href=\"#{url}\">#{name}</a></td><td>#{description}</td></tr>"
|
||||||
|
end
|
||||||
|
|
||||||
|
table = "<table><thead><tr><th>Title</th><th>Description</th></tr></thead><tbody>#{rows.join('')}</tbody></table>"
|
||||||
|
node.replace(table)
|
||||||
|
end
|
||||||
|
|
||||||
|
doc
|
||||||
|
end
|
||||||
|
|
||||||
|
def get_final_url(url)
|
||||||
|
unless @@known_urls.has_key?(url)
|
||||||
|
@@known_urls[url] = Net::HTTP.get_response(URI(url))['location']
|
||||||
|
end
|
||||||
|
|
||||||
|
@@known_urls[url]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,14 @@
|
|||||||
|
module Docs
|
||||||
|
class Mariadb
|
||||||
|
class EntriesFilter < Docs::EntriesFilter
|
||||||
|
def get_name
|
||||||
|
at_css('.container > h1').content.strip
|
||||||
|
end
|
||||||
|
|
||||||
|
def get_type
|
||||||
|
link = at_css('#breadcrumbs > a:nth-child(6)')
|
||||||
|
link.nil? ? at_css('#breadcrumbs > a:nth-child(5)').content : link.content
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,22 @@
|
|||||||
|
module Docs
|
||||||
|
class Mariadb < UrlScraper
|
||||||
|
self.name = 'MariaDB'
|
||||||
|
self.type = 'mariadb'
|
||||||
|
self.release = '10.3.8'
|
||||||
|
self.base_url = 'http://kb-mirror.mariadb.com/kb/en/library/documentation/'
|
||||||
|
self.links = {
|
||||||
|
home: 'https://mariadb.com/',
|
||||||
|
code: 'https://github.com/MariaDB/server'
|
||||||
|
}
|
||||||
|
|
||||||
|
html_filters.push 'mariadb/entries', 'mariadb/clean_html', 'title'
|
||||||
|
|
||||||
|
options[:download_images] = false
|
||||||
|
options[:root_title] = 'MariaDB'
|
||||||
|
|
||||||
|
options[:attribution] = <<-HTML
|
||||||
|
© 2018 MariaDB<br>
|
||||||
|
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
|
||||||
|
HTML
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in new issue