Add Opengl documentation (gl4 + gl2.1)
Showing the changes to lib/docs (3 of 8 files). Show all
Unified · Split
| @@ -0,0 +1,32 @@ | |||
| 1 | module Docs | ||
| 2 | class Opengl | ||
| 3 | class CleanHtmlFilter < Filter | ||
| 4 | def call | ||
| 5 | return '<h1>OpenGL</h1>' if root_page? | ||
| 6 | |||
| 7 | @doc = at_css('.refentry') if at_css('.refentry') | ||
| 8 | |||
| 9 | # Remove table from function definitions | ||
| 10 | css('.funcprototype-table').each do |node| | ||
| 11 | node.css('td').each do |data| | ||
| 12 | data.replace(data.children) | ||
| 13 | end | ||
| 14 | node.css('tr').each do |row| | ||
| 15 | row.replace(row.children) | ||
| 16 | end | ||
| 17 | node.wrap('<div>') | ||
| 18 | node.parent['id'] = node.css('.fsfunc').text | ||
| 19 | node.replace(node.children) | ||
| 20 | end | ||
| 21 | |||
| 22 | css('a').remove_attribute('target') | ||
| 23 | |||
| 24 | # needed for scraper's options[:attribution] | ||
| 25 | copyright = at_css('h2:contains("Copyright")') | ||
| 26 | copyright.parent['style'] = 'display: none' if copyright | ||
| 27 | |||
| 28 | doc | ||
| 29 | end | ||
| 30 | end | ||
| 31 | end | ||
| 32 | end | ||
| @@ -0,0 +1,25 @@ | |||
| 1 | module Docs | ||
| 2 | class Opengl | ||
| 3 | class EntriesFilter < Docs::EntriesFilter | ||
| 4 | def get_name | ||
| 5 | slug.chomp('.xhtml').chomp('.xml') | ||
| 6 | end | ||
| 7 | |||
| 8 | # gl4 also has documentation of GLSL, this string is present under Version Support | ||
| 9 | def get_type | ||
| 10 | return 'GLSL' if html.include?('OpenGL Shading Language Version') | ||
| 11 | 'OpenGL' | ||
| 12 | end | ||
| 13 | |||
| 14 | # functions like glUniform1f, glUniform2f, glUniform... have the same documentation | ||
| 15 | def additional_entries | ||
| 16 | entries = [] | ||
| 17 | css('.fsfunc').each do |function| | ||
| 18 | next if function.text == name | ||
| 19 | entries << [ function.text, function.text ] | ||
| 20 | end | ||
| 21 | entries | ||
| 22 | end | ||
| 23 | end | ||
| 24 | end | ||
| 25 | end | ||
| @@ -0,0 +1,31 @@ | |||
| 1 | module Docs | ||
| 2 | class Opengl < FileScraper | ||
| 3 | self.type = 'simple' | ||
| 4 | self.name = 'OpenGL' | ||
| 5 | self.root_path = 'index.php' | ||
| 6 | self.links = { | ||
| 7 | home: 'https://registry.khronos.org/OpenGL-Refpages/' | ||
| 8 | } | ||
| 9 | html_filters.push 'opengl/entries', 'opengl/clean_html' | ||
| 10 | |||
| 11 | # indexflat.php is a copy of index.php | ||
| 12 | options[:skip] = %w(indexflat.php) | ||
| 13 | |||
| 14 | options[:attribution] = ->(filter) { | ||
| 15 | # copyright is the last section in these pages | ||
| 16 | return filter.css('h2:contains("Copyright") ~ p').inner_text | ||
| 17 | } | ||
| 18 | |||
| 19 | version '4' do | ||
| 20 | self.root_path = 'index.php' | ||
| 21 | self.release = '4' | ||
| 22 | self.base_url = "https://registry.khronos.org/OpenGL-Refpages/gl#{self.version}/" | ||
| 23 | end | ||
| 24 | |||
| 25 | version '2.1' do | ||
| 26 | self.root_path = 'index.html' | ||
| 27 | self.release = '2.1' | ||
| 28 | self.base_url = "https://registry.khronos.org/OpenGL-Refpages/gl#{self.version}/" | ||
| 29 | end | ||
| 30 | end | ||
| 31 | end | ||