History

Finish CodeIgniter scraper

Thibaut Courouble committed 10 years ago

Commit 0efa4c31 parent 8232a0517 files · +59 −44Browse files

Showing the changes to lib/docs/filters/codeigniter (2 of 17 files). Show all

Unified · Split

2 files
  1. lib/docs/filters/codeigniter/clean_html.rb +10 −4
  2. lib/docs/filters/codeigniter/entries.rb +22 −17
lib/docs/filters/codeigniter/clean_html.rb+10−4
@@ -8,16 +8,22 @@ module Docs · 7 unmodified lines
8 node.content = node.content8 node.content = node.content
9 end9 end
10 10
11 css('div[class^="highlight-"]').each do |node|
12 node.content = node.content.strip
13 node.name = 'pre'
14 node['class'] = 'php' if node['class'].include?('highlight-ci')
15 end
16
11 css('table').each do |node|17 css('table').each do |node|
12 node.remove_attribute 'border'18 node.remove_attribute 'border'
13 end19 end
14 20
15 css('.section > h2', '.section > h3', '.section > h4', '.section > h5').each do |node|21 css('.section').each do |node|
16 node['id'] = node.parent['id']22 node.first_element_child['id'] = node['id'] if node['id']
17 node.parent.remove_attribute 'id'23 node.before(node.children).remove
18 end24 end
19 25
20 doc.children26 doc
21 end27 end
22 end28 end
23 end29 end
lib/docs/filters/codeigniter/entries.rb+22−17
@@ -1,38 +1,43 @@
1module Docs1module Docs
2 class Codeigniter2 class Codeigniter
3 class EntriesFilter < Docs::EntriesFilter3 class EntriesFilter < Docs::EntriesFilter
4 def include_default_entry?
5 not slug.ends_with? 'index'
6 end
7
8 def get_name4 def get_name
9 at_css('h1').content.strip5 at_css('h1').content.strip
10 end6 end
11 7
12 def get_type8 def get_type
13 slug.split('/')[0].capitalize9 type = slug.split('/').first.capitalize
10
11 if type.in? %w(Tutorial Installation Overview General)
12 type.prepend 'User guide: '
13 elsif type.in? %w(Libraries Helpers)
14 type = name.remove %r{\ (?:Helper|Class|Classes|Library|Driver)\z}
15 end
16
17 type
14 end18 end
15 19
16 def additional_entries20 def additional_entries
17 entries = []21 entries = []
18 22
19 css('.class').each do |c_node|23 css('.class').each do |node|
20 c_name = c_node.at_css('dt > .descname').content24 class_name = node.at_css('dt > .descname').content
21 c_id = c_node.at_css('dt')['id']25 class_id = node.at_css('dt[id]')['id']
22 entries << [c_name, c_id, get_type]26 entries << [class_name, class_id]
23 27
24 c_node.css('.method').each do |node|28 node.css('.method').each do |n|
25 m_name = node.at_css('.descname').content29 name = n.at_css('.descname').content
26 name = c_name + '::' + m_name + '()'30 name = "#{class_name}::#{name}()"
27 id = node.at_css('dt')['id']31 id = node.at_css('dt[id]')['id']
28 entries << [name, id, get_type]32 entries << [name, id]
29 end33 end
30 end34 end
31 35
32 css('.function').each do |node|36 css('.function').each do |node|
33 name = node.at_css('.descname').content + '()'37 name = "#{node.at_css('.descname').content}()"
34 id = node.at_css('dt')['id']38 id = node.at_css('dt[id]')['id']
35 entries << [name, id, get_type]39 type = self.type.start_with?('User guide') ? 'Functions' : self.type
40 entries << [name, id, type]
36 end41 end
37 42
38 entries43 entries

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