mirror of https://github.com/freeCodeCamp/devdocs
parent
0bc34ed011
commit
28b4149c6b
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 121 KiB |
@ -0,0 +1,62 @@
|
|||||||
|
._bsv3 {
|
||||||
|
@extend %simple;
|
||||||
|
|
||||||
|
h4 > code, h5 > code { @extend %label; }
|
||||||
|
|
||||||
|
h2 > small {
|
||||||
|
color: $textColorLight;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bs-callout { @extend %note; }
|
||||||
|
.bs-callout-info { @extend %note-blue; }
|
||||||
|
.bs-callout-danger { @extend %note-red; }
|
||||||
|
.bs-callout > h4, .bs-callout > h5 { margin-top: .25rem; }
|
||||||
|
|
||||||
|
.text-danger { @extend %label, %label-red; }
|
||||||
|
|
||||||
|
.bs-example {
|
||||||
|
padding: .375rem .625rem;
|
||||||
|
line-height: 1.5;
|
||||||
|
@extend %heading-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.bs-example {
|
||||||
|
border-bottom-left-radius: 0;
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
|
||||||
|
+ pre {
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
border-top: 0;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
a.thumbnail {
|
||||||
|
display: block;
|
||||||
|
padding: .25em;
|
||||||
|
@extend %box;
|
||||||
|
|
||||||
|
&:after { content: none; }
|
||||||
|
+ h4 { margin: .75em 0 .5em; }
|
||||||
|
> img { display: block; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.col { margin-bottom: 1.5em; }
|
||||||
|
|
||||||
|
@media (min-width: 800px) {
|
||||||
|
.row {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col {
|
||||||
|
flex: 0 1 auto;
|
||||||
|
padding: 0 1em;
|
||||||
|
width: 33.33%;
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,64 @@
|
|||||||
|
module Docs
|
||||||
|
class Bootstrap
|
||||||
|
class CleanHtmlV3Filter < Filter
|
||||||
|
def call
|
||||||
|
at_css('div[role=main]').child.before(at_css('#content .container').inner_html)
|
||||||
|
@doc = at_css('div[role=main]')
|
||||||
|
|
||||||
|
css('h1, h2, h3, h4, h5').each do |node|
|
||||||
|
node.name = node.name.sub(/\d/) { |i| i.to_i + 1 }
|
||||||
|
end
|
||||||
|
at_css('h2').name = 'h1'
|
||||||
|
|
||||||
|
css('hr', '.zero-clipboard', '.modal', '.panel-group').remove
|
||||||
|
|
||||||
|
css('.bs-docs-section', '.table-responsive').each do |node|
|
||||||
|
node.before(node.children).remove
|
||||||
|
end
|
||||||
|
|
||||||
|
css('> .show-grid', '.bs-example', '.bs-glyphicons', '.responsive-utilities-test').each do |node|
|
||||||
|
if node.previous_element['class'].try(:include?, 'bs-example')
|
||||||
|
node.remove
|
||||||
|
else
|
||||||
|
node.content = ''
|
||||||
|
node.name = 'p'
|
||||||
|
node['class'] = 'bs-example'
|
||||||
|
node.remove_attribute('data-example-id')
|
||||||
|
prev = node.previous_element
|
||||||
|
prev = prev.previous_element until prev['id']
|
||||||
|
node.inner_html = %(<a href="#{current_url}/##{prev['id']}">Open example on getbootstrap.com</a>)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
css('.bs-example + figure').each do |node|
|
||||||
|
node.previous_element.name = 'div'
|
||||||
|
end
|
||||||
|
|
||||||
|
css('div[class*="col-"]').each do |node|
|
||||||
|
node['class'] = 'col'
|
||||||
|
end
|
||||||
|
|
||||||
|
css('.__cf_email__').each do |node|
|
||||||
|
node.replace(decode_cloudflare_email(node['data-cfemail']))
|
||||||
|
end
|
||||||
|
|
||||||
|
css('figure.highlight').each do |node|
|
||||||
|
code = node.at_css('code')
|
||||||
|
node['data-language'] = code['data-lang']
|
||||||
|
node.content = code.content
|
||||||
|
node.name = 'pre'
|
||||||
|
end
|
||||||
|
|
||||||
|
css('table, tr, td, th, pre').each do |node|
|
||||||
|
node.remove_attribute('class')
|
||||||
|
end
|
||||||
|
|
||||||
|
css('thead td:empty').each do |node|
|
||||||
|
node.name = 'th'
|
||||||
|
end
|
||||||
|
|
||||||
|
doc
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,65 @@
|
|||||||
|
module Docs
|
||||||
|
class Bootstrap
|
||||||
|
class EntriesV3Filter < Docs::EntriesFilter
|
||||||
|
def get_name
|
||||||
|
at_css('h1').content
|
||||||
|
end
|
||||||
|
|
||||||
|
def get_type
|
||||||
|
name
|
||||||
|
end
|
||||||
|
|
||||||
|
def additional_entries
|
||||||
|
return [] if root_page?
|
||||||
|
entries = []
|
||||||
|
|
||||||
|
css('.bs-docs-sidenav > li').each do |node|
|
||||||
|
link = node.at_css('a')
|
||||||
|
name = link.content
|
||||||
|
next if IGNORE_ENTRIES.include?(name)
|
||||||
|
|
||||||
|
id = link['href'].remove('#')
|
||||||
|
entries << [name, id]
|
||||||
|
next if name =~ /Sass|Less|Glyphicons/
|
||||||
|
|
||||||
|
node.css('> ul > li > a').each do |link|
|
||||||
|
n = link.content
|
||||||
|
next if n.start_with?('Ex: ') || n.start_with?('Default ') || n =~ /example/i || IGNORE_ENTRIES.include?(n)
|
||||||
|
id = link['href'].remove('#')
|
||||||
|
n.downcase!
|
||||||
|
n.prepend "#{name}: "
|
||||||
|
entries << [n, id]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
%w(modals dropdowns scrollspy tabs tooltips popovers alerts buttons collapse carousel affix).each do |dom_id|
|
||||||
|
css("##{dom_id}-options + p + div tbody td:first-child").each do |node|
|
||||||
|
name = node.content.strip
|
||||||
|
id = node.parent['id'] = "#{dom_id}-#{name.parameterize}-option"
|
||||||
|
name.prepend "#{dom_id.singularize.titleize}: "
|
||||||
|
name << ' (option)'
|
||||||
|
entries << [name, id]
|
||||||
|
end
|
||||||
|
|
||||||
|
css("##{dom_id}-methods ~ h4 code").each do |node|
|
||||||
|
next unless name = node.content[/\('(\w+)'\)/, 1]
|
||||||
|
id = node.parent['id'] = "#{dom_id}-#{name.parameterize}-method"
|
||||||
|
name.prepend "#{dom_id.singularize.titleize}: "
|
||||||
|
name << ' (method)'
|
||||||
|
entries << [name, id]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
entries
|
||||||
|
end
|
||||||
|
|
||||||
|
IGNORE_ENTRIES = %w(
|
||||||
|
Overview
|
||||||
|
Introduction
|
||||||
|
Usage
|
||||||
|
Methods
|
||||||
|
Options
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,33 @@
|
|||||||
|
module Docs
|
||||||
|
class Bootstrap < UrlScraper
|
||||||
|
options[:attribution] = <<-HTML
|
||||||
|
© 2011–2016 Twitter, Inc.<br>
|
||||||
|
Code licensed under the MIT License.<br>
|
||||||
|
Documentation licensed under the Creative Commons Attribution License v3.0.
|
||||||
|
HTML
|
||||||
|
|
||||||
|
version '3' do
|
||||||
|
self.type = 'bsv3'
|
||||||
|
self.release = '3.3.7'
|
||||||
|
self.base_url = 'https://getbootstrap.com/'
|
||||||
|
self.root_path = 'getting-started'
|
||||||
|
self.links = {
|
||||||
|
home: 'https://getbootstrap.com/',
|
||||||
|
code: 'https://github.com/twbs/bootstrap'
|
||||||
|
}
|
||||||
|
|
||||||
|
html_filters.push 'bootstrap/entries_v3', 'bootstrap/clean_html_v3'
|
||||||
|
|
||||||
|
options[:trailing_slash] = false
|
||||||
|
options[:only] = %w(getting-started css components javascript)
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def handle_response(response)
|
||||||
|
response.effective_url.scheme = 'https'
|
||||||
|
response.effective_url.path = response.effective_url.path.remove(/\/\z/)
|
||||||
|
super
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
After Width: | Height: | Size: 539 B |
After Width: | Height: | Size: 940 B |
@ -0,0 +1 @@
|
|||||||
|
https://raw.githubusercontent.com/twbs/bootstrap/master/docs/favicon.ico
|
Loading…
Reference in new issue