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