Add Octave Documentation

This commit is contained in:
Phil Scherer 2019-08-08 21:44:41 -05:00
parent 85d591e4a7
commit ad9e7a6269
8 changed files with 114 additions and 0 deletions

View file

@ -75,6 +75,7 @@
'pages/nginx',
'pages/node',
'pages/npm',
'pages/octave',
'pages/openjdk',
'pages/perl',
'pages/phalcon',

View file

@ -0,0 +1,9 @@
._octave {
@extend %simple;
dl:not([compact]) > dt { @extend %block-label, %label-blue; }
dl[compact] > dt { @extend %block-label; }
.footnotes-heading { @extend %block-heading; }
}

View file

@ -0,0 +1,45 @@
module Docs
class Octave
class CleanHtmlFilter < Filter
def call
root_page? ? root : other
doc
end
def root
@doc = at_css('.contents')
end
def other
css('.header', 'hr').remove
css('.footnote > h3').each do |node|
node.name = 'h5'
end
at_css('h2, h3, h4').name = 'h1'
css('.example').each do |node|
node.name = 'pre'
node['data-language'] = 'matlab'
node.content = node.content
end
css('a[name] + dl').each do |node|
node['id'] = node.previous['name']
end
css('dt > a[name]', 'th > a[name]').each do |node|
node.parent['id'] = node['name']
node.parent.content = node.parent.content.strip
end
css('h5 > a').each do |node|
node.parent['id'] = node['name']
node.parent.content = node.content
end
end
end
end
end

View file

@ -0,0 +1,20 @@
module Docs
class Octave
class EntriesFilter < Docs::EntriesFilter
def get_name
at_css('h1').content
end
def get_type
'Manual'
end
def additional_entries
css('dl:not([compact]) > dt').each_with_object [] do |node, entries|
name = node.content.gsub(/[A-z0-9\,… ]*\=/,'').strip
entries << [name, node['id'], 'Functions']
end
end
end
end
end

View file

@ -0,0 +1,38 @@
module Docs
class Octave < UrlScraper
self.name = 'Octave'
self.type = 'octave'
self.release = '5.1.0'
self.base_url = 'https://octave.org/doc/interpreter/'
self.root_path = 'index.html'
self.links = {
home: 'http://www.octave.org/',
code: 'http://www.octave.org/hg/octave'
}
html_filters.push 'octave/clean_html', 'octave/entries', 'title'
options[:skip] = %w(
Copying.html
Preface.html
Acknowledgements.html
Citing-Octave-in-Publications.html
How-You-Can-Contribute-to-Octave.html
Distribution.html)
options[:title] = false
options[:root_title] = 'GNU Octave'
options[:attribution] = <<-HTML
&copy; 1996&ndash;2018 John W. Eaton<br>
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.<br/>
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.</br>
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.</br>
HTML
def get_latest_version(opts)
doc = fetch_doc('https://octave.org/doc/interpreter/', opts)
doc.at_css('h1').content.scan(/([0-9.]+)/)[0][0]
end
end
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
https://www.gnu.org/software/octave/img/octave-logo.svg