History

Add NumPy documentation

Jonas Meinertz Hansen committed 10 years ago

Commit 547f4f51 parent 3b72e256 files · +103 −-2Browse files

Unified · Split

6 files
  1. lib/docs/filters/numpy/clean_html.rb +18 −0
  2. lib/docs/filters/numpy/entries.rb +50 −0
  3. lib/docs/scrapers/numpy.rb +36 −0
  4. public/icons/docs/numpy/16.png +0 −0
  5. public/icons/docs/numpy/16@2x.png +0 −0
  6. public/icons/docs/numpy/SOURCE +1 −0
lib/docs/filters/numpy/clean_html.rb+18−0
@@ -0,0 +1,18 @@
1+module Docs
2+ class Numpy
3+ class CleanHtmlFilter < Filter
4+ def call
5+ @doc = at_css('#spc-section-body')
6+
7+ css('.headerlink').remove # remove permalinks
8+
9+ # Add class for correct syntax highlighting
10+ css('pre').each do |pre|
11+ pre['class'] = 'python'
12+ end
13+
14+ doc
15+ end
16+ end
17+ end
18+end
lib/docs/filters/numpy/entries.rb+50−0
@@ -0,0 +1,50 @@
1+module Docs
2+ class Numpy
3+ class EntriesFilter < Docs::EntriesFilter
4+ def get_name
5+ dt = at_css('dt')
6+ if dt
7+ name = dt.content
8+ name.sub! /\(.*/, '()'
9+ name.sub! /[\=\[].*/, ''
10+ name.remove! 'class '
11+ name.remove! 'classmethod '
12+ name.remove! 'exception '
13+ else
14+ name = at_css('h1').content.strip
15+ end
16+ name.remove! '¶' # remove permalinks from title
17+ name
18+ end
19+
20+ def get_type
21+ type = name.dup
22+ nav_items = at_css('.nav.nav-pills.pull-left').children
23+ if nav_items[7]
24+ # Infer type from navigation item if possible...
25+ type = nav_items[7].content
26+ else
27+ # ... or the page is probably an overview, so use its title.
28+ type = at_css('h1').content
29+ type.remove! '¶' # remove permalinks from type
30+
31+ # Handle some edge cases that arent proberly categorized in the docs
32+ if type[0..16] == 'numpy.polynomial.'
33+ type = 'Polynomials'
34+ elsif type[0..11] == 'numpy.ufunc.'
35+ type = 'Universal functions (ufunc)'
36+ elsif type[0..12] == 'numpy.nditer.'
37+ type = 'Indexing routines'
38+ elsif type == 'numpy.core.defchararray.chararray.argsort'
39+ type = 'String operations'
40+ elsif type == 'numpy.memmap.shape'
41+ type = 'Input and output'
42+ elsif type == 'numpy.poly1d.variable'
43+ type = 'Polynomials'
44+ end
45+ end
46+ type
47+ end
48+ end
49+ end
50+end
lib/docs/scrapers/numpy.rb+36−0
@@ -0,0 +1,36 @@
1+module Docs
2+ class Numpy < FileScraper
3+ self.name = 'NumPy'
4+ self.type = 'sphinx'
5+ self.root_path = 'routines.html'
6+ self.links = {
7+ home: 'http://www.numpy.org/',
8+ code: 'https://github.com/numpy/numpy'
9+ }
10+
11+ html_filters.push 'numpy/entries', 'numpy/clean_html'
12+
13+ # .main contains more than the page's content alone, but we need something
14+ # that includes the navigation bar as well in order to guess the type of
15+ # most pages.
16+ options[:container] = '.main'
17+
18+ # "generated" pages seem to be autogenerated from python docstrings.
19+ # "routines" are mostly lists that help organize the generated pages.
20+ # Everything else is manual-like and probably not desired in Devdocs.
21+ options[:only_patterns] = [
22+ /routines\.?.*\.html/,
23+ /generated.*/]
24+
25+ options[:attribution] = <<-HTML
26+ &copy; Copyright 2008-2015, The Scipy community.<br>
27+ Licensed under a BSD-new License.
28+ HTML
29+
30+ version '1.10' do
31+ self.release = '1.10'
32+ self.dir = '/vagrant/numpy-html/reference/'
33+ # self.base_url = 'http://docs.scipy.org/doc/numpy/reference/'
34+ end
35+ end
36+end
public/icons/docs/numpy/16.png+0−0

Binary file not shown.

public/icons/docs/numpy/16@2x.png+0−0

Binary file not shown.

public/icons/docs/numpy/SOURCE+1−0
@@ -0,0 +1 @@
1+https://www.scipy.org/_static/images/numpylogo_med.png

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t