mirror of https://github.com/freeCodeCamp/devdocs
parent
c6c332c93b
commit
77730c3073
@ -0,0 +1,267 @@
|
||||
._eigen3 {
|
||||
/* General */
|
||||
a.el {
|
||||
font-weight: bold;
|
||||
}
|
||||
a {
|
||||
color: #3D578C;
|
||||
font-weight: normal;
|
||||
text-decoration: none;
|
||||
}
|
||||
/* end General */
|
||||
|
||||
/* Title */
|
||||
.title {
|
||||
font: 400 14px/28px ,sans-serif;
|
||||
font-size: 150%;
|
||||
font-weight: bold;
|
||||
margin: 10px 2px;
|
||||
}
|
||||
|
||||
div.ingroups {
|
||||
font-size: 8pt;
|
||||
text-align: left;
|
||||
}
|
||||
/* end Title */
|
||||
|
||||
/* Fragments */
|
||||
div.fragment {
|
||||
display: table;
|
||||
padding: 4px;
|
||||
border: 1px solid #C4CFE5;
|
||||
}
|
||||
.fragment {
|
||||
text-align: left;
|
||||
direction: ltr;
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
div.line {
|
||||
font-family: var(--monoFont);
|
||||
font-size: 13px;
|
||||
min-height: 13px;
|
||||
line-height: 1.0;
|
||||
text-wrap: unrestricted;
|
||||
white-space: -moz-pre-wrap;
|
||||
white-space: -pre-wrap;
|
||||
white-space: -o-pre-wrap;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
// text-indent: -53px;
|
||||
// padding-left: 53px;
|
||||
padding-bottom: 0px;
|
||||
margin: 0px;
|
||||
-webkit-transition-property: background-color, box-shadow;
|
||||
-webkit-transition-duration: 0.5s;
|
||||
-moz-transition-property: background-color, box-shadow;
|
||||
-moz-transition-duration: 0.5s;
|
||||
-ms-transition-property: background-color, box-shadow;
|
||||
-ms-transition-duration: 0.5s;
|
||||
-o-transition-property: background-color, box-shadow;
|
||||
-o-transition-duration: 0.5s;
|
||||
transition-property: background-color, box-shadow;
|
||||
transition-duration: 0.5s;
|
||||
}
|
||||
|
||||
.fragment {
|
||||
text-align: left;
|
||||
direction: ltr;
|
||||
overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
div.line::after {
|
||||
content: "\000A";
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
a.code, a.code:visited, a.line, a.line:visited {
|
||||
color: #4665A2;
|
||||
}
|
||||
|
||||
a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
|
||||
color: #4665A2;
|
||||
}
|
||||
|
||||
/* end Fragements */
|
||||
|
||||
/* Code Colorization */
|
||||
|
||||
span.keyword {
|
||||
color: var(--prismKeyword)
|
||||
}
|
||||
|
||||
span.keywordtype {
|
||||
color: var(--prismKeyword)
|
||||
}
|
||||
|
||||
span.keywordflow {
|
||||
color: var(--prismKeyword)
|
||||
}
|
||||
|
||||
span.comment {
|
||||
color: var(--textColorLight);
|
||||
}
|
||||
|
||||
span.preprocessor {
|
||||
color: var(--prismKeyword);
|
||||
}
|
||||
|
||||
span.stringliteral {
|
||||
color: var(--prismText);
|
||||
}
|
||||
|
||||
span.charliteral {
|
||||
color: var(--prismText);
|
||||
}
|
||||
|
||||
// span.vhdldigit {
|
||||
// color: #ff00ff
|
||||
// }
|
||||
|
||||
// span.vhdlchar {
|
||||
// color: #000000
|
||||
// }
|
||||
|
||||
// span.vhdlkeyword {
|
||||
// color: #700070
|
||||
// }
|
||||
|
||||
// span.vhdllogic {
|
||||
// color: #ff0000
|
||||
// }
|
||||
|
||||
// blockquote {
|
||||
// background-color: #F7F8FB;
|
||||
// border-left: 2px solid #9CAFD4;
|
||||
// margin: 0 24px 0 4px;
|
||||
// padding: 0 12px 0 16px;
|
||||
// }
|
||||
|
||||
// blockquote.DocNodeRTL {
|
||||
// border-left: 0;
|
||||
// border-right: 2px solid #9CAFD4;
|
||||
// margin: 0 4px 0 24px;
|
||||
// padding: 0 16px 0 12px;
|
||||
// }
|
||||
|
||||
/* end Code Colorization */
|
||||
|
||||
/* Member List */
|
||||
|
||||
.memtitle {
|
||||
padding: 8px;
|
||||
border-top: 1px solid; //#A8B8D9;
|
||||
border-left: 1px solid; //#A8B8D9;
|
||||
border-right: 1px solid; //#A8B8D9;
|
||||
border-top-right-radius: 4px;
|
||||
border-top-left-radius: 4px;
|
||||
margin-bottom: -1px;
|
||||
// background-image: url('nav_f.png');
|
||||
// background-repeat: repeat-x;
|
||||
// background-color: #E2E8F2;
|
||||
line-height: 1.25;
|
||||
font-weight: 300;
|
||||
// float: left;
|
||||
}
|
||||
|
||||
.mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams {
|
||||
// background-color: #F9FAFC;
|
||||
border: none;
|
||||
margin: 4px;
|
||||
padding: 1px 0 0 8px;
|
||||
}
|
||||
|
||||
td.memTemplParams {
|
||||
border: none;
|
||||
white-space: nowrap;
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
.memproto, dl.reflist dt {
|
||||
border-top: 0.5px solid; // #A8B8D9;
|
||||
border-left: 1px solid; // #A8B8D9;
|
||||
border-right: 1px solid; // #A8B8D9;
|
||||
border-bottom: 1px solid; // #A8B8D9;
|
||||
padding: 6px 0px 6px 0px;
|
||||
}
|
||||
|
||||
.memtemplate {
|
||||
font-size: 80%;
|
||||
color: #4665A2;
|
||||
font-weight: normal;
|
||||
margin-left: 9px;
|
||||
}
|
||||
|
||||
.memdoc {
|
||||
padding-left: 6px;
|
||||
}
|
||||
|
||||
table.mlabels {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: none;
|
||||
}
|
||||
|
||||
td.mlabels-left, td.mlabels-right {
|
||||
border: none;
|
||||
padding: 0;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
td.memSeparator {
|
||||
line-height: 1px;
|
||||
padding: 0px;
|
||||
}
|
||||
/* end Member List */
|
||||
|
||||
/* Member Name */
|
||||
td.mlabels-right {
|
||||
vertical-align: bottom;
|
||||
padding: 0px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
table.memname {
|
||||
border: none;
|
||||
margin-left: 6px;
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
|
||||
table.memname tr{
|
||||
border: none;
|
||||
}
|
||||
|
||||
table.memname th, table.memname td{
|
||||
border: none;
|
||||
padding: 1px;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
td.mlabels-left {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.paramname {
|
||||
// color: #602020;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
span.mlabel {
|
||||
background-color: #728DC1;
|
||||
// border-top: 1px solid #5373B4;
|
||||
// border-left: 1px solid #5373B4;
|
||||
// border-right: 1px solid #C4CFE5;
|
||||
// border-bottom: 1px solid #C4CFE5;
|
||||
text-shadow: none;
|
||||
color: white;
|
||||
margin-right: 4px;
|
||||
padding: 2px 3px;
|
||||
border-radius: 3px;
|
||||
font-size: 7pt;
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
}
|
||||
/* end Member Name */
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
module Docs
|
||||
class Eigen3
|
||||
class CleanHtmlFilter < Filter
|
||||
|
||||
def call
|
||||
# TODO doc.inner_html = parse
|
||||
# inner_html = String.new(doc.inner_html).gsub(/<div class="line">(.*?)<\/div>/m, "\\1\n").gsub(/<div class="fragment">(.*?)<\/div>/m, '<pre class="fragment">\1</pre>')
|
||||
# doc.inner_html = inner_html
|
||||
@doc = at_css('#doc-content')
|
||||
css('#MSearchSelectWindow').remove
|
||||
css('#MSearchResultsWindow').remove
|
||||
css('.directory .levels').remove
|
||||
css('.header .summary').remove
|
||||
css('.ttc').remove
|
||||
css('.top').remove
|
||||
css('.dynheader.closed').remove
|
||||
css('.permalink').remove
|
||||
doc
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
@ -0,0 +1,113 @@
|
||||
module Docs
|
||||
class Eigen3
|
||||
class EntriesFilter < Docs::EntriesFilter
|
||||
def get_type
|
||||
group = at_css('.title .ingroups')
|
||||
content = at_css('.contents').content
|
||||
title = get_title()
|
||||
downtitle = title.downcase
|
||||
name = get_name
|
||||
if content.include?('TODO: write this dox page!') ||
|
||||
content.blank? || content.empty?
|
||||
return nil
|
||||
end
|
||||
if slug.include?('unsupported')
|
||||
return 'Unsupported'
|
||||
elsif title.end_with?('module')
|
||||
return name
|
||||
elsif not group.nil? and not group.children[-1].nil? and group.children[-1].content != 'Reference'
|
||||
if group.children[-1].content.end_with?('module') || group.content.include?('Reference')
|
||||
return group.children[-1].content
|
||||
else
|
||||
return 'Chapter: ' + group.children[-1].content
|
||||
end
|
||||
elsif slug.start_with?('Topic') || downtitle.end_with?("topics")
|
||||
return 'Topics'
|
||||
elsif downtitle.end_with?("class template reference") || downtitle.end_with?("class reference") || downtitle.end_with?("struct reference")
|
||||
return 'Classes'
|
||||
elsif downtitle.end_with?("typedefs")
|
||||
return 'Typedefs'
|
||||
elsif downtitle.end_with?("namespace reference")
|
||||
return 'Namespaces'
|
||||
elsif name.match(/^Eigen::.*::/)
|
||||
return name.gsub(/^Eigen::/, '').gsub(/::.*/, '')
|
||||
elsif not group.nil? and not group.children[0].nil?
|
||||
return 'Chapter: ' + group.children[0].content
|
||||
# elsif slug.downcase.include?('tutorial')
|
||||
# return nil
|
||||
else
|
||||
return 'Eigen'
|
||||
end
|
||||
end
|
||||
|
||||
def get_name
|
||||
title = get_title().gsub(/[<(].*/, '').gsub(/(Class|Class Template|Namespace|Struct) Reference/, '').strip
|
||||
end
|
||||
|
||||
def get_title
|
||||
unless at_css('.title').nil?
|
||||
group = at_css('.title .ingroups')
|
||||
title = at_css('.title').content
|
||||
if not group.nil?
|
||||
title = title.delete_suffix(group.content)
|
||||
end
|
||||
return title.strip
|
||||
else
|
||||
return slug
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def additional_entries
|
||||
# return [] if slug.include?('unsupported')
|
||||
name = get_name()
|
||||
entries = []
|
||||
|
||||
css('table.memberdecls').map do |table|
|
||||
doxygen_type = table.at_css("tr.heading").text.strip
|
||||
case doxygen_type
|
||||
when "Functions"
|
||||
type = name == 'Eigen' ? "Functions" : nil
|
||||
when "Public Member Functions", "Static Public Member Functions"
|
||||
type = nil
|
||||
when "Classes", "Typedefs"
|
||||
type = "Classes"
|
||||
when "Variables"
|
||||
type = "Variables"
|
||||
else
|
||||
next
|
||||
end
|
||||
|
||||
table.css('td.memItemRight,td.memTemplItemRight').map do |node|
|
||||
if node.content.include?('KLU')
|
||||
puts(node.content)
|
||||
end
|
||||
href = node.at_css("a")
|
||||
if href.nil?
|
||||
next
|
||||
end
|
||||
|
||||
href = node.at_css("a").attr('href')
|
||||
if href.index("#").nil? then
|
||||
href += "#"
|
||||
end
|
||||
if slug.include?('unsupported') and not href.include?('unsupported')
|
||||
next
|
||||
end
|
||||
|
||||
content = node.content
|
||||
if doxygen_type == "Typedefs"
|
||||
content = content.sub(/\s*=.*$/, "")
|
||||
end
|
||||
if not (name.end_with?('module') || name.end_with?('typedefs'))
|
||||
content = name + "::" + content
|
||||
end
|
||||
|
||||
entries << [content, href, type]
|
||||
end
|
||||
end
|
||||
entries
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
@ -0,0 +1,45 @@
|
||||
module Docs
|
||||
class Eigen3 < UrlScraper
|
||||
self.name = 'Eigen3'
|
||||
self.type = 'eigen3'
|
||||
self.slug = 'eigen3'
|
||||
self.base_url = 'https://eigen.tuxfamily.org/dox/'
|
||||
self.root_path = 'index.html'
|
||||
self.initial_paths = [
|
||||
"modules.html"
|
||||
]
|
||||
self.release = '3.4.0'
|
||||
|
||||
self.links = {
|
||||
home: 'https://eigen.tuxfamily.org',
|
||||
code: 'https://gitlab.com/libeigen/eigen'
|
||||
}
|
||||
|
||||
html_filters.push 'eigen3/entries', 'eigen3/clean_html'
|
||||
|
||||
# Remove the `clean_text` because Doxygen are actually creating empty
|
||||
# anchor such as <a id="asd"></a> to do anchor link.. and that anchor
|
||||
# will be removed by clean_text
|
||||
self.text_filters = FilterStack.new
|
||||
text_filters.push 'images', 'inner_html', 'attribution'
|
||||
|
||||
|
||||
|
||||
def get_latest_version(opts)
|
||||
tags = get_gitlab_tags("https://gitlab.com", "libeigen", "eigen", opts)
|
||||
tags[0]['name']
|
||||
end
|
||||
|
||||
options[:attribution] = <<-HTML
|
||||
© Eigen.<br>
|
||||
Licensed under the MPL License.
|
||||
HTML
|
||||
|
||||
# Skip source code since it doesn't provide any useful docs
|
||||
options[:skip_patterns] = [/_source/, /-members/, /__Reference\.html/, /_chapter\.html/,]
|
||||
|
||||
# TODO: replace cppreference
|
||||
# options[:replace_urls] = { 'http://en.cppreference.com/w/cpp/' => 'cpp/' }
|
||||
|
||||
end
|
||||
end
|
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 3.0 KiB |
@ -0,0 +1 @@
|
||||
https://gitlab.com/libeigen/eigen/-/blob/master/doc/Eigen_Silly_Professor_64x64.png
|
Loading…
Reference in new issue